

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

# Buat tabel Iceberg
<a name="querying-iceberg-creating-tables"></a>

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 

## Menggunakan pernyataan CREATE TABLE
<a name="querying-iceberg-creating-tables-query-editor"></a>

Athena membuat tabel Iceberg v2. Untuk perbedaan antara tabel v1 dan v2, lihat [Format perubahan versi dalam dokumentasi](https://iceberg.apache.org/spec/#appendix-e-format-version-changes) Apache Iceberg.

Athena `CREATE TABLE` membuat tabel Gunung Es tanpa data. Anda dapat menanyakan tabel dari sistem eksternal seperti Apache Spark secara langsung jika tabel menggunakan katalog lem sumber [terbuka Iceberg](https://iceberg.apache.org/docs/latest/aws/#glue-catalog). Anda tidak perlu membuat tabel eksternal.

**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](querying-iceberg-supported-data-types.md)

### Gunakan partisi
<a name="querying-iceberg-partitioning"></a>

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 partisi](https://iceberg.apache.org/spec/#partition-transforms) dalam `CREATE 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({{N}}, col) | Partisi dengan {{N}} bucket mod nilai hash. Ini adalah konsep yang sama dengan hash bucketing untuk tabel Hive. | int, long, decimal, date, timestamp, string, binary  | 
| truncate({{L}}, col) | Partisi dengan nilai terpotong {{L}} | int, long, decimal, string | 

Athena mendukung partisi tersembunyi Iceberg. Untuk informasi selengkapnya, lihat [partisi tersembunyi Iceberg dalam dokumentasi Apache Iceberg](https://iceberg.apache.org/docs/latest/partitioning/#icebergs-hidden-partitioning).

### Tentukan properti tabel
<a name="querying-iceberg-table-properties"></a>

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](querying-iceberg-data-optimization.md) di dokumentasi ini. [Jika Anda ingin Athena mendukung properti konfigurasi tabel open source tertentu, kirim umpan balik ke athena-feedback@amazon.com.](mailto: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](compression-support-iceberg.md). | 
| 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](compression-support-iceberg.md). | 
| Nilai default | Kompresi tulis default bervariasi menurut versi mesin Athena. Untuk informasi selengkapnya, lihat [Gunakan kompresi tabel Iceberg](compression-support-iceberg.md). | 

***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.<br />Nilai ini lebih diutamakan daripada properti. `vacuum_max_snapshot_age_seconds` Jika snapshot minimum yang tersisa lebih tua dari usia yang ditentukan oleh`vacuum_max_snapshot_age_seconds`, snapshot disimpan, dan nilai diabaikan`vacuum_max_snapshot_age_seconds`. | 
| 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 | 

***write\_data\_path\_enabled***


****  

|  |  | 
| --- |--- |
| Deskripsi | Ketika diatur ketrue, tabel Iceberg dibuat dengan write.data.path properti bukan properti usang. write.object-storage.path Gunakan opsi ini untuk memastikan kompatibilitas dengan Iceberg 1.9.0 dan yang lebih baru, yang tidak lagi mendukung properti usang. | 
| Nilai properti yang diizinkan | true, false | 
| Nilai default | false | 

### Contoh pernyataan CREATE TABLE
<a name="querying-iceberg-example-create-table-statement"></a>

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)
<a name="querying-iceberg-creating-tables-ctas"></a>

Untuk informasi tentang membuat tabel Gunung Es menggunakan `CREATE TABLE AS` pernyataan, lihat[CREATE TABLE AS](create-table-as.md), dengan perhatian khusus pada bagian tersebut[Properti tabel CTAS](create-table-as.md#ctas-table-properties).

## Gunakan AWS Glue crawler
<a name="querying-iceberg-creating-tables-crawler"></a>

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](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html). 