Menyiapkan koneksi lintas cloud untuk Databricks Unity Catalog

Dokumen ini menjelaskan cara menyiapkan koneksi lintas cloud untuk mengkueri data dari Databricks Unity Catalog langsung di dalam Google Cloud. Kemampuan ini menyatukan analisis data Anda dengan mengintegrasikan sumber data eksternal dengan lingkungan Google Cloud yang ada.

Setelah itu, Anda dapat menggunakan Lakehouse tanpa batas untuk mengelola akses ke data gabungan Anda.

Sebelum memulai

  1. Tinjau Ringkasan Lakehouse untuk memahami cara Lakehouse mengelola akses ke data.
  2. Baca tentang cara mengakses data lintas-cloud untuk memahami cara kerjanya.
  3. Tinjau katalog yang didukung untuk memverifikasi konfigurasi yang didukung.
  4. Memahami cara menggunakan secret Secret Manager regional. Hal ini diperlukan untuk menyiapkan Lakehouse dengan Databricks Unity Catalog menggunakan autentikasi berbasis secret.
  5. Opsional: Jika Anda berencana merutekan kueri melalui interkoneksi pribadi antara VPC Google Cloud Anda dan VPC penyedia cloud jarak jauh Anda (misalnya, AWS), pastikan Anda memiliki akun aktif dengan penyedia jarak jauh Anda, sediakan Dedicated Cross-Cloud Interconnect atau Partner Cross-Cloud Interconnect, buat sesi BGP dengan Cloud Router Anda, dan verifikasi bahwa Anda memiliki izin IAM yang diperlukan di kedua lingkungan cloud.
  6. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the BigLake, Secret Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the BigLake, Secret Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menyiapkan akses lintas cloud, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Batasan dan pertimbangan

Bagian ini mencantumkan batasan dan pertimbangan untuk mengakses data lintas cloud.

  • Penyedia Cloud yang Didukung untuk Cross-Cloud Interconnect: Penggunaan interkoneksi pribadi dengan Lakehouse tanpa batas didukung dengan penyedia cloud jarak jauh berikut: Amazon Web Services (AWS). Anda dapat menggunakan Dedicated Cross-Cloud Interconnect atau Partner Cross-Cloud Interconnect.
  • Pemilihan rute jaringan: Jika interkoneksi pribadi (seperti Dedicated CCI atau Partner CCI) tidak dikonfigurasi, kueri akan dirutekan melalui internet publik. Hal ini dapat mengakibatkan biaya traffic keluar yang lebih tinggi dari penyedia cloud jarak jauh dan performa yang kurang dapat diprediksi.
  • Konfigurasi Databricks Unity Catalog:
  • Hanya baca: Katalog gabungan di Lakehouse adalah tampilan hanya baca dari katalog jarak jauh. Manipulasi resource (seperti membuat, memperbarui, atau menghapus resource) tidak didukung dan harus dilakukan langsung di katalog jarak jauh.
  • Keaktualan data: Flag --refresh-interval untuk katalog gabungan menentukan seberapa sering metadata disinkronkan. Nilai harus berupa 0s (dinonaktifkan) atau minimal 300s (5 menit). Pemuatan ulang metadata latar belakang katalog mungkin memerlukan waktu lebih lama seiring bertambahnya resource namespace dan tabel. Jika pemuatan ulang sebelumnya melebihi batas, pemuatan ulang saat ini akan dilewati, tetapi pemuatan ulang berikutnya akan dijadwalkan pada interval berikutnya.
  • Caching Lakehouse: Caching Lakehouse diaktifkan secara otomatis untuk semua kueri lintas cloud guna menghemat biaya egress dengan menyimpan blok data secara lokal di Google Cloud. Kunci enkripsi yang dikelola pelanggan (CMEK) tidak didukung untuk caching; data yang di-cache dienkripsi menggunakan Google-owned and Google-managed encryption keys. Jika batasan kebijakan organisasi constraints/gcp.restrictNonCmekServices diterapkan pada tabel apa pun dalam kueri, penayangan cache akan otomatis dinonaktifkan untuk kueri tersebut. Untuk mengetahui informasi selengkapnya, lihat Caching cerdas.
  • Residensi dan kepatuhan data: Membuat katalog atau koneksi gabungan di region Google Cloud akan menyimpan data dalam penyimpanan yang di-cache di region target tersebut. Jika data cloud jarak jauh Anda berada di wilayah hukum yang berbeda, pastikan caching lintas region mematuhi persyaratan residensi data dan kepatuhan terhadap peraturan organisasi Anda.

Alur kerja umum

Untuk mengakses data lintas cloud, ikuti langkah-langkah umum berikut:

  • Siapkan Cross-Cloud Interconnect (Opsional): Konfigurasikan koneksi pribadi antara VPC Google Cloud dan penyedia cloud jarak jauh Anda.
  • Siapkan federasi: Konfigurasi autentikasi dan buat katalog gabungan di Lakehouse.
    • OpenID Connect (OIDC) (Direkomendasikan): Buat katalog gabungan di Lakehouse dengan menentukan ID Aplikasi Service Principal jarak jauh, lalu konfigurasi kebijakan gabungan di Databricks menggunakan ID unik akun layanan katalog Lakehouse.
    • Autentikasi berbasis secret: Buat secret di Secret Manager dengan kredensial katalog jarak jauh Anda. Kemudian, buat katalog gabungan di Lakehouse dan beri akun layanan katalog akses ke secret.
  • Verifikasi koneksi: Pastikan Lakehouse dapat berhasil terhubung ke katalog jarak jauh Anda.
  • Membuat kueri data: Jalankan kueri terhadap data gabungan Anda menggunakan BigQuery atau Managed Service untuk Apache Spark. Caching lakehouse diaktifkan secara otomatis untuk kueri guna menghemat biaya egress. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri data jarak jauh.
  • Mengonfigurasi izin: Gunakan Identity and Access Management (IAM) untuk mengelola siapa yang dapat melihat dan mengkueri data gabungan.

Menyiapkan Cross-Cloud Interconnect (Opsional)

Kueri ke katalog jarak jauh Anda dikirim melalui internet publik secara default. Untuk membantu meningkatkan keamanan dan kepatuhan, memberikan performa yang dapat diprediksi, dan mengurangi biaya transfer data, gunakan interkoneksi pribadi. Hal ini akan membuat koneksi jaringan pribadi khusus antara Virtual Private Cloud (VPC) Anda Google Clouddan jaringan penyedia cloud jarak jauh Anda (misal nya, AWS).

Anda dapat menyediakan dan mengonfigurasi salah satu opsi interkoneksi pribadi berikut antara VPC Google Cloud dan VPC penyedia cloud jarak jauh Anda (misalnya, AWS):

Buat sesi BGP antara Cloud Router Anda di Google Cloud dan VPC penyedia cloud jarak jauh Anda untuk memastikan pertukaran rute.

Untuk mengaktifkan kueri pribadi, Anda harus mengonfigurasi jalur dari Lakehouse ke bucket penyimpanan jarak jauh Anda (misalnya, bucket AWS Amazon S3) melalui interkoneksi pribadi Anda. Ada dua alur arsitektur yang dapat Anda ikuti untuk mengonfigurasi pemilihan rute ini:

  • Pemilihan rute Load Balancer Jaringan proxy regional internal: Alur ini menggunakan Load Balancer Jaringan proxy regional internalGoogle Cloud untuk mendistribusikan permintaan di seluruh Grup Endpoint Jaringan (NEG) Konektivitas Hybrid yang mengarah ke beberapa Elastic Network Interface (ENI) AWS. Alur ini penting untuk load balancing, skalabilitas, dan ketersediaan tinggi. Hal ini diperlukan untuk CCI Partner dan direkomendasikan untuk CCI Khusus untuk load balancing, skalabilitas, dan ketersediaan tinggi.
  • Pemilihan rute endpoint langsung: Alur ini menghubungkan Direktori Layanan langsung ke satu alamat IP Endpoint VPC Antarmuka AWS. Alur ini hanya berfungsi untuk CCI Khusus dan tidak didukung untuk CCI Partner.

Pilih alur konfigurasi yang sesuai dengan persyaratan arsitektur Anda:

Load Balancer Jaringan proxy internal regional

Untuk mengonfigurasi Load Balancer Jaringan proxy regional internal guna mendistribusikan permintaan di beberapa ENI AWS untuk ketersediaan tinggi dan load balancing, ikuti langkah-langkah berikut:

Mengonfigurasi jaringan AWS

Pertama, buat Endpoint Antarmuka VPC Amazon S3 (AWS PrivateLink):

  1. Di konsol AWS VPC, buat Endpoint Antarmuka untuk Amazon S3.
  2. Untuk nama layanan, tentukan com.amazonaws.AWS_REGION.s3.
  3. Pilih VPC dan subnet yang terhubung melalui Direct Connect ke VPC Google Cloud Anda.
  4. Lampirkan Grup Keamanan ke endpoint untuk mengontrol akses masuk.
  5. Tindakan ini akan menyediakan Elastic Network Interface (ENI) di setiap subnet yang dipilih. Catat alamat IP pribadi ENI ini.

Selanjutnya, konfigurasikan Grup Keamanan:

  • Pastikan Grup Keamanan yang terpasang ke ENI Endpoint Amazon S3 mengizinkan traffic TCP masuk di port 443 dari VPC Google Cloud Anda. Ini harus mencakup rentang CIDR dari Google Cloud subnet khusus proxy Anda untuk mengizinkan health check dan traffic yang diteruskan.

Mengonfigurasi Google Cloud jaringan

Untuk menyederhanakan penyiapan, jalankan perintah berikut untuk mengonfigurasi load balancer internal. Untuk konfigurasi lanjutan atau detail selengkapnya, lihat Menyiapkan Load Balancer Jaringan proxy regional internal untuk endpoint hybrid.

gcloud compute networks subnets create PROXY_SUBNET_NAME \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION \
    --network=VPC_NETWORK \
    --range=PROXY_SUBNET_RANGE

Ganti kode berikut:

  • PROXY_SUBNET_NAME: nama untuk subnet khusus proxy.
  • PROXY_SUBNET_RANGE: rentang CIDR yang tidak digunakan dalam jaringan VPC Anda (misalnya, 10.129.0.0/23).
  1. Buat health check regional:

    gcloud compute health-checks create tcp HEALTH_CHECK_NAME \
        --region=REGION \
        --port=443

    Ganti kode berikut:

    • HEALTH_CHECK_NAME: nama untuk health check.
    • REGION: Google Cloud region (misalnya, us-east4).
  2. Buat Grup Endpoint Jaringan (NEG) Konektivitas hybrid dan tambahkan endpoint:

    Buat NEG hybrid (NON_GCP_PRIVATE_IP_PORT) untuk setiap zona:

    gcloud compute network-endpoint-groups create NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ZONE \
        --network=VPC_NETWORK

    Tambahkan alamat IP pribadi AWS ENI Anda ke NEG hybrid yang sesuai:

    gcloud compute network-endpoint-groups update NEG_NAME \
        --zone=ZONE \
        --add-endpoint="ip=AWS_S3_IP,port=443"

    Ganti kode berikut:

    • NEG_NAME: nama untuk NEG hybrid.
    • ZONE: zona Google Cloud (misalnya, us-east4-a). Zona ini harus berada dalam region lampiran VLAN Cross-Cloud Interconnect Anda.
    • VPC_NETWORK: nama jaringan VPC Anda.
    • AWS_S3_IP: alamat IP pribadi Endpoint VPC AWS Amazon S3 (ENI) di zona tersebut.

    Ulangi perintah ini untuk membuat NEG dan menambahkan endpoint untuk zona lain jika ENI AWS Anda didistribusikan di beberapa zona.

  3. Buat dan konfigurasikan layanan backend:

    Buat layanan backend regional dengan load balancing terkelola internal:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=TCP \
        --region=REGION \
        --health-checks=HEALTH_CHECK_NAME \
        --health-checks-region=REGION

    Tambahkan NEG hybrid ke layanan backend:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --region=REGION \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-zone=ZONE \
        --balancing-mode=CONNECTION \
        --max-connections=MAX_CONNECTIONS

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama untuk layanan backend.
    • NEG_NAME: nama NEG hybrid yang Anda buat di langkah sebelumnya.
    • ZONE: zona Google Cloud (misalnya, us-east4-a).
    • MAX_CONNECTIONS: jumlah maksimum koneksi serentak yang harus ditangani backend (misalnya, 100).

    Ulangi perintah add-backend untuk setiap NEG hybrid yang Anda buat.

  4. Konfigurasikan frontend load balancer:

    Buat proxy TCP target:

    gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \
        --backend-service=BACKEND_SERVICE_NAME \
        --region=REGION

    Buat aturan penerusan untuk merutekan traffic ke proxy target:

    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=VPC_NETWORK \
        --subnet=VPC_SUBNET \
        --ports=443 \
        --region=REGION \
        --target-tcp-proxy=TARGET_PROXY_NAME \
        --target-tcp-proxy-region=REGION \
        --allow-global-access

    Ganti kode berikut:

    • TARGET_PROXY_NAME: nama untuk proxy target.
    • FORWARDING_RULE_NAME: nama untuk aturan penerusan.
    • VPC_SUBNET: nama subnetwork VPC Anda.

Setelah membuat aturan penerusan untuk load balancer, catat alamat IP internal yang ditetapkan ke aturan tersebut. Ini adalah ILB_IP_ADDRESS Anda.

Mengonfigurasi Direktori Layanan

Daftarkan alamat IP ILB di Direktori Layanan, sehingga Lakehouse dapat menemukannya.

  1. Buat namespace untuk cloud jarak jauh Anda:

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ganti kode berikut:

    • NAMESPACE: ID unik untuk namespace Anda.
    • PROJECT_ID: project ID Google Cloud Anda.
    • REGION: region Google Cloud . Contoh, us-east4. Region ini harus sama dengan region katalog gabungan.
  2. Buat layanan di namespace Direktori Layanan:

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ganti kode berikut:

    • SERVICE_NAME: ID unik untuk layanan Anda.
  3. Buat endpoint untuk ILB di layanan:

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --project=PROJECT_ID \
        --namespace=NAMESPACE \
        --service=SERVICE_NAME \
        --location=REGION \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK \
        --address=ILB_IP_ADDRESS \
        --port=443

    Ganti kode berikut:

    • ENDPOINT_NAME: ID unik untuk endpoint Anda.
    • PROJECT_NUMBER: nomor project Google Cloud Anda. Gunakan nomor project Anda di flag --network.
    • ILB_IP_ADDRESS: alamat IP internal aturan penerusan ILB Anda.

Endpoint langsung

Untuk mengonfigurasi Direktori Layanan agar merutekan traffic langsung ke satu alamat IP Endpoint VPC Antarmuka AWS, ikuti langkah-langkah berikut:

  1. Buat Endpoint VPC Antarmuka untuk Amazon S3 di dalam VPC AWS Anda. Catat alamat IP dan port endpoint ini.
  2. Buat namespace untuk cloud jarak jauh Anda:

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ganti kode berikut:

    • NAMESPACE: ID unik untuk namespace Anda.
    • PROJECT_ID: Google Cloud Project ID Anda.
    • REGION: region Google Cloud . Contoh, us-east4. Region ini harus sama dengan region katalog gabungan.
  3. Buat layanan di namespace Direktori Layanan:

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ganti kode berikut:

    • SERVICE_NAME: ID unik untuk layanan Anda.
  4. Buat endpoint di layanan yang berisi informasi perutean untuk Endpoint VPC Antarmuka Amazon S3 Anda:

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --service=SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION \
        --address=S3_VPCE_IP_ADDRESS \
        --port=S3_VPCE_PORT \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK

    Ganti kode berikut:

    • ENDPOINT_NAME: ID unik untuk endpoint Anda.
    • S3_VPCE_IP_ADDRESS: alamat IP Endpoint VPC Antarmuka Amazon S3 Anda. Contoh, 10.0.1.45.
    • S3_VPCE_PORT: nomor port Endpoint VPC Antarmuka Amazon S3 Anda. Contoh, 443.
    • PROJECT_NUMBER: nomor project Google Cloud Anda. Gunakan nomor project Anda di flag --network.
    • VPC_NETWORK: nama jaringan VPC Google Cloud yang terkait dengan interkoneksi pribadi Anda.

Menyiapkan penggabungan

Untuk membuat kueri data, Anda harus menyiapkan katalog gabungan Lakehouse yang terhubung ke Databricks Unity Catalog jarak jauh Anda.

Mengonfigurasi autentikasi

Federasi memerlukan autentikasi ke katalog jarak jauh sebagai akun utama layanan Databricks. Pilih salah satu opsi autentikasi berikut:

OIDC

OpenID Connect (OIDC) memungkinkan autentikasi tanpa secret melalui federasi token OAuth Databricks.

  1. Buat Service Principal di akun Databricks Anda yang memiliki akses baca ke Unity Catalog target dan hak istimewa EXTERNAL USE SCHEMA pada skema atau katalog target.
  2. Simpan ID aplikasi (UUID) untuk Service Principal. Anda akan memerlukannya untuk langkah selanjutnya.

Berbasis secret

Opsi ini menggunakan client ID dan rahasia klien OAuth yang disimpan dengan aman menggunakan rahasia Secret Manager regional.

  1. Buat Service Principal di akun Databricks Anda yang memiliki akses baca ke Unity Catalog target.

  2. Buat secret OAuth untuk akun utama layanan.

  3. Buat file JSON bernama credentials.json dengan payload Anda:

    {
        "client_id": "CLIENT_ID",
        "client_secret": "CLIENT_SECRET"
    }

    Ganti kode berikut:

    • CLIENT_ID: Client ID OAuth untuk Akun Utama Layanan Databricks Anda.
    • CLIENT_SECRET: Rahasia klien OAuth untuk Principal Layanan Databricks Anda.
  4. Konfigurasikan endpoint regional untuk Secret Manager:

    Secara default, Secret Manager menggunakan endpoint global. Namun, Lakehouse mengharuskan rahasia Anda disimpan di region yang sama dengan katalog Lakehouse Anda. Untuk berinteraksi dengan secret regional menggunakan CLI gcloud, Anda harus mengganti endpoint API default untuk sesi atau profil saat ini. Contoh, secretmanager.us-east4.rep.googleapis.com.

    gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/

    Ganti kode berikut:

    • REGION: Region Google Cloud tempat secret Secret Manager Anda disimpan. Contohnya, us-east4. Untuk menghindari masalah konektivitas, secret dan katalog Anda harus dibuat di region yang sama.
  5. Upload payload ke Secret Manager:

    gcloud secrets create DATABRICKS_SECRET_NAME \
      --location="REGION" \
      --project="PROJECT_ID" \
      --data-file=credentials.json

    Ganti kode berikut:

    • DATABRICKS_SECRET_NAME: Nama untuk secret Databricks Anda.
    • PROJECT_ID: Google Cloud Project ID Anda.

Membuat katalog gabungan

Buat katalog gabungan menggunakan konsol Google Cloud atau gcloud CLI.

Pertimbangan:

Konsol

Untuk membuat katalog gabungan:

  1. Di konsol Google Cloud , buka Lakehouse.

    Buka Lakehouse

  2. Klik Buat katalog.

  3. Klik Federated catalog.

    Bagian Konfigurasi katalog akan muncul.

  4. Untuk Sumber katalog gabungan, pilih Databricks (Unity).

  5. Untuk Data location, pilih region Lakehouse tempat Anda ingin membuat katalog gabungan. Contoh, us-east4. Untuk meminimalkan latensi (bahkan melalui internet publik), lakukan hal berikut saat memilih region:

    • Jika Unity Catalog Anda berada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika Unity Catalog Anda berada di Google Cloud, pilih region yang sama persis.
  6. Klik Lanjutkan.

    Bagian Connection details akan muncul.

  7. Di bagian Detail katalog jarak jauh, di kolom Nama instance Unity, masukkan nama instance Databricks target Anda. Contoh: abcd.cloud.databricks.com.

  8. Di kolom Unity catalog name, masukkan nama Databricks Unity Catalog target yang akan difederasikan.

  9. Pilih opsi untuk Metode Autentikasi:

    • Untuk OIDC, masukkan ID Aplikasi untuk Service Principal.
    • Untuk Secret, masukkan nama secret Anda. Gunakan format berikut: projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME.
  10. Opsional: Di kolom Service directory name, masukkan jalur ke layanan Direktori Layanan Anda. Contoh: projects/PROJECT_ID/locations/REGION/namespaces/SERVICE_DIRECTORY_NAMESPACE/services/SERVICE_NAME. Hal ini hanya diperlukan jika Anda mengonfigurasi interkoneksi pribadi (Cross-Cloud Interconnect).

  11. Klik Create.

gcloud

OIDC

Jika menggunakan OIDC, Anda harus menentukan --unity-service-principal-application-id.

Internet publik (tanpa CCI)

Jika Anda tidak mengonfigurasi CCI, koneksi akan berjalan dengan aman melalui internet publik.

gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS"

Milik pelanggan (CCI)

Jika Anda mengonfigurasi interkoneksi pribadi (seperti Dedicated CCI atau Partner CCI), berikan referensi layanan Direktori Layanan agar Lakehouse merutekan traffic secara pribadi.

gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS" \
    --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/SERVICE_DIRECTORY_NAMESPACE/services/SERVICE_NAME"

Ganti kode berikut:

  • FEDERATED_CATALOG_NAME: nama untuk katalog gabungan Anda.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • REGION: region Lakehouse tempat katalog gabungan dibuat. Region ini harus sama dengan namespace Service Directory dan secret regional. Untuk meminimalkan latensi:
    • Jika Unity Catalog Anda berada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika Unity Catalog Anda berada di Google Cloud, pilih region yang sama persis.
  • UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: ID Aplikasi (UUID) dari Service Principal Databricks Anda.
  • UNITY_INSTANCE_NAME: nama instance Databricks target Anda. Contoh: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: nama target Databricks Unity Catalog yang akan difederasikan.
  • REFRESH_INTERVAL: Menentukan seberapa sering pembaruan metadata latar belakang dijalankan. Tetapkan nilai ini sebagai durasi, misalnya, 330s atau 5m30s.
  • NAMESPACE_FILTERS: Opsional: Daftar namespace yang dipisahkan koma untuk digabungkan. Contoh, ns1,ns2. Jika tidak disertakan, semua namespace akan disertakan.
  • Jika Anda menggunakan interkoneksi pribadi (CCI):
    • SERVICE_DIRECTORY_NAMESPACE: namespace Direktori Layanan yang Anda buat selama penyiapan interkoneksi pribadi.
    • SERVICE_NAME: nama layanan Direktori Layanan yang Anda buat selama penyiapan interkoneksi pribadi.

Berbasis secret

Jika menggunakan autentikasi berbasis secret, Anda harus menentukan --secret-name.

Internet publik (tanpa CCI)

Jika Anda tidak mengonfigurasi CCI, koneksi akan berjalan dengan aman melalui internet publik.

gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS"

Milik pelanggan (CCI)

Jika Anda mengonfigurasi interkoneksi pribadi (seperti Dedicated CCI atau Partner CCI), berikan referensi layanan Direktori Layanan agar Lakehouse merutekan traffic secara pribadi.

gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS" \
    --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/SERVICE_DIRECTORY_NAMESPACE/services/SERVICE_NAME"

Ganti kode berikut:

  • FEDERATED_CATALOG_NAME: nama untuk katalog gabungan Anda.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • REGION: region Lakehouse tempat katalog gabungan dibuat. Region ini harus sama dengan namespace Direktori Layanan dan secret regional. Untuk meminimalkan latensi:
    • Jika Unity Catalog Anda berada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika Unity Catalog Anda aktif Google Cloud, pilih region yang sama persis.
  • DATABRICKS_SECRET_NAME: nama secret Databricks Anda.
  • UNITY_INSTANCE_NAME: nama instance Databricks target Anda. Contoh: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: nama target Databricks Unity Catalog yang akan difederasikan.
  • REFRESH_INTERVAL: Menentukan seberapa sering pembaruan metadata latar belakang dijalankan. Tetapkan nilai ini sebagai durasi, misalnya, 330s atau 5m30s.
  • NAMESPACE_FILTERS: Opsional: Daftar namespace yang dipisahkan koma untuk digabungkan. Contoh, ns1,ns2. Jika tidak disertakan, semua namespace akan disertakan.
  • Jika Anda menggunakan interkoneksi pribadi (CCI):
    • SERVICE_DIRECTORY_NAMESPACE: namespace Direktori Layanan yang Anda buat selama penyiapan interkoneksi pribadi.
    • SERVICE_NAME: nama layanan Direktori Layanan yang Anda buat selama penyiapan interkoneksi pribadi.

Menyelesaikan penyiapan autentikasi

Selesaikan proses autentikasi menggunakan jenis autentikasi yang Anda pilih.

OIDC

Saat katalog dibuat, Lakehouse menyediakan akun layanan unik untuk katalog tersebut. Anda harus mengambil ID unik numerik akun layanan dan menggunakannya untuk mengonfigurasi kebijakan gabungan untuk Service Principal Databricks.

  1. Ambil ID unik numerik akun layanan katalog Lakehouse:

    gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
        --project="PROJECT_ID" \
        --format='value(biglake-service-account-id)'
  2. Di akun Databricks Anda, konfigurasikan kebijakan penggabungan untuk Service Principal yang Anda buat sebelumnya. Gunakan nilai berikut:

    • URL Penerbit: https://accounts.google.com
    • Subject: ID unik numerik akun layanan katalog Lakehouse yang diambil pada langkah sebelumnya.
    • Audiens: https://accounts.cloud.databricks.com

    Pastikan bahwa Principal Layanan Databricks memiliki akses baca ke katalog dan ruang kerja target, serta hak istimewa EXTERNAL USE SCHEMA pada skema atau katalog target.

Berbasis secret

Saat katalog dibuat, Lakehouse menyediakan akun layanan unik untuknya (ditampilkan sebagai biglake-service-account dalam deskripsi resource).

Anda harus memberikan izin akun layanan ini untuk mengakses secret yang Anda buat sebelumnya. Perhatikan bahwa propagasi kebijakan IAM dapat memerlukan waktu beberapa menit.

Beri akun layanan katalog izin untuk mengakses secret:

gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
gcloud secrets add-iam-policy-binding DATABRICKS_SECRET_NAME \
  --project="PROJECT_ID" \
  --location="REGION" \
  --member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --format='value(biglake-service-account)')" \
  --role="roles/secretmanager.secretAccessor"

Untuk memverifikasi bahwa akun layanan katalog gabungan memiliki akses ke secret, jalankan perintah berikut:

gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
gcloud secrets get-iam-policy DATABRICKS_SECRET_NAME \
     --project="PROJECT_ID" \
     --location="REGION"

Dalam output, pastikan akun layanan biglake-service-account memiliki peran roles/secretmanager.secretAccessor yang ditetapkan ke akun tersebut.

Pastikan bahwa Principal Layanan Databricks memiliki akses baca ke katalog dan ruang kerja target, serta hak istimewa EXTERNAL USE SCHEMA pada skema atau katalog target.

Menyelesaikan penyiapan interkoneksi pribadi (khusus Cross-Cloud Interconnect)

Jika Anda merutekan traffic melalui interkoneksi pribadi (CCI Khusus atau Partner), Anda harus memberikan izin kepada akun layanan katalog Lakehouse untuk menemukan dan mengizinkan koneksi melalui Direktori Layanan.

Konsol

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Klik Grant Access (atau Add).

  3. Di kolom New principals, masukkan alamat email akun layanan katalog Lakehouse. Anda dapat mengambil alamat email ini dengan mendeskripsikan katalog (lihat tab gcloud).

  4. Di menu Role, pilih Service Directory Viewer (roles/servicedirectory.viewer).

  5. Klik Add another role, lalu pilih Service Directory PSC Authorized Service (roles/servicedirectory.pscAuthorizedService).

  6. Klik Simpan.

gcloud

Berikan peran yang diperlukan ke akun layanan katalog:

# Grant Service Directory Viewer
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --format='value(biglake-service-account)')" \
--role="roles/servicedirectory.viewer"

# Grant Service Directory PSC Authorized Service
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --format='value(biglake-service-account)')" \
--role="roles/servicedirectory.pscAuthorizedService"

Memverifikasi koneksi

Pastikan siklus refresh metadata latar belakang katalog berhasil diselesaikan dan namespace disinkronkan.

  1. Pastikan status refresh menunjukkan keberhasilan:

    gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID"
  2. Pastikan namespace telah disinkronkan:

    gcloud alpha biglake iceberg namespaces list \
      --project="PROJECT_ID" \
      --catalog="FEDERATED_CATALOG_NAME"

Langkah berikutnya