Bagikan melalui


Menjalankan kueri federasi di Google BigQuery

Penting

Fitur ini ada di Pratinjau Publik.

Artikel ini menjelaskan cara menyiapkan Federasi Lakehouse untuk menjalankan kueri federasi pada data BigQuery yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?.

Untuk menyambungkan ke database BigQuery Anda menggunakan Federasi Lakehouse, Anda harus membuat yang berikut ini di metastore Azure Databricks Unity Catalog Anda:

  • Koneksi ke database BigQuery Anda.
  • Katalog asing yang mencerminkan database BigQuery Anda di Unity Catalog sehingga Anda dapat menggunakan sintaks kueri Katalog Unity dan alat tata kelola data untuk mengelola akses pengguna Azure Databricks ke database.

Sebelum Anda mulai

Persyaratan ruang kerja:

  • Ruang kerja diaktifkan untuk Katalog Unity.

Persyaratan komputasi:

  • Konektivitas jaringan dari kluster Databricks Runtime atau gudang SQL Anda ke sistem database target. Lihat Rekomendasi jaringan untuk Federasi Lakehouse.
  • Kluster Azure Databricks harus menggunakan Databricks Runtime 13.3 LTS atau lebih tinggi dan mode akses bersama atau pengguna tunggal.
  • Gudang SQL harus Pro atau Tanpa Server.

Izin yang diperlukan:

  • Untuk membuat koneksi, Anda harus menjadi admin metastore atau pengguna dengan CREATE CONNECTION hak istimewa pada metastore Katalog Unity yang dilampirkan ke ruang kerja.
  • Untuk membuat katalog asing, Anda harus memiliki CREATE CATALOG izin di metastore dan menjadi pemilik koneksi atau memiliki CREATE FOREIGN CATALOG hak istimewa pada koneksi.

Persyaratan izin tambahan ditentukan di setiap bagian berbasis tugas yang mengikuti.

Buat sambungan

Koneksi menentukan jalur dan kredensial untuk mengakses sistem database eksternal. Untuk membuat koneksi, Anda bisa menggunakan Catalog Explorer atau CREATE CONNECTION perintah SQL di buku catatan Azure Databricks atau editor kueri Databricks SQL.

Catatan

Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat koneksi. Lihat perintah POST /api/2.1/unity-catalog/connections dan Unity Catalog.

Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION hak istimewa.

Penjelajah Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Ikon katalog Katalog.

  2. Di bagian atas panel Katalog, klik Ikon Tambahkan atau plus ikon Tambahkan dan pilih Tambahkan koneksi dari menu.

    Atau, dari halaman Akses cepat, klik tombol Data > eksternal, buka tab Koneksi, dan klik Buat koneksi.

  3. Masukkan nama Koneksi yang mudah digunakan.

  4. Pilih Jenis koneksi BigQuery.

  5. Masukkan properti koneksi berikut untuk instans BigQuery Anda.

    GoogleServiceAccountKeyJson: Objek JSON mentah yang digunakan untuk menentukan proyek BigQuery dan memberikan autentikasi. Anda dapat membuat objek JSON ini dan mengunduhnya dari halaman detail akun layanan di Google Cloud di bagian 'KEYS'. Akun layanan harus memiliki izin yang tepat yang diberikan di BigQuery, termasuk Pengguna BigQuery dan BigQuery Data Viewer. Berikut adalah contohnya.

    {
      "type": "service_account",
      "project_id": "PROJECT_ID",
      "private_key_id": "KEY_ID",
      "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
      "client_email": "SERVICE_ACCOUNT_EMAIL",
      "client_id": "CLIENT_ID",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://accounts.google.com/o/oauth2/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL",
      "universe_domain": "googleapis.com"
    }
    
  6. (Opsional) Masukkan properti koneksi berikut untuk instans BigQuery Anda:

    Id Proyek: Nama untuk proyek BigQuery yang digunakan untuk penagihan untuk semua kueri yang dijalankan di bawah koneksi ini. Default ke ID proyek akun layanan Anda.

  7. (Opsional) Klik Uji koneksi untuk mengonfirmasi konektivitas jaringan. Tindakan ini tidak menguji autentikasi.

  8. (Opsional) Tambahkan komentar.

  9. Klik Buat.

SQL

Jalankan perintah berikut ini di buku catatan atau editor kueri Databricks SQL. Ganti <GoogleServiceAccountKeyJson> dengan objek JSON mentah yang menentukan proyek BigQuery dan menyediakan autentikasi. Anda dapat membuat objek JSON ini dan mengunduhnya dari halaman detail akun layanan di Google Cloud di bagian 'KEYS'. Akun layanan harus memiliki izin yang tepat yang diberikan di BigQuery, termasuk BigQuery User dan BigQuery Data Viewer. Untuk contoh objek JSON, lihat tab Catalog Explorer di halaman ini.

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson '<GoogleServiceAccountKeyJson>'
);

Kami menyarankan agar Anda menggunakan rahasia Azure Databricks alih-alih string teks biasa untuk nilai sensitif seperti kredensial. Contohnya:

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson secret ('<secret-scope>','<secret-key-user>')
)

Untuk informasi tentang menyiapkan rahasia, lihat Manajemen rahasia.

Membuat katalog asing

Katalog asing mencerminkan database dalam sistem data eksternal sehingga Anda dapat mengkueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Unity Catalog. Untuk membuat katalog asing, gunakan koneksi ke sumber data yang telah ditentukan.

Untuk membuat katalog asing, Anda bisa menggunakan Catalog Explorer atau CREATE FOREIGN CATALOG di buku catatan Azure Databricks atau editor kueri Databricks SQL.

Catatan

Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat katalog. Lihat perintah POST /api/2.1/unity-catalog/catalogs atau Unity Catalog.

Izin diperlukan: CREATE CATALOG izin pada metastore dan kepemilikan koneksi atau CREATE FOREIGN CATALOG hak istimewa pada koneksi.

Penjelajah Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Ikon katalog Katalog untuk membuka Catalog Explorer.

  2. Di bagian atas panel Katalog, klik Ikon Tambahkan atau plus ikon Tambahkan dan pilih Tambahkan katalog dari menu.

    Atau, dari halaman Akses cepat, klik tombol Katalog , lalu klik tombol Buat katalog .

  3. (Opsional) Masukkan properti katalog berikut:

    Id Proyek Data: Nama untuk proyek BigQuery yang berisi data yang akan dipetakan ke katalog ini. Default ke ID proyek penagihan yang ditetapkan di tingkat koneksi.

  4. Ikuti instruksi untuk membuat katalog asing di Membuat katalog.

SQL

Jalankan perintah SQL berikut di notebook atau editor SQL Databricks. Item dalam tanda kurung bersifat opsional. Ganti nilai tempat penampung.

  • <catalog-name>: Nama untuk katalog di Azure Databricks.
  • <connection-name>: Objek koneksi yang menentukan sumber data, jalur, dan kredensial akses.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;

Pushdown yang didukung

Pushdown berikut didukung:

  • Filter
  • Proyeksi
  • Batas
  • Fungsi: parsial, hanya untuk ekspresi filter. (Fungsi string, fungsi Matematika, Fungsi Data, Waktu dan Tanda Waktu, dan fungsi lain-lain, seperti Alias, Cast, SortOrder)
  • Agregat
  • Pengurutan, saat digunakan dengan batas

Pushdown berikut ini tidak didukung:

  • Gabungan
  • Fungsi Windows

Pemetaan jenis data

Tabel berikut ini memperlihatkan pemetaan jenis data BigQuery ke Spark.

Jenis BigQuery Jenis Spark
bignumeric, numerik DecimalType
int64 LongType
float64 DoubleType
array, geografi, interval, json, string, struct VarcharType
byte BinaryType
bool BooleanType
date DateType
tanggalwaktu, waktu, tanda waktu TimestampType/TimestampNTZType

Saat Anda membaca dari BigQuery, BigQuery Timestamp dipetakan ke Spark TimestampType jika preferTimestampNTZ = false (default). BigQuery Timestamp dipetakan ke TimestampNTZType jika preferTimestampNTZ = true.