Menghubungkan Katalog Data ke metastore Hive eksternal - AWS Lake Formation

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

Menghubungkan Katalog Data ke metastore Hive eksternal

Untuk menghubungkan AWS Glue Data Catalog ke metastore Hive, Anda perlu menerapkan aplikasi yang AWS SAM disebut -. GlueDataCatalogFederation HiveMetastore Ini menciptakan sumber daya yang diperlukan untuk menghubungkan metastore Hive eksternal dengan Katalog Data. Anda dapat mengakses AWS SAM aplikasi di AWS Serverless Application Repository.

AWS SAM Aplikasi ini membuat koneksi untuk metastore Hive di belakang Amazon API Gateway menggunakan fungsi Lambda. AWS SAM Aplikasi ini menggunakan pengenal sumber daya seragam (URI) sebagai masukan dari pengguna dan menghubungkan metastore Hive eksternal ke Katalog Data. Saat pengguna menjalankan kueri pada tabel Hive, Katalog Data memanggil titik akhir API Gateway. Titik akhir memanggil fungsi Lambda untuk mengambil metadata tabel Hive.

Untuk menghubungkan Katalog Data ke metastore Hive dan mengatur izin
  1. Menyebarkan AWS SAM aplikasi.
    1. Masuk ke AWS Management Console dan buka AWS Serverless Application Repository.

    2. Di panel navigasi, pilihAplikasi yang tersedia.

    3. Pilih aplikasi Publik.

    4. Pilih opsiMenampilkan aplikasi yang membuat IAM role khusus atau kebijakan sumber daya.

    5. Di kotak pencarian, masukkan nama GlueDataCatalogFederation- HiveMetastore.

    6. Pilih GlueDataCatalogFederation- HiveMetastore aplikasi.

    7. Di bawah Pengaturan Aplikasi, masukkan pengaturan minimum yang diperlukan berikut untuk fungsi Lambda Anda:

      • Nama aplikasi - Nama untuk AWS SAM aplikasi Anda.

      • GlueConnectionName- Nama untuk koneksi.

      • HiveMetastoreURI - URI host metastore Hive Anda.

      • LambdaMemory- Jumlah memori Lambda dalam MB dari 128-10240. Defaultnya adalah 1.024.

      • LambdaTimeout- Runtime pemanggilan Lambda maksimum dalam hitungan detik. Bawaannya adalah 30.

      • VPC dan SecurityGroupIds VPC SubnetIds - Informasi untuk VPC tempat metastore Hive ada.

    8. Pilih Saya mengakui bahwa aplikasi ini membuat peran IAM khusus dan kebijakan sumber daya. Untuk informasi selengkapnya, pilih tautan Info.

    9. Di kanan bawah bagian Pengaturan aplikasi, pilih Deploy. Saat penerapan selesai, fungsi Lambda muncul di bagian Sumber Daya di konsol Lambda.

    Aplikasi ini digunakan untuk Lambda. Namanya dilengkapi dengan serverlessrepo- untuk menunjukkan bahwa aplikasi tersebut digunakan dari file. AWS Serverless Application Repository Memilih aplikasi akan membawa Anda ke halaman Sumber Daya tempat masing-masing sumber daya aplikasi yang digunakan terdaftar. Sumber daya termasuk fungsi Lambda yang memungkinkan komunikasi antara Katalog Data dan metastore Hive, AWS Glue koneksi, dan sumber daya lain yang diperlukan untuk federasi database.

  2. Buat database federasi di Katalog Data.

    Setelah membuat koneksi ke metastore Hive, Anda dapat membuat database federasi di Katalog Data yang mengarah ke database metastore Hive eksternal. Anda perlu membuat database yang sesuai di Katalog Data untuk setiap database metastore Hive yang Anda sambungkan ke Katalog Data.

    Lake Formation console
    1. Pada halaman Berbagi data, pilih tab Basis data bersama, lalu pilih Buat database.

    2. Untuk nama Koneksi, pilih nama koneksi metastore Hive Anda dari menu tarik-turun.

    3. Masukkan nama database unik dan pengidentifikasi sumber federasi untuk database. Ini adalah nama yang Anda gunakan dalam pernyataan SQL Anda ketika Anda menanyakan tabel. Nama dapat terdiri dari maksimum 255 karakter dan harus unik dalam akun Anda.

    4. Pilih Buat basis data.

    AWS CLI
    aws glue create-database \ '{ "CatalogId": "<111122223333>", "database-input": { "Name":"<fed_glue_db>", "FederatedDatabase":{ "Identifier":"<hive_db_on_emr>", "ConnectionName":"<hms_connection>" } } }'
  3. Lihat tabel dalam database federasi.

    Setelah membuat database federasi, Anda dapat melihat daftar tabel di metastore Hive Anda menggunakan konsol Lake Formation atau. AWS CLI

    Lake Formation console
    1. Pilih nama database dari tab Shared database.

    2. Pada halaman Database, pilih Lihat tabel.

    AWS CLI

    Contoh berikut menunjukkan bagaimana untuk mengambil definisi koneksi, nama database, dan beberapa atau semua tabel dalam database. Ganti ID Katalog Data dengan Akun AWS ID valid yang Anda gunakan untuk membuat database. Ganti hms_connection dengan nama koneksi.

    aws glue get-connection \ --name <hms_connection> \ --catalog-id 111122223333
    aws glue get-database \ --name <fed_glu_db> \ --catalog-id 111122223333
    aws glue get-tables \ --database-name <fed_glue_db> \ --catalog-id 111122223333
    aws glue get-table \ --database-name <fed_glue_db> \ --name <hive_table_name> \ --catalog-id 111122223333
  4. Berikan izin.

    Setelah membuat database, Anda dapat memberikan izin kepada pengguna dan peran IAM lainnya di akun Anda atau ke eksternal Akun AWS dan organisasi. Anda tidak akan dapat memberikan izin menulis data (menyisipkan, menghapus) dan izin metadata (mengubah, menjatuhkan, membuat) pada database federasi. Untuk informasi selengkapnya tentang pemberian izin, lihat. Mengelola izin Lake Formation

  5. Kueri database federasi.

    Setelah Anda memberikan izin, pengguna dapat masuk dan mulai menanyakan database federasi menggunakan Athena dan Amazon Redshift. Pengguna sekarang dapat menggunakan nama database lokal untuk referensi database Hive dalam query SQL.

    Contoh sintaks Amazon Athena kueri

    Ganti fed_glue_db dengan nama database lokal yang Anda buat sebelumnya.

    Select * from fed_glue_db.customers limit 10;