Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat tabel Amazon S3
Tabel Amazon S3 adalah subsumber daya dari ember meja. Tabel disimpan di Apache Iceberg format sehingga Anda dapat bekerja dengan mereka dengan menggunakan mesin kueri dan aplikasi lain yang mendukung Apache Iceberg. Amazon S3 terus mengoptimalkan tabel Anda untuk membantu mengurangi biaya penyimpanan dan meningkatkan kinerja kueri analitik.
Saat Anda membuat tabel, Amazon S3 secara otomatis menghasilkan lokasi gudang untuk tabel. Lokasi gudang adalah lokasi S3 unik di mana Anda dapat membaca dan menulis objek yang terkait dengan tabel. Contoh berikut menunjukkan format lokasi gudang:
s3://63a8e430-6e0b-46f5-k833abtwr6s8tmtsycedn8s4yc3xhuse1b--table-s3
Tabel memiliki format Amazon Resource Name (ARN) berikut:
arn:aws:s3tables:
region
:owner-account-id
:bucket/bucket-name
/table/table-id
Secara default, Anda dapat membuat hingga 10.000 tabel dalam ember meja. Untuk meminta peningkatan kuota untuk bucket atau tabel tabel, hubungi. Dukungan
Anda dapat membuat tabel menggunakan konsol Amazon S3, Amazon S3 REST API,,AWS CLI() AWS SDKs AWS Command Line Interface , atau mesin kueri yang terhubung ke bucket tabel Anda.
Saat Anda membuat tabel, Anda dapat menentukan pengaturan enkripsi untuk tabel tersebut, kecuali jika Anda membuat tabel dengan Athena. Jika Anda tidak menentukan pengaturan enkripsi, tabel dienkripsi dengan pengaturan default untuk keranjang tabel. Untuk informasi selengkapnya, lihat Menentukan enkripsi untuk tabel.
Prasyarat untuk membuat tabel
Untuk membuat tabel, Anda harus terlebih dahulu melakukan hal berikut:
Buat namespacedi ember meja Anda.
Pastikan Anda memiliki izin AWS Identity and Access Management (IAM) untuk
s3tables:CreateTable
dan.s3tables:PutTableData
catatan
Jika Anda menggunakan enkripsi SSE-KMS untuk tabel Anda, Anda memerlukan izin untuk
s3tables:PutTableEncryption
, danDescribeKey
izin pada kunci yang dipilih. AWS KMS Selain itu AWS KMS kunci yang Anda gunakan perlu memberikan izin Tabel S3 untuk melakukan pemeliharaan tabel otomatis. Untuk informasi selengkapnya, lihat Persyaratan izin untuk enkripsi SSE-KMS Tabel S3
Untuk informasi tentang nama tabel yang valid, lihatAturan penamaan untuk tabel dan ruang nama.
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
.
Prosedur berikut menggunakan konsol Amazon S3 untuk membuat tabel dengan Amazon Athena. Jika Anda belum membuat namespace di bucket tabel Anda, Anda dapat melakukannya sebagai bagian dari proses ini. Sebelum melakukan langkah-langkah berikut, pastikan Anda telah mengintegrasikan bucket tabel Anda dengan layanan AWS analitik di Wilayah ini. Untuk informasi selengkapnya, lihat Menggunakan Tabel Amazon S3 dengan layanan analitik AWS.
catatan
Saat Anda membuat tabel menggunakan Athena, tabel tersebut mewarisi pengaturan enkripsi default dari keranjang tabel. Jika Anda ingin menggunakan jenis enkripsi yang berbeda, Anda perlu membuat tabel menggunakan metode lain.
Untuk membuat tabel
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket tabel.
-
Pada halaman bucket Table, pilih bucket tempat Anda ingin membuat tabel.
-
Pada halaman detail bucket, pilih Buat tabel dengan Athena.
-
Dalam Buat tabel dengan Athena kotak dialog, lakukan salah satu hal berikut:
-
Buat namespace baru. Pilih Buat namespace, lalu masukkan nama di bidang Nama Namespace. Nama namespace harus 1 hingga 255 karakter dan unik di dalam keranjang tabel. Karakter yang valid adalah a—z, 0-9, dan garis bawah ().
_
Garis bawah tidak diizinkan pada awal nama namespace. -
Pilih Buat namespace.
-
Tentukan namespace yang ada. Pilih Tentukan namespace yang ada dalam keranjang tabel ini. Kemudian pilih Pilih dari ruang nama yang ada atau Masukkan nama namespace yang ada. Jika Anda memiliki lebih dari 1.000 ruang nama di bucket, Anda harus memasukkan nama namespace jika tidak muncul dalam daftar.
-
-
Pilih Buat tabel dengan Athena.
-
Konsol Amazon Athena terbuka dan editor kueri Athena muncul. Bidang Catalog harus diisi dengan s3tablescatalog/ diikuti dengan nama bucket tabel Anda, misalnya, s3tablescatalog/.
amzn-s3-demo-bucket
Bidang Database harus diisi dengan namespace yang Anda buat atau pilih sebelumnya.catatan
Jika Anda tidak melihat nilai ini di bidang Katalog dan Database, pastikan Anda telah mengintegrasikan bucket tabel Anda dengan layanan AWS analitik di Wilayah ini. Untuk informasi selengkapnya, lihat Menggunakan Tabel Amazon S3 dengan layanan analitik AWS.
-
Editor kueri diisi dengan kueri sampel yang dapat Anda gunakan untuk membuat tabel. Ubah kueri untuk menentukan nama tabel dan kolom yang Anda ingin tabel Anda miliki.
-
Setelah selesai memodifikasi kueri, pilih Jalankan untuk membuat tabel Anda.
catatan
-
Jika Anda menerima kesalahan
“Izin tidak cukup untuk menjalankan kueri. Principal tidak memiliki hak istimewa pada sumber daya tertentu “
ketika Anda mencoba menjalankan kueri di Athena, Anda harus diberikan izin Formasi Danau yang diperlukan di atas meja. Untuk informasi selengkapnya, lihat Memberikan izin pada tabel atau database. -
Jika Anda menerima kesalahan
“Gunung es tidak dapat mengakses sumber daya yang diminta”
ketika Anda mencoba menjalankan kueri di Athena, buka AWS Lake Formation konsol dan pastikan bahwa Anda telah memberikan izin pada katalog keranjang tabel dan database (namespace) yang Anda buat. Jangan tentukan tabel saat memberikan izin ini. Untuk informasi selengkapnya, lihat Memberikan izin pada tabel atau database. -
Jika Anda menerima pesan galat berikut saat menjalankan
SELECT
kueri di Athena, pesan ini disebabkan oleh adanya huruf kapital di nama tabel atau nama kolom Anda dalam definisi tabel Anda:“GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model. ValidationException: Sumber Daya Federasi Tidak Didukung - Nama tabel atau kolom tidak valid
. Pastikan bahwa nama tabel dan kolom Anda semuanya huruf kecil.
-
Jika pembuatan tabel Anda berhasil, nama tabel baru Anda muncul di daftar tabel di Athena. Saat Anda menavigasi kembali ke konsol Amazon S3, tabel baru akan muncul di daftar Tabel di halaman detail bucket untuk bucket tabel setelah Anda menyegarkan daftar.
Contoh ini menunjukkan cara membuat tabel dengan skema dengan menggunakan AWS CLI dan menentukan metadata tabel dengan JSON. Untuk menggunakan contoh ini, ganti
dengan informasi Anda sendiri.user
input placeholders
aws s3tables create-table --cli-input-json file://
mytabledefinition.json
Untuk mytabledefinition.json
file, gunakan definisi tabel contoh berikut. Untuk menggunakan contoh ini, ganti
dengan informasi Anda sendiri. user input
placeholders
{ "tableBucketARN": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
", "namespace": "your_namespace
", "name": "example_table
", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [ {"name": "id
", "type": "int
","required": true
}, {"name": "name
", "type": "string
"}, {"name": "value
", "type": "int
"} ] } } } }
Anda dapat membuat tabel di mesin kueri yang didukung yang terhubung ke bucket tabel Anda, seperti di Apache Spark sesi di Amazon EMR.
Contoh berikut menunjukkan cara membuat tabel dengan Spark dengan menggunakan CREATE
pernyataan, dan menambahkan data tabel dengan menggunakan INSERT
pernyataan atau dengan membaca data dari file yang ada. Untuk menggunakan contoh ini, ganti
dengan informasi Anda sendiri.user input
placeholders
spark.sql( " CREATE TABLE IF NOT EXISTS s3tablesbucket.
example_namespace
.`example_table
` ( id INT, name STRING, value INT ) USING iceberg " )
Setelah Anda membuat tabel, Anda dapat memuat data ke dalam tabel. Pilih dari metode berikut:
Tambahkan data ke dalam tabel dengan menggunakan
INSERT
pernyataan.spark.sql( """ INSERT INTO s3tablesbucket.
my_namespace
.my_table
VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """)Memuat file data yang ada.
Baca data ke Spark:
val data_file_location = "
Path such as S3 URI to data file
" val data_file = spark.read.parquet(data_file_location
)Tulis data ke dalam tabel Gunung Es:
data_file.writeTo("s3tablesbucket.
my_namespace
.my_table
").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()