Menyiapkan Lakehouse lintas cloud untuk Databricks Unity Catalog

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

Setelah itu, Anda dapat menggunakan Lakehouse untuk Apache Iceberg guna mengelola akses ke data gabungan Anda.

Sebelum memulai

  1. Tinjau Ringkasan Lakehouse untuk memahami cara Lakehouse mengelola akses ke data.
  2. Baca Tentang Lakehouse lintas cloud untuk memahami cara kerjanya.
  3. Tinjau katalog yang didukung untuk memverifikasi persyaratan lokasi eksternal dan konfigurasi yang didukung.
  4. Pahami cara menggunakan secret Secret Manager regional. Hal ini diperlukan untuk menyiapkan Lakehouse lintas cloud dengan Databricks Unity Catalog menggunakan autentikasi berbasis rahasia.
  5. Buat Service Principal OAuth (client ID dan opsional, rahasia klien) dalam penyedia katalog jarak jauh Anda yang memiliki akses baca ke target katalog. Proses ini berada di luar cakupan dokumentasi ini.
  6. Opsional: Jika Anda berencana merutekan kueri melalui interkoneksi pribadi antara VPC Google Cloud dan VPC penyedia cloud jarak jauh (misalnya, AWS), pastikan Anda memiliki akun aktif dengan penyedia jarak jauh, menyediakan Dedicated Cross-Cloud Interconnect atau Partner Cross-Cloud Interconnect, membuat sesi BGP dengan Cloud Router, dan memverifikasi bahwa Anda memiliki izin IAM yang diperlukan di kedua lingkungan cloud.
  7. 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.
  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the BigLake, Secret Manager APIs.

    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

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

  11. Enable the BigLake, Secret Manager APIs.

    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 Lakehouse lintas cloud, minta administrator Anda untuk memberi Anda peran IAM berikut di 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.

Detail katalog yang didukung

Panduan ini memberikan petunjuk untuk menyiapkan Lakehouse lintas cloud dengan katalog Databricks Unity Catalog di Amazon Web Services (AWS) atau Google Cloud. Untuk mengetahui informasi mendetail terkait persyaratan lokasi eksternal dan konfigurasi yang didukung, lihat Katalog yang didukung.

Batasan dan pertimbangan

Bagian ini mencantumkan batasan dan pertimbangan untuk menggunakan Lakehouse lintas cloud.

  • Penyedia Cloud yang Didukung: Penggunaan Private Interconnect dengan Lakehouse lintas cloud Anda didukung dengan penyedia cloud jarak jauh berikut: Amazon Web Services (AWS). Anda dapat menggunakan Dedicated Cross-Cloud Interconnect atau Partner Cross-Cloud Interconnect.
  • Hanya katalog Databricks Unity Catalog yang menggunakan lokasi eksternal di AWS atau lokasi eksternal di Google Cloud yang didukung. Katalog Unity Catalog yang menggunakan penyimpanan default di AWS atau penyimpanan default di Google Cloud tidak didukung.
  • Anda harus mengaktifkan akses data eksternal di metastore yang digunakan oleh Unity Catalog, yang dinonaktifkan secara default.
  • Perutean jaringan: Jika interkoneksi pribadi (seperti CCI Khusus atau CCI Partner) tidak dikonfigurasi, kueri akan dirutekan melalui internet publik. Hal ini dapat mengakibatkan biaya traffic keluar yang lebih tinggi dari penyedia cloud jarak jauh Anda dan performa yang kurang dapat diprediksi.
  • Keaktualan data: Flag --refresh-interval untuk katalog gabungan menentukan seberapa sering metadata disinkronkan. Interval yang lebih pendek memberikan data yang lebih baru, tetapi dapat menimbulkan biaya API tambahan dari penyedia katalog jarak jauh.
  • Pelaporan Metrik Iceberg: Pelaporan Metrik Iceberg tidak tersedia untuk katalog gabungan. Tetapkan properti rest-metrics-reporting-enabled ke false di klien Iceberg Anda saat mengakses katalog gabungan.

Alur kerja umum

Untuk menyiapkan dan menggunakan Lakehouse lintas cloud, ikuti langkah-langkah umum berikut:

  • Siapkan Cross-Cloud Interconnect (Opsional): Konfigurasi koneksi pribadi antara Google Cloud VPC Anda 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 Principal Layanan 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: Verifikasi bahwa Lakehouse dapat berhasil terhubung ke katalog jarak jauh Anda.
  • Kueri data: Jalankan kueri terhadap data gabungan Anda menggunakan BigQuery atau Managed Service untuk Apache Spark. Untuk mengetahui informasi selengkapnya, lihat Menggunakan Lakehouse lintas cloud.
  • Mengonfigurasi izin: Gunakan Identity and Access Management (IAM) untuk mengelola siapa yang dapat melihat dan membuat kueri 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 Google Cloud Virtual Private Cloud (VPC) Anda dan jaringan penyedia cloud jarak jauh Anda (misalnya, AWS).

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

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:

  • Perutean Load Balancer Jaringan proxy regional internal: Alur ini menggunakan Google Cloud Load Balancer Jaringan proxy regional internal untuk mendistribusikan permintaan di seluruh Grup Endpoint Jaringan (NEG) Konektivitas Hybrid yang mengarah ke beberapa Elastic Network Interface (ENI) AWS. Alur ini sangat 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.
  • Perutean endpoint langsung: Alur ini menghubungkan Service Directory 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.<var>AWS_REGION</var>.s3.
  3. Pilih VPC dan subnet yang terhubung melalui Direct Connect ke VPC Anda. Google Cloud
  4. Lampirkan Grup Keamanan ke endpoint untuk mengontrol akses masuk.
  5. Tindakan ini menyediakan Elastic Network Interface (ENI) di setiap subnet yang dipilih. Catat alamat IP pribadi ENI ini.

Selanjutnya, konfigurasikan Grup Keamanan:

  • Pastikan Grup Keamanan atau grup yang terpasang ke ENI Endpoint Amazon S3 mengizinkan traffic TCP masuk di port 443 dari rentang IP yang relevan di Google Cloud VPC Anda.

Mengonfigurasi Google Cloud jaringan

Ikuti petunjuk untuk menyiapkan Load Balancer Jaringan proxy internal regional untuk endpoint hybrid.

Saat mengikuti petunjuk, pastikan Anda melakukan hal berikut:

  • Buat NEG konektivitas hibrida (NON_GCP_PRIVATE_IP_PORT) dan tambahkan alamat IP pribadi ENI AWS yang Anda buat sebelumnya.
  • Gunakan port TCP 443 untuk NEG, health check, dan aturan penerusan.
  • Siapkan load balancer di Google Cloud region yang sama dengan katalog gabungan Anda.

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

Mengonfigurasi Service Directory

Daftarkan alamat IP ILB di Service Directory, 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: Google Cloud Project ID Anda.
    • REGION: Google Cloud region. 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 Service Directory 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: Google Cloud region. 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. Contoh, 443.
    • PROJECT_NUMBER: nomor project Google Cloud Anda. Gunakan nomor project Anda di flag --network.
    • VPC_NETWORK: nama jaringan Google Cloud VPC yang terkait dengan interkoneksi pribadi Anda.

Menyiapkan penggabungan

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

Mengonfigurasi autentikasi

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

OIDC

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

  1. Buat Service Principal di akun Databricks Anda yang memiliki akses baca ke katalog Unity Catalog target.
  2. Simpan ID Aplikasi (UUID) untuk Service Principal. Anda akan memerlukannya untuk langkah selanjutnya.

Berbasis secret

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

  1. 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.
  2. Konfigurasi endpoint regional untuk Secret Manager:

    Secara default, Secret Manager menggunakan endpoint global. Namun, Lakehouse lintas cloud mengharuskan secret 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. Untuk menghindari masalah konektivitas, secret dan katalog Anda harus dibuat di region yang sama. 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. Misalnya, us-east4. Untuk menghindari masalah konektivitas, rahasia dan katalog Anda harus dibuat di region yang sama. Contoh, secretmanager.us-east4.rep.googleapis.com.
  3. 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.

Membuat katalog gabungan

Buat katalog gabungan menggunakan perintah gcloud biglake iceberg catalogs create.

Pertimbangan:

Konsol

Untuk membuat katalog gabungan menggunakan autentikasi berbasis secret:

  1. Di konsol Google Cloud , buka Lakehouse.

    Buka Lakehouse

  2. Klik Buat katalog.

  3. Klik Federated catalog.

    Detail Konfigurasi katalog akan muncul.

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

  5. Untuk Lokasi data, 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 katalog Unity Catalog Anda ada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika katalog Unity Catalog Anda aktif Google Cloud, pilih region yang sama persis.
  6. Klik Lanjutkan.

    Detail Detail koneksi akan muncul.

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

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

  9. Pilih opsi untuk Metode Autentikasi:

    • Untuk OIDC, masukkan ID Aplikasi untuk Akun Utama Layanan.
    • Untuk Secret, masukkan nama secret Anda. Gunakan format berikut projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME.
  10. Opsional: Di kolom Nama direktori layanan, masukkan jalur ke layanan Service Directory Anda. Contoh: projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME. Langkah ini hanya diperlukan jika Anda mengonfigurasi Cross-Cloud Interconnect.

  11. Klik Create.

gcloud CLI

OIDC

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

Internet publik (tanpa CCI)

gcloud 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"

Ganti kode berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • REGION: region Lakehouse tempat katalog gabungan dibuat. Contoh, us-east4. Untuk meminimalkan latensi, lakukan hal berikut saat memilih wilayah:
    • Jika katalog Unity Catalog Anda ada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika katalog Unity Catalog Anda aktif Google Cloud, pilih wilayah yang sama persis.
  • UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: ID Aplikasi (UUID) Akun Utama Layanan Databricks Anda.
  • UNITY_INSTANCE_NAME: nama instance Databricks target Anda. Contoh: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: nama target katalog Databricks Unity Catalog yang akan difederasikan.
  • REFRESH_INTERVAL: Opsional: Menentukan seberapa sering informasi katalog diperbarui. Tetapkan nilai ini sebagai durasi, misalnya, 330s atau 5m30s. Interval yang lebih pendek memperbarui data lebih sering, tetapi dapat menimbulkan biaya panggilan API yang lebih besar. Interval yang lebih panjang dapat lebih murah, tetapi data yang dikueri mungkin tidak mencerminkan set data terbaru Anda. Jika tidak ada atau jika nilai disetel ke 0s, maka refresh metadata di latar belakang tidak akan dimulai. Fitur ini akan tetap dinonaktifkan hingga interval refresh diperbarui ke nilai positif.
  • NAMESPACE_FILTERS: Opsional: Daftar namespace yang dipisahkan koma untuk difederasikan. Contoh, ns1,ns2. Jika tidak disertakan, semua namespace akan disertakan.

Milik pelanggan (CCI)

Jika Anda mengonfigurasi Private Interconnect (seperti Dedicated CCI atau Partner CCI), berikan referensi layanan Service Directory agar Lakehouse merutekan traffic secara pribadi.

gcloud 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/NAMESPACE/services/SERVICE_NAME"

Ganti kode berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • PROJECT_NUMBER: nomor project Google Cloud Anda.
  • REGION: region Lakehouse tempat katalog gabungan dibuat. Contoh, us-east4. Untuk meminimalkan latensi, lakukan hal berikut saat memilih wilayah:
    • Jika katalog Unity Catalog Anda ada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika katalog Unity Catalog Anda aktif Google Cloud, pilih wilayah yang sama persis. Catatan: Region ini harus sama dengan namespace Service Directory dan secret regional.
  • UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: ID Aplikasi (UUID) Akun Utama Layanan Databricks Anda.
  • UNITY_INSTANCE_NAME: nama instance Databricks target Anda. Contoh: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: nama katalog Databricks Unity Catalog target yang akan digabungkan.
  • REFRESH_INTERVAL: Opsional: Menentukan seberapa sering informasi katalog diperbarui. Tetapkan nilai ini sebagai durasi, misalnya, 330s atau 5m30s. Interval yang lebih pendek memperbarui data lebih sering, tetapi dapat menimbulkan biaya panggilan API yang lebih besar. Interval yang lebih panjang dapat lebih murah, tetapi data yang dikueri mungkin tidak mencerminkan set data terbaru Anda. Jika tidak ada atau jika nilai disetel ke 0s, maka refresh metadata di latar belakang tidak akan dimulai. Fitur ini akan tetap dinonaktifkan hingga interval refresh diperbarui ke nilai positif.
  • NAMESPACE_FILTERS: Opsional: Daftar namespace yang dipisahkan koma untuk difederasikan. Contoh, ns1,ns2. Jika tidak disertakan, semua namespace akan disertakan.
  • NAMESPACE: namespace Service Directory yang Anda buat selama penyiapan interkoneksi pribadi.
  • SERVICE_NAME: nama layanan Service Directory yang Anda buat selama penyiapan interkoneksi pribadi.

Berbasis secret

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

Internet publik (tanpa CCI)

gcloud 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"

Ganti kode berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • REGION: region Lakehouse tempat katalog gabungan dibuat. Contoh, us-east4. Untuk meminimalkan latensi, lakukan hal berikut saat memilih wilayah:
    • Jika katalog Unity Catalog Anda ada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika katalog Unity Catalog Anda aktif Google Cloud, pilih wilayah 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 katalog Databricks Unity Catalog yang akan difederasikan.
  • REFRESH_INTERVAL: Opsional: Menentukan seberapa sering informasi katalog diperbarui. Tetapkan nilai ini sebagai durasi, misalnya, 330s atau 5m30s. Interval yang lebih pendek memperbarui data lebih sering, tetapi dapat menimbulkan biaya panggilan API yang lebih besar. Interval yang lebih panjang dapat lebih murah, tetapi data yang dikueri mungkin tidak mencerminkan set data terbaru Anda. Jika tidak ada atau jika nilai disetel ke 0s, maka refresh metadata di latar belakang tidak akan dimulai. Fitur ini akan tetap dinonaktifkan hingga interval refresh diperbarui ke nilai positif.
  • NAMESPACE_FILTERS: Opsional: Daftar namespace yang dipisahkan koma untuk difederasikan. Contoh, ns1,ns2. Jika tidak disertakan, semua namespace akan disertakan.

Milik pelanggan (CCI)

gcloud 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/NAMESPACE/services/SERVICE_NAME"

Ganti kode berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • PROJECT_NUMBER: nomor project Google Cloud Anda.
  • REGION: region Lakehouse tempat katalog gabungan dibuat. Contoh, us-east4. Untuk meminimalkan latensi, lakukan hal berikut saat memilih wilayah:
    • Jika katalog Unity Catalog Anda ada di AWS, pilih Google Cloud region yang paling dekat dengan region AWS Anda.
    • Jika katalog Unity Catalog Anda aktif Google Cloud, pilih wilayah yang sama persis. Catatan: Region ini harus sama dengan namespace Service Directory dan secret regional.
  • DATABRICKS_SECRET_NAME: nama secret Databricks Anda.
  • UNITY_INSTANCE_NAME: nama instance Databricks target Anda. Contoh: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: nama katalog Databricks Unity Catalog target yang akan digabungkan.
  • REFRESH_INTERVAL: Opsional: Menentukan seberapa sering informasi katalog diperbarui. Tetapkan nilai ini sebagai durasi, misalnya, 330s atau 5m30s. Interval yang lebih pendek memperbarui data lebih sering, tetapi dapat menimbulkan biaya panggilan API yang lebih besar. Interval yang lebih panjang dapat lebih murah, tetapi data yang dikueri mungkin tidak mencerminkan set data terbaru Anda. Jika tidak ada atau jika nilai disetel ke 0s, maka refresh metadata di latar belakang tidak akan dimulai. Fitur ini akan tetap dinonaktifkan hingga interval refresh diperbarui ke nilai positif.
  • NAMESPACE_FILTERS: Opsional: Daftar namespace yang dipisahkan koma untuk difederasikan. Contoh, ns1,ns2. Jika tidak disertakan, semua namespace akan disertakan.
  • NAMESPACE: namespace Service Directory yang Anda buat selama penyiapan interkoneksi pribadi.
  • SERVICE_NAME: nama layanan Service Directory yang Anda buat selama penyiapan interkoneksi pribadi.

Menyelesaikan penyiapan autentikasi

Selesaikan penyiapan berdasarkan opsi 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 Databricks Service Principal.

  1. Ambil ID unik numerik akun layanan katalog Lakehouse:

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

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

    Pastikan Principal Layanan Databricks memiliki akses baca ke katalog dan ruang kerja 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 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 untuknya.

Menyelesaikan penyiapan interconnect pribadi (khusus Cross-Cloud Interconnect)

Jika Anda merutekan traffic melalui interconnect pribadi (CCI Khusus atau Partner), Anda harus memberikan izin akun layanan katalog Lakehouse untuk menemukan dan mengizinkan koneksi melalui Service Directory.

Konsol

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Klik Grant Access (atau Add).

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

  4. Di dropdown 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 CLI

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 biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID"
  2. Pastikan skema jarak jauh muncul sebagai namespace yang disinkronkan:

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

Langkah berikutnya