Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat tabel Iceberg
Untuk membuat tabel Iceberg untuk digunakan di Athena, Anda dapat menggunakan CREATE TABLE
pernyataan seperti yang didokumentasikan pada halaman ini, atau Anda dapat menggunakan crawler. AWS Glue
Gunakan CREATE TABLE pernyataan
Athena membuat tabel Iceberg v2. Untuk perbedaan antara tabel v1 dan v2, lihat Format perubahan versi dalam dokumentasi
Athena CREATE TABLE
membuat tabel Iceberg tanpa data. Anda dapat menanyakan tabel dari sistem eksternal seperti Apache Spark secara langsung jika tabel menggunakan katalog lem sumber terbuka Iceberg
Awas
Menjalankan CREATE EXTERNAL TABLE
menghasilkan pesan kesalahan Kata kunci eksternal tidak didukung untuk jenis tabel ICEBERG
.
Untuk membuat tabel Iceberg dari Athena, atur properti 'table_type'
table ke 'ICEBERG'
dalam TBLPROPERTIES
klausa, seperti pada ringkasan sintaks berikut.
CREATE TABLE [db_name.]table_name (col_name data_type [COMMENT col_comment] [, ...] ) [PARTITIONED BY (col_name | transform, ... )] LOCATION 's3://amzn-s3-demo-bucket/
your-folder
/' TBLPROPERTIES ( 'table_type' ='ICEBERG' [,property_name
=property_value
] )
Untuk informasi tentang tipe data yang dapat Anda kueri dalam tabel Iceberg, lihat. Tipe data yang didukung untuk tabel Iceberg di Athena
Gunakan partisi
Untuk membuat tabel Iceberg dengan partisi, gunakan sintaks. PARTITIONED BY
Kolom yang digunakan untuk partisi harus ditentukan dalam deklarasi kolom terlebih dahulu. Dalam PARTITIONED BY
klausa, jenis kolom tidak boleh disertakan. Anda juga dapat mendefinisikan transformasi partisiCREATE TABLE
sintaks. Untuk menentukan beberapa kolom untuk partisi, pisahkan kolom dengan karakter koma (,
), seperti pada contoh berikut.
CREATE TABLE iceberg_table (id bigint, data string, category string) PARTITIONED BY (category, bucket(16, id)) LOCATION 's3://amzn-s3-demo-bucket/
your-folder
/' TBLPROPERTIES ( 'table_type' = 'ICEBERG' )
Tabel berikut menunjukkan fungsi transformasi partisi yang tersedia.
Fungsi | Deskripsi | Jenis yang didukung |
---|---|---|
year(ts) |
Partisi menurut tahun | date , timestamp |
month(ts) |
Partisi berdasarkan bulan | date , timestamp |
day(ts) |
Partisi berdasarkan hari | date , timestamp |
hour(ts) |
Partisi per jam | timestamp |
bucket( |
Partisi dengan mod nilai hash N ember. Ini adalah konsep yang sama dengan hash bucketing untuk tabel Hive. |
int , long , decimal ,
date , timestamp ,
string , binary
|
truncate( |
Partisi dengan nilai terpotong menjadi L |
int , long , decimal ,
string |
Athena mendukung partisi tersembunyi Iceberg. Untuk informasi selengkapnya, lihat partisi tersembunyi Iceberg dalam dokumentasi Apache Iceberg
Bagian ini menjelaskan properti tabel yang dapat Anda tentukan sebagai pasangan kunci-nilai dalam TBLPROPERTIES
klausa pernyataan. CREATE
TABLE
Athena hanya mengizinkan daftar pasangan kunci-nilai yang telah ditentukan dalam properti tabel untuk membuat atau mengubah tabel Iceberg. Tabel berikut menunjukkan properti tabel yang dapat Anda tentukan. Untuk informasi selengkapnya tentang opsi pemadatan, lihat Optimalkan tabel Iceberg di dokumentasi ini. Jika Anda ingin Athena mendukung properti konfigurasi tabel open source tertentu, kirim umpan balik ke athena-feedback@amazon.com.
format
Deskripsi | Format data file |
Nilai properti yang diizinkan | Format file yang didukung dan kombinasi kompresi bervariasi menurut versi mesin Athena. Untuk informasi selengkapnya, lihat Gunakan kompresi tabel Iceberg. |
Nilai default | parquet |
write_compression
Deskripsi | Codec kompresi file |
Nilai properti yang diizinkan | Format file yang didukung dan kombinasi kompresi bervariasi menurut versi mesin Athena. Untuk informasi selengkapnya, lihat Gunakan kompresi tabel Iceberg. |
Nilai default |
Kompresi tulis default bervariasi menurut versi mesin Athena. Untuk informasi selengkapnya, lihat Gunakan kompresi tabel Iceberg. |
optimize_rewrite_data_file_threshold
Deskripsi | Konfigurasi spesifik pengoptimalan data. Jika ada lebih sedikit file data yang memerlukan optimasi daripada ambang batas yang diberikan, file tidak ditulis ulang. Hal ini memungkinkan akumulasi lebih banyak file data untuk menghasilkan file yang lebih dekat dengan ukuran target dan melewatkan perhitungan yang tidak perlu untuk menghemat biaya. |
Nilai properti yang diizinkan | Bilangan positif Harus kurang dari 50. |
Nilai default | 5 |
optimize_rewrite_delete_file_threshold
Deskripsi | Konfigurasi spesifik pengoptimalan data. Jika ada lebih sedikit file hapus yang terkait dengan file data daripada ambang batas, file data tidak ditulis ulang. Ini memungkinkan akumulasi lebih banyak file hapus untuk setiap file data untuk menghemat biaya. |
Nilai properti yang diizinkan | Bilangan positif Harus kurang dari 50. |
Nilai default | 2 |
vacuum_min_snapshots_to_keep
Deskripsi |
Jumlah minimum snapshot untuk disimpan di cabang utama tabel. Nilai ini lebih diutamakan daripada properti. |
Nilai properti yang diizinkan | Bilangan positif |
Nilai default | 1 |
vacuum_max_snapshot_age_seconds
Deskripsi | Usia maksimum snapshot untuk dipertahankan di cabang utama. Nilai ini diabaikan jika sisa minimum snapshot yang ditentukan oleh vacuum_min_snapshots_to_keep lebih tua dari usia yang ditentukan. Properti perilaku tabel ini sesuai dengan history.expire.max-snapshot-age-ms properti dalam konfigurasi Apache Iceberg. |
Nilai properti yang diizinkan | Bilangan positif |
Nilai default | 432000 detik (5 hari) |
vacuum_max_metadata_files_to_keep
Deskripsi | Jumlah maksimum file metadata sebelumnya untuk disimpan di cabang utama tabel. |
Nilai properti yang diizinkan | Bilangan positif |
Nilai default | 100 |
Contoh CREATE TABLE pernyataan
Contoh berikut membuat tabel Iceberg yang memiliki tiga kolom.
CREATE TABLE iceberg_table ( id int, data string, category string) PARTITIONED BY (category, bucket(16,id)) LOCATION 's3://amzn-s3-demo-bucket/
iceberg-folder
' TBLPROPERTIES ( 'table_type'='ICEBERG', 'format'='parquet', 'write_compression'='snappy', 'optimize_rewrite_delete_file_threshold'='10' )
Gunakan CREATE TABLE AS SELECT (CTAS)
Untuk informasi tentang membuat tabel Gunung Es menggunakan CREATE TABLE
AS
pernyataan, lihatCREATE TABLE AS, dengan perhatian khusus pada bagian tersebutCTASproperti tabel.
Gunakan AWS Glue crawler
Anda dapat menggunakan AWS Glue crawler untuk secara otomatis mendaftarkan tabel Iceberg Anda ke dalam. AWS Glue Data Catalog Jika Anda ingin bermigrasi dari katalog Iceberg lain, Anda dapat membuat dan menjadwalkan AWS Glue crawler dan menyediakan jalur Amazon S3 tempat tabel Iceberg berada. Anda dapat menentukan kedalaman maksimum jalur Amazon S3 yang dapat dilalui AWS Glue crawler. Setelah Anda menjadwalkan AWS Glue crawler, crawler mengekstrak informasi skema dan memperbarui AWS Glue Data Catalog dengan perubahan skema setiap kali dijalankan. AWS Glue Crawler mendukung penggabungan skema di seluruh snapshot dan memperbarui lokasi file metadata terbaru di file. AWS Glue Data Catalog Untuk informasi selengkapnya, lihat Katalog Data dan crawler di AWS Glue.