

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Federasi ke Databricks Unity Catalog
<a name="catalog-federation-databricks"></a>

AWS Glue Data Catalog federasi untuk Databricks menggunakan OAuth2 kredensi dari kepala layanan. Databricks Mekanisme otentikasi ini memungkinkan AWS Glue Data Catalog untuk mengakses metadata berbagai objek (seperti katalog, database, dan tabel) diDatabricks Unity Catalog, berdasarkan hak istimewa yang terkait dengan prinsip layanan. Untuk memastikan akses ke objek yang tepat, penting untuk memberikan prinsipal layanan dengan izin yang diperlukan Databricks untuk membaca metadata objek ini.

Selanjutnya, federasi katalog memungkinkan penemuan dan kueri Iceberg tabel di Katalog Unity Databricks Anda. Untuk membaca tabel delta, pastikan Iceberg metadata tersedia untuk tabel ini menggunakan. Uniform Ikuti Databricks tutorial dan dokumentasi untuk membuat prinsip layanan dan hak istimewa terkait di ruang Databricks kerja Anda.

## Prasyarat
<a name="catalog-federation-databricks-prerequisites"></a>

Sebelum Anda membuat katalog federasi di Katalog Data yang diatur oleh Lake Formation, pastikan Anda memiliki izin berikut:

Prinsipal IAM Anda (pengguna atau peran) harus memiliki izin berikut:
+ **Izin Lake Formation** —`lakeformation:RegisterResource`, `lakeformation:DescribeResource`
+ **AWS Glue izin** —`glue:CreateConnection`,,`glue:CreateCatalog`, `glue:GetConnection` `glue:PassConnection`
+ **Izin Secrets Manager** —`secretsmanager:CreateSecret`, `secretsmanager:GetSecretValue`
+ **Izin IAM** —`iam:CreateRole`,, `iam:AttachRolePolicy` `iam:PassRole`

Anda harus menjadi administrator danau data Lake Formation atau memiliki `CREATE_CATALOG` izin pada Katalog Data

## Buat Katalog Federasi
<a name="catalog-federation-databricks-create"></a>

### Menggunakan Konsol
<a name="catalog-federation-databricks-console"></a>

1. Masuk ke konsol dan buka konsol Lake Formation di [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Pilih AWS wilayah yang disukai di bagian halaman kanan atas.

1. Di panel navigasi kiri, pilih Katalog.

1. Pilih **Create Catalog** untuk membuka **Create Catalog Workflow**.

1. Di **Pilih langkah sumber data**, pilih Databricks dari opsi yang tersedia.

1. Pada langkah **Atur detail katalog**, Anda memberikan tiga informasi - detail katalog, detail koneksi, dan detail pendaftaran.

1. Dalam wadah **detail katalog**, berikan nama unik ke katalog AWS Glue federasi Anda dan masukkan nama Databricks katalog yang ada.

1. Dalam kontainer **detail koneksi**, Anda dapat memilih dari koneksi yang ada yang dapat Anda akses atau menyediakan konfigurasi untuk membuat konektor baru.

1. Konfigurasi koneksi baru meliputi:
   + Nama Koneksi — Nama unik dari objek AWS Glue koneksi.
   + URL Workspace — URL endpoint dari ruang kerja Anda yang adaDatabricks.
   + Otentikasi — Tentukan konfigurasi otentikasi yang AWS Glue digunakan untuk terhubung ke server katalog jarak jauh. AWS Glue mendukung keduanya OAuth2 dan otentikasi Kustom.
   + URL Token — Tentukan URL penyedia identitas katalog jarak jauh.
   + OAuth2 ID Klien — Tentukan ID Klien dari OAuth2 kredensi yang terkait dengan katalog jarak jauh Anda.
   + Rahasia — Simpan dan gunakan rahasia OAuth2 klien menggunakan AWS Secrets Manager atau masukkan nilai rahasia di kotak teks. Saat Anda memasukkan rahasia secara manual di konsol, AWS Glue buat rahasia atas nama Anda.
   + Cakupan URL Token — Tentukan OAuth ruang lingkup untuk otentikasi.

1. Buat peran IAM yang dapat digunakan oleh kepala layanan Lake Formation untuk mengakses rahasia di AWS Glue dan lokasi Amazon S3 dari tabel jarak jauh masing-masing. Iceberg Pilih peran IAM di dropdown pendaftaran. Lihat langkah 2 dan 3 di bagian CLI berikut untuk detail kebijakan IAM.

1. Pilih Uji Koneksi untuk menguji apakah properti koneksi dan akses peran IAM dikonfigurasi dengan benar. Fungsionalitas koneksi uji tidak tersedia saat menghubungkan Databricks menggunakan Amazon VPC.

1. Pilih **Berikutnya** untuk meninjau pengaturan Anda.

1. Pilih **Buat Katalog** di halaman ulasan.

### Menggunakan CLI
<a name="catalog-federation-databricks-cli"></a>

1. <a name="databricks-step-1"></a>**Buat AWS Secrets Manager rahasia**

    AWS Glue Konektor mendukung dua jenis otentikasi - **OAuth2**dan **Custom**. Saat menggunakan OAuth2 opsi, gunakan AWS Secrets Manager untuk menyimpan rahasia klien dari kepala Databricks layanan. Anda nantinya akan menggunakan rahasia ini saat membuat AWS Glue Koneksi. Untuk otentikasi kustom, gunakan AWS Secrets Manager untuk menyimpan dan mengambil token akses.

   Dalam contoh berikut, ganti`<databricks-secret>`,`<client_secret>`, `<region>` dengan informasi Anda sendiri.

   ```
   aws secretsmanager create-secret \
   --name <databricks-secret> \
   --description "Databricks secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "<client_secret>"
   }' \
   --region <region>
   ```
**catatan**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`adalah kata kunci yang dicadangkan yang AWS Glue digunakan untuk merujuk ke nilai rahasia klien dalam rahasia. Gunakan kata kunci yang sama saat Anda membuat rahasia di konsol Lake Formation juga. 

1. <a name="databricks-step-2"></a>**Buat peran IAM yang memberikan akses objek AWS Glue koneksi ke rahasia yang dibuat pada langkah sebelumnya**

   Objek AWS Glue koneksi memerlukan akses ke AWS Secrets Manager rahasia saat Anda gunakan AWS Secrets Manager untuk menyimpan, mengambil, dan menyegarkan token OAuth rahasia Anda. Objek AWS Glue koneksi juga memerlukan akses untuk membuat, mendeskripsikan, dan menggunakan antarmuka jaringan Amazon VPC saat Anda menggunakan titik akhir VPC Amazon untuk membatasi konektivitas ke ruang kerja Anda. Databricks

   Buat kebijakan IAM dan lampirkan ke peran IAM. Tambahkan prinsip AWS Glue layanan ke kebijakan kepercayaan.

   Dalam contoh berikut, ganti`<your-secrets-manager-ARN>`,`<your-vpc-id>`, dan `<your-subnet-id1>` dengan informasi Anda sendiri.  
**Example Kebijakan IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "<your-secrets-manager-ARN>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/<your-vpc-id>",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/<your-subnet-id1>"]
                   }
               }
           }
       ]
   }
   ```  
**Example Kebijakan Kepercayaan**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="databricks-step-3"></a>**Buat kebijakan IAM yang memberikan akses baca Lake Formation ke lokasi Amazon S3 katalog**

   Sebagai pemilik katalog katalog federasi di Katalog Data, Anda menggunakan Lake Formation untuk memberikan akses tabel berbutir kasar, akses berbutir halus - tingkat kolom, tingkat baris, dan tingkat sel - akses, dan akses berbasis tag ke tim data Anda. Lake Formation menggunakan peran IAM yang memberikan akses ke lokasi Amazon S3 yang mendasari tabel Iceberg jarak jauh Anda. Akses ini memungkinkan Lake Formation untuk menjual kredenal akses cakupan ke mesin analitik yang menanyakan tabel jarak jauh.

   Buat kebijakan IAM dan lampirkan ke peran IAM. Tambahkan kepala layanan Lake Formation ke kebijakan kepercayaan peran IAM.

   Dalam contoh berikut, ganti `<your-s3-bucket-N>` dan `<your-kms-key>` dengan informasi Anda sendiri.  
**Example Kebijakan IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>/*",
                   "arn:aws:s3:::<your-s3-bucket-2>/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>",
                   "arn:aws:s3:::<your-s3-bucket-2>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "<your-kms-key>"
               ]
           }
       ]
   }
   ```  
**Example Kebijakan Kepercayaan**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**catatan**  
Saat Anda menggunakan konsol Lake Formation untuk membuat katalog federasi, konsol menggunakan peran IAM tunggal dengan kedua kebijakan yang dilampirkan untuk menyelesaikan penyiapan.

1. <a name="databricks-step-4"></a>**Buat objek AWS Glue koneksi**

   Data Catalog mendukung ConnectionType`DATABRICKSICEBERGRESTCATALOG`: untuk menghubungkan Data Catalog ke. Databricks AWS Glue Konektor ini mendukung OAuth2 dan metode otentikasi kustom.

   Contoh berikut menggunakan konfigurasi OAuth2 otentikasi untuk membuat AWS Glue koneksi. Ganti `highlighed sections` dengan informasi Anda.

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "<your-glue-connection-to-databricks-unity-account>",
   "ConnectionType": "DATABRICKSICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "<your-databricks-workspace-catalog-URL>",
       "ROLE_ARN": "<your-IAM-role-for-secrets-and-VPC-access>"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "<your-internal-or-external-token-server-url>",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "<your-client-id>"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:<aws-region>:<your-aws-account-id>:secret:<databricks-secret>"
   }
   }'
   ```

1. <a name="databricks-step-5"></a>**Daftarkan AWS Glue koneksi sebagai sumber daya Lake Formation**

   Menggunakan objek AWS Glue koneksi (dibuat di Langkah 4) dan peran IAM (dibuat pada Langkah 3), Anda sekarang dapat mendaftarkan objek AWS Glue koneksi sebagai sumber daya yang dikelola Lake Formation.

   Ganti `<your-glue-connector-arn>` dan `<your-IAM-role-ARN-having-LF-access>` dengan informasi Anda.

   ```
   aws lakeformation register-resource \
       --resource-arn <your-glue-connector-arn> \
       --role-arn <your-IAM-role-ARN-having-LF-access> \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="databricks-step-6"></a>**Buat katalog federasi di Katalog Data**

   Setelah membuat objek AWS Glue koneksi dan mendaftarkannya dengan Lake Formation, Anda dapat membuat katalog federasi di Katalog Data:

   Berikan katalog federasi nama unik di`<your-federated-catalog-name>`, referensi katalog Databricks di at`"<catalog-name-in-Databricks>`, dan masukkan nama koneksi yang dibuat sebelumnya di`"<your-glue-connection-name>`.

   ```
   aws glue create-catalog \
       --name <your-federated-catalog-name> \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "<catalog-name-in-Databricks>",
           "ConnectionName": "<your-glue-connection-name>"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## Pertimbangan saat berintegrasi dengan Databricks
<a name="databricks-considerations"></a>
+ Saat Anda menghapus sumber daya (seperti database dan tabel) diDatabricks, Lake Formation tidak secara otomatis mencabut izin yang diberikan pada sumber daya federasi tersebut. Untuk menghapus izin akses, Anda harus secara eksplisit mencabut izin yang sebelumnya diberikan pada sumber daya federasi menggunakan Lake Formation.
+ Anda dapat menanyakan tabel Iceberg yang disimpan di Amazon S3 menggunakan integrasi ini. Saat menggunakan format tabel atau penyimpanan objek lainnya, Anda dapat menggabungkan metadata dalam katalog jarak jauh ke AWS Glue dan mencantumkan database dan tabelnya tetapi operasi kueri seperti `SELECT ColumnFoo from TableBar` akan gagal selama kueri dengan kesalahan 'Gagal membaca tabel. Apache Iceberg Lokasi penyimpanan objek tidak didukung. '
+ Anda dapat menggunakan kembali AWS Glue koneksi yang sama untuk membuat beberapa katalog federasi. Menghapus katalog tidak akan menghapus objek koneksi terkait. Untuk menghapus objek koneksi, gunakan `aws glue delete-connection` perintah AWS CLI dan pastikan semua katalog terkait dihapus terlebih dahulu.