Bekerja dengan ember meja AWS terkelola - Amazon Simple Storage Service

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

Bekerja dengan ember meja AWS terkelola

AWS bucket tabel terkelola adalah bucket tabel S3 khusus yang dirancang untuk menyimpan tabel AWS terkelola, seperti Mempercepat penemuan data dengan Metadata S3 jurnal dan tabel inventaris langsung. Tidak seperti bucket tabel yang dikelola pelanggan yang Anda buat dan kelola secara langsung, bucket tabel AWS terkelola secara otomatis disediakan AWS saat Anda mengonfigurasi fitur yang memerlukan tabel terkelola. AWS Saat tabel terkelola dibuat, tabel tersebut termasuk dalam namespace yang telah ditentukan berdasarkan bucket sumber yang tidak dapat dimodifikasi. Setiap AWS akun memiliki satu keranjang tabel AWS terkelola per Wilayah, mengikuti konvensi penamaanaws-s3. Bucket ini berfungsi sebagai lokasi terpusat untuk semua tabel terkelola yang terkait dengan sumber daya akun Anda di Wilayah tersebut.

Tabel berikut membandingkan bucket tabel AWS terkelola dengan bucket tabel yang dikelola pelanggan.

Fitur AWS ember meja terkelola Bucket meja yang dikelola pelanggan
Penciptaan Dibuat secara otomatis oleh AWS layanan Anda membuat ini secara manual
Penamaan Gunakan konvensi penamaan standar (aws-s3) Anda mendefinisikan nama Anda sendiri
Pembuatan tabel Hanya AWS layanan yang dapat membuat tabel Anda dapat membuat tabel
Kontrol namespace Anda tidak dapat membuat atau menghapus ruang nama (Semua tabel milik namespace tetap) Anda dapat membuat dan menghapus ruang nama
Akses Akses hanya-baca Akses penuh
Enkripsi Anda hanya dapat mengubah pengaturan enkripsi default (SSE-S3) jika Anda mengenkripsi tabel awal dengan kunci yang dikendalikan pelanggan. AWS KMS Anda dapat mengatur enkripsi default tingkat ember dan memodifikasinya kapan saja
Maintenance Dikelola oleh AWS layanan Pemeliharaan otomatis dapat disesuaikan pada tingkat bucket

Izin untuk membuat bucket tabel AWS terkelola

Untuk bekerja dengan bucket tabel AWS terkelola, Anda memerlukan izin untuk membuat bucket dan tabel tabel AWS terkelola, menentukan setelan enkripsi untuk tabel AWS terkelola serta izin baca dasar untuk menanyakan tabel.

Berikut ini adalah contoh kebijakan yang memungkinkan Anda membuat bucket tabel AWS terkelola melalui konfigurasi layanan:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3:CreateBucketMetadataTableConfiguration", "s3tables:CreateTableBucket", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:GetTable", "s3tables:PutTablePolicy" "s3tables:PutTableEncryption", "kms:DescribeKey" ], "Resource":[ "arn:aws:s3:::bucket/amzn-s3-demo-source-bucket", "arn:aws:s3tables:region:111122223333:bucket/aws-s3", "arn:aws:s3tables:region:111122223333:bucket/aws-s3/table/*" ] } ] }

Berikut ini adalah contoh kebijakan yang memungkinkan Anda melakukan kueri tabel di bucket tabel AWS terkelola:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3tables:GetTable", "s3tables:GetTableData", "s3tables:GetTableMetadataLocation", "kms:Decrypt" ], "Resource":[ "arn:aws:s3tables:region:111122223333:bucket/aws-s3", "arn:aws:s3tables:region:111122223333:bucket/aws-s3/table/*" ] } ] }

Kueri tabel dalam bucket tabel AWS terkelola

Anda dapat melakukan kueri tabel AWS AWS terkelola dalam bucket tabel terkelola menggunakan metode akses dan engine yang didukung oleh Tabel S3. Berikut ini adalah beberapa contoh query

Using standard SQL

Contoh berikut menunjukkan bagaimana untuk query tabel AWS dikelola menggunakan sintaks SQL standar.

SELECT * FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" LIMIT 10;

Contoh berikut menunjukkan cara menggabungkan tabel AWS terkelola dengan tabel Anda sendiri.

SELECT * FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" a JOIN "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" b ON a.key = b.key LIMIT 10;
Using Spark

Contoh berikut menunjukkan bagaimana untuk query tabel Anda denganSpark.

spark.sql(""" SELECT * FROM ice_catalog.inventory a JOIN ice_catalog.my_table b ON a.key = b.key """).show(10, true)

Contoh berikut menunjukkan cara menggabungkan tabel AWS terkelola Anda dengan tabel lain.

SELECT * FROM inventory a JOIN my_table b ON a.key = b.key LIMIT 10;

Enkripsi untuk bucket tabel AWS terkelola

Secara default, bucket tabel AWS terkelola dienkripsi dengan enkripsi sisi server menggunakan kunci terkelola Amazon S3 (SSE-S3). Setelah bucket tabel AWS terkelola dibuat, Anda dapat menggunakan pengaturan enkripsi default bucket PutTableBucketEncryptionuntuk menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS).

Selama pembuatan tabel AWS terkelola Anda, Anda dapat memilih untuk mengenkripsi mereka dengan SSE-KMS. Jika Anda memilih untuk menggunakan SSE-KMS, Anda harus menyediakan kunci KMS yang dikelola pelanggan di Wilayah yang sama dengan bucket tabel terkelola Anda AWS . Anda dapat mengatur jenis enkripsi untuk tabel AWS terkelola hanya selama pembuatan tabel. Setelah tabel AWS terkelola dibuat, Anda tidak dapat mengubah pengaturan enkripsi.

Jika Anda ingin bucket tabel AWS terkelola dan tabel yang disimpan di dalamnya menggunakan kunci KMS yang sama, pastikan untuk menggunakan kunci KMS yang sama yang Anda gunakan untuk mengenkripsi tabel Anda untuk mengenkripsi keranjang tabel Anda setelah dibuat. Setelah Anda mengubah setelan enkripsi default untuk bucket tabel Anda untuk menggunakan SSE-KMS, pengaturan enkripsi tersebut digunakan untuk setiap tabel future yang dibuat di bucket.