Mengintegrasikan Tabel AWS Amazon S3 dengan layanan analitik - Amazon Simple Storage Service

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

Mengintegrasikan Tabel AWS Amazon S3 dengan layanan analitik

Topik ini mencakup prasyarat dan prosedur yang diperlukan untuk mengintegrasikan bucket tabel Amazon S3 Anda dengan layanan analitik. AWS Untuk gambaran umum tentang cara kerja integrasi, lihatIkhtisar integrasi Tabel S3.

catatan

Integrasi ini menggunakan AWS Glue dan AWS Lake Formation layanan dan mungkin menimbulkan AWS Glue permintaan dan biaya penyimpanan. Untuk informasi selengkapnya, silakan lihat Harga AWS Glue.

Harga tambahan berlaku untuk menjalankan kueri pada tabel S3 Anda. Untuk informasi selengkapnya, lihat informasi harga untuk mesin kueri yang Anda gunakan.

Prasyarat untuk integrasi

Prasyarat berikut diperlukan untuk mengintegrasikan bucket tabel dengan layanan analitik: AWS

penting

Saat membuat tabel, pastikan Anda menggunakan semua huruf kecil dalam nama tabel dan definisi tabel Anda. Misalnya, pastikan bahwa nama kolom Anda semua huruf kecil. Jika nama tabel atau definisi tabel berisi huruf kapital, tabel tidak didukung oleh AWS Lake Formation atau AWS Glue Data Catalog. Dalam hal ini, tabel Anda tidak akan terlihat oleh layanan AWS analitik seperti Amazon Athena, meskipun bucket tabel Anda terintegrasi dengan AWS layanan analitik.

Jika definisi tabel berisi huruf kapital, Anda menerima pesan galat berikut saat menjalankan SELECT kueri di Athena: “GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model. ValidationException: Sumber Daya Federasi Tidak Didukung - Nama tabel atau kolom tidak valid.”

Mengintegrasikan bucket tabel dengan AWS layanan analitik

Integrasi ini harus dilakukan satu kali per AWS Wilayah.

penting

Integrasi layanan AWS analitik sekarang menggunakan WithPrivilegedAccess opsi dalam operasi registerResource Lake Formation API untuk mendaftarkan bucket tabel S3. Integrasi juga sekarang membuat s3tablescatalog katalog di AWS Glue Data Catalog dengan menggunakan AllowFullTableExternalDataAccess opsi dalam operasi CreateCatalog AWS Glue API.

Jika Anda mengatur integrasi dengan rilis pratinjau, Anda dapat terus menggunakan integrasi Anda saat ini. Namun, proses integrasi yang diperbarui memberikan peningkatan kinerja, jadi kami sarankan untuk bermigrasi. Untuk bermigrasi ke integrasi yang diperbarui, lihatMigrasi ke proses integrasi yang diperbarui.

  1. Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket tabel.

  3. Pilih Buat ember meja.

    Halaman bucket Create table terbuka.

  4. Masukkan nama bucket Table dan pastikan kotak centang Aktifkan integrasi dipilih.

  5. Pilih Buat ember meja. Amazon S3 akan mencoba mengintegrasikan bucket tabel Anda secara otomatis di Wilayah tersebut.

Pertama kali Anda mengintegrasikan bucket tabel di Wilayah mana pun, Amazon S3 membuat peran layanan IAM baru atas nama Anda. Peran ini memungkinkan Lake Formation mengakses semua bucket tabel di akun Anda dan akses federasi ke tabel Anda. AWS Glue Data Catalog

Untuk mengintegrasikan ember meja menggunakan AWS CLI

Langkah-langkah berikut menunjukkan cara menggunakan bucket tabel AWS CLI untuk mengintegrasikan. Untuk menggunakan langkah-langkah ini, ganti user input placeholders dengan informasi Anda sendiri.

  1. Buat ember meja.

    aws s3tables create-table-bucket \ --region us-east-1 \ --name amzn-s3-demo-table-bucket
  2. Buat peran layanan IAM yang memungkinkan Lake Formation mengakses sumber daya tabel Anda.

    1. Buat file bernama Role-Trust-Policy.json yang berisi kebijakan kepercayaan berikut:

      JSON

      Buat peran layanan IAM dengan menggunakan perintah berikut:

      aws iam create-role \ --role-name S3TablesRoleForLakeFormation \ --assume-role-policy-document file://Role-Trust-Policy.json
    2. Buat file bernama LF-GluePolicy.json yang berisi kebijakan berikut:

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationPermissionsForS3ListTableBucket", "Effect": "Allow", "Action": [ "s3tables:ListTableBuckets" ], "Resource": [ "*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "s3tables:GetTableBucket", "s3tables:CreateNamespace", "s3tables:GetNamespace", "s3tables:ListNamespaces", "s3tables:DeleteNamespace", "s3tables:DeleteTableBucket", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:ListTables", "s3tables:RenameTable", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": [ "arn:aws:s3tables:us-east-1:111122223333:bucket/*" ] } ] }

      Lampirkan kebijakan ke peran dengan menggunakan perintah berikut:

      aws iam put-role-policy \ --role-name S3TablesRoleForLakeFormation \ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
  3. Buat file bernama input.json yang berisi berikut ini:

    { "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }

    Daftarkan bucket tabel dengan Lake Formation dengan menggunakan perintah berikut:

    aws lakeformation register-resource \ --region us-east-1 \ --with-privileged-access \ --cli-input-json file://input.json
  4. Buat file bernama catalog.json yang berisi katalog berikut:

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "AllowFullTableExternalDataAccess": "True" } }

    Buat s3tablescatalog katalog dengan menggunakan perintah berikut. Membuat katalog ini mengisi dengan objek yang sesuai AWS Glue Data Catalog dengan bucket tabel, ruang nama, dan tabel.

    aws glue create-catalog \ --region us-east-1 \ --cli-input-json file://catalog.json
  5. Verifikasi bahwa s3tablescatalog katalog telah ditambahkan AWS Glue dengan menggunakan perintah berikut:

    aws glue get-catalog --catalog-id s3tablescatalog

Proses integrasi layanan AWS analitik telah diperbarui. Jika Anda telah menyiapkan integrasi dengan rilis pratinjau, Anda dapat terus menggunakan integrasi Anda saat ini. Namun, proses integrasi yang diperbarui memberikan peningkatan kinerja, jadi kami sarankan untuk bermigrasi dengan menggunakan langkah-langkah berikut. Untuk informasi selengkapnya tentang proses migrasi atau integrasi, lihat Membuat katalog Tabel Amazon S3 AWS Glue Data Catalog di Panduan AWS Lake Formation Pengembang.

  1. Buka AWS Lake Formation konsol dihttps://console.aws.amazon.com/lakeformation/, dan masuk sebagai administrator danau data. Untuk informasi selengkapnya tentang cara membuat administrator data lake, lihat Membuat administrator data lake di Panduan AWS Lake Formation Pengembang.

  2. Hapus s3tablescatalog katalog Anda dengan melakukan hal berikut:

    • Di panel navigasi kiri, pilih Katalog.

    • Pilih tombol opsi di sebelah s3tablescatalog katalog dalam daftar Katalog. Dari menu Tindakan, pilih Hapus.

  3. Batalkan pendaftaran lokasi data untuk s3tablescatalog katalog dengan melakukan hal berikut:

    • Di panel navigasi kiri, buka bagian Administrasi, dan pilih Lokasi danau data.

    • Pilih tombol opsi di sebelah lokasi danau s3tablescatalog data, misalnya,s3://tables:region:account-id:bucket/*.

    • Pada menu Tindakan, pilih Hapus.

    • Di kotak dialog konfirmasi yang muncul, pilih Hapus.

  4. Setelah menghapus s3tablescatalog katalog dan lokasi data lake, Anda dapat mengikuti langkah-langkah untuk mengintegrasikan bucket tabel Anda dengan layanan AWS analitik dengan menggunakan proses integrasi yang diperbarui.

catatan

Jika Anda ingin bekerja dengan tabel terenkripsi SSE-KMS dalam layanan AWS analitik terintegrasi, peran yang Anda gunakan harus memiliki izin untuk menggunakan kunci Anda AWS KMS untuk operasi enkripsi. Untuk informasi selengkapnya, lihat Memberikan izin kepada prinsipal IAM untuk bekerja dengan tabel terenkripsi dalam layanan analitik terintegrasi AWS.

Setelah Anda mengintegrasikan kepala IAM Anda diberikan izin Lake Formation untuk mengakses tabel Anda, jika Anda ingin mengizinkan prinsipal IAM lainnya untuk mengakses tabel, Anda harus memberikan izin Lake Formation pada tabel Anda kepada prinsipal tersebut. Untuk informasi selengkapnya, lihat Mengelola akses ke tabel atau database dengan Lake Formation.

Langkah selanjutnya