

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

# Buat tabel di Athena
<a name="creating-tables"></a>

Untuk membuat tabel, Anda dapat menjalankan pernyataan DDL di konsol Athena, menggunakan formulir [tabel **Athena Create**](creating-tables-how-to.md#to-create-a-table-using-the-wizard), atau menggunakan driver JDBC atau ODBC. Athena menggunakan Apache Hive untuk mendefinisikan tabel dan membuat basis data, yang pada dasarnya adalah namespace logis dari tabel. Athena mendukung berbagai pustaka serializer-deserializer (SerDe) untuk membuat tabel untuk format data tertentu. Untuk daftar SerDe pustaka yang didukung, lihat[Pilih SerDe untuk data Anda](supported-serdes.md).

Jika Anda membuat basis data dan tabel di Athena, Anda hanya menggambarkan skema dan lokasi tempat data tabel terletak di Amazon S3 untuk mengkueri read-time. Athena tidak mengubah data Anda di Amazon S3. Basis data dan tabel, oleh karena itu, memiliki arti yang sedikit berbeda dari yang arti mereka untuk sistem basis data relasional tradisional karena data tidak disimpan bersama dengan definisi skema untuk basis data dan tabel. 

Athena menyimpan skema dalam AWS Glue Data Catalog dan menggunakannya untuk membaca data ketika Anda query tabel menggunakan SQL. *schema-on-read*Pendekatan ini, yang memproyeksikan skema ke data Anda saat Anda menjalankan kueri, menghilangkan kebutuhan untuk pemuatan atau transformasi data.

## Pertimbangan dan batasan
<a name="creating-tables-considerations-and-limitations"></a>

Berikut adalah beberapa batasan dan pertimbangan penting untuk tabel di Athena.

### Pertimbangan Amazon S3
<a name="s3-considerations"></a>

Saat Anda membuat tabel, Anda menentukan lokasi bucket Amazon S3 untuk data dasar menggunakan klausa `LOCATION`. Pertimbangkan hal berikut:
+ Athena hanya dapat mengkueri versi terbaru dari data pada bucket Amazon S3 berversi, dan tidak dapat mengkueri versi sebelumnya dari data.
+ Anda harus memiliki izin untuk bekerja dengan data di lokasi Amazon S3. Untuk informasi selengkapnya, lihat [Kontrol akses ke Amazon S3 dari Athena](s3-permissions.md).
+ Athena mendukung kueri objek yang disimpan dengan beberapa kelas penyimpanan dalam bucket yang sama ditentukan oleh klausa `LOCATION`. Misalnya, Anda dapat mengkueri data dalam objek yang disimpan di kelas Penyimpanan yang berbeda (Standard, Standar-IA dan Intelligent-Tiering) di Amazon S3.
+ Athena mendukung [Bucket Peminta Membayar](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html). Untuk informasi cara mengaktifkan Requester Pays untuk bucket dengan data sumber yang ingin Anda kueri di Athena, lihat. [Buat grup kerja](creating-workgroups.md)
+ Anda dapat menggunakan Athena untuk menanyakan objek yang dipulihkan dari Amazon Glacier Flexible Retrieval (sebelumnya Glacier) dan Amazon Glacier Deep Archive kelas penyimpanan [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-glacier) tetapi Anda harus mengaktifkan kemampuan pada basis per tabel. Jika Anda tidak mengaktifkan fitur pada tabel sebelum menjalankan kueri, Athena melewatkan semua objek Amazon Glacier Flexible Retrieval dan Amazon Glacier Deep Archive tabel selama eksekusi kueri. Untuk informasi selengkapnya, lihat [Kueri memulihkan objek Amazon Glacier](querying-glacier.md).

  *Untuk informasi tentang kelas penyimpanan, lihat Kelas [penyimpanan, Mengubah kelas](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) [penyimpanan objek di amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/ChgStoClsOfObj.html), [Transisi ke kelas penyimpanan GLACIER (arsip objek), dan [Bucket Requester Pays](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) di Panduan Pengguna Layanan Penyimpanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#before-deciding-to-archive-objects) Sederhana Amazon.*
+ Jika Anda mengeluarkan kueri terhadap bucket Amazon S3 dengan sejumlah besar objek dan data tidak dipartisi, kueri tersebut dapat memengaruhi batas kecepatan Dapatkan permintaan di Amazon S3 dan menyebabkan pengecualian Amazon S3. Untuk mencegah kesalahan, partisi data Anda. Selain itu, pertimbangkan untuk menyetel tingkat permintaan Amazon S3 Anda. Untuk informasi selengkapnya, lihat [Pertimbangan tingkat permintaan dan kinerja](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html).

Untuk informasi selengkapnya tentang menentukan lokasi untuk data Anda di Amazon S3, lihat. [Tentukan lokasi tabel di Amazon S3](tables-location-format.md)

### Pertimbangan lainnya
<a name="creating-tables-other-considerations"></a>
+ **Transformasi data transaksional tidak didukung -** Athena tidak mendukung operasi berbasis transaksi (seperti yang ditemukan di Hive atau Presto) pada data tabel. Untuk daftar lengkap kata kunci yang tidak didukung, lihat: [DDL Tidak Didukung](unsupported-ddl.md).
+ **Operasi pada tabel adalah ACID** — Saat Anda membuat, memperbarui, atau menghapus tabel, operasi tersebut dijamin sesuai dengan ACID. Sebagai contoh, jika beberapa pengguna atau klien mencoba untuk membuat atau mengubah tabel yang ada pada saat yang sama, hanya satu akan berhasil.
+ **Tabel adalah EKSTERNAL** — Kecuali saat membuat tabel [Iceberg](querying-iceberg-creating-tables.md), selalu gunakan kata kunci. `EXTERNAL` Jika Anda menggunakan `CREATE TABLE` tanpa `EXTERNAL` kata kunci untuk tabel non-Iceberg, Athena mengeluarkan kesalahan. Saat Anda menjatuhkan tabel di Athena, hanya metadata tabel dihapus; data tetap di Amazon S3.
+ **Panjang string kueri maksimum - Panjang** string kueri maksimum adalah 256 KB.
+ Jika Anda menggunakan operasi AWS Glue [CreateTable](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateTable.html)API atau CloudFormation [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html)template untuk membuat tabel untuk digunakan di Athena tanpa menentukan `TableType` properti dan kemudian menjalankan kueri DDL seperti `SHOW CREATE TABLE` atau`MSCK REPAIR TABLE`, Anda dapat menerima pesan kesalahan GAGAL: NullPointerException  Nama adalah null. 

  Untuk mengatasi kesalahan, tentukan nilai [TableInput](https://docs.aws.amazon.com/glue/latest/webapi/API_TableInput.html)`TableType`atribut sebagai bagian dari panggilan AWS Glue `CreateTable` API atau [CloudFormation templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html). Nilai yang mungkin untuk `TableType` include `EXTERNAL_TABLE` atau`VIRTUAL_VIEW`.

  Persyaratan ini hanya berlaku ketika Anda membuat tabel menggunakan operasi AWS Glue `CreateTable` API atau `AWS::Glue::Table` template. Jika Anda membuat tabel untuk Athena menggunakan pernyataan DDL atau AWS Glue crawler, `TableType` properti didefinisikan untuk Anda secara otomatis. 

**Topics**
+ [Pertimbangan dan batasan](#creating-tables-considerations-and-limitations)
+ [Buat tabel menggunakan AWS Glue atau konsol Athena](creating-tables-how-to.md)
+ [Tentukan lokasi tabel di Amazon S3](tables-location-format.md)
+ [Tampilkan informasi tabel setelah pembuatan](creating-tables-showing-table-information.md)

# Buat tabel menggunakan AWS Glue atau konsol Athena
<a name="creating-tables-how-to"></a>

Anda dapat membuat tabel di Athena dengan menggunakan AWS Glue, menambahkan formulir tabel, atau dengan menjalankan pernyataan DDL di editor kueri Athena.

## Untuk membuat tabel menggunakan AWS Glue crawler
<a name="to-create-a-table-using-the-aws-glue-data-catalog"></a>

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Di editor kueri, di samping **Tabel dan tampilan**, pilih **Buat**, lalu pilih **AWS Glue crawler**. 

1. Ikuti langkah-langkah di halaman **Add crawler** AWS Glue konsol untuk menambahkan crawler. 

   Untuk informasi selengkapnya, lihat [Gunakan crawler untuk menambahkan tabel](schema-crawlers.md).

## Untuk membuat tabel menggunakan Athena membuat formulir tabel
<a name="to-create-a-table-using-the-wizard"></a>

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Di editor kueri, di samping **Tabel dan tampilan**, pilih **Buat**, lalu pilih **data bucket S3**.

1. Dalam formulir **data bucket Create Table From S3**, masukkan informasi untuk membuat tabel, lalu pilih **Create table**. Untuk informasi lebih lanjut tentang bidang dalam formulir, lihat[Gunakan formulir di konsol Athena untuk menambahkan tabel AWS Glue](data-sources-glue-manual-table.md).

## Untuk membuat tabel menggunakan pernyataan CREATE TABLE di editor kueri Athena
<a name="to-create-a-table-using-hive-ddl"></a>

1. Dari menu **Basis Data**, pilih basis data yang ingin Anda buatkan tabel. Jika Anda tidak menentukan database dalam `CREATE TABLE` pernyataan Anda, tabel dibuat dalam database yang saat ini dipilih di editor kueri.

1. Di editor kueri, masukkan pernyataan seperti yang ditunjukkan pada contoh berikut dan kemudian pilih **Jalankan**.

   ```
   CREATE EXTERNAL TABLE myopencsvtable (
      firstname string,
      lastname string,
      job string,
      country string
   )
   ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
   WITH SERDEPROPERTIES (
      'separatorChar' = ',',
      'quoteChar' = '"',
      'escapeChar' = '\\'
      )
   STORED AS TEXTFILE
   LOCATION 's3://amzn-s3-demo-bucket/mycsv/';
   ```

# Tentukan lokasi tabel di Amazon S3
<a name="tables-location-format"></a>

Saat Anda menjalankan `CREATE TABLE` kueri di Athena, Athena mendaftarkan tabel Anda dengan Katalog AWS Glue Data, tempat Athena menyimpan metadata Anda.

Untuk menentukan jalur ke data Anda di Amazon S3, gunakan `LOCATION` properti dalam `CREATE TABLE` pernyataan Anda, seperti pada contoh berikut:

```
CREATE EXTERNAL TABLE `test_table`(
...
)
ROW FORMAT ...
STORED AS INPUTFORMAT ...
OUTPUTFORMAT ...
LOCATION s3://amzn-s3-demo-bucket/folder/
```
+ Untuk informasi tentang penamaan bucket, lihat [Pembatasan dan batasan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.
+ Untuk informasi tentang menggunakan folder di Amazon S3, lihat [Menggunakan folder](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

`LOCATION`Di Amazon S3 menentukan *semua* file yang mewakili tabel Anda. 

**penting**  
Athena membaca *semua* data yang disimpan di folder Amazon S3 yang Anda tentukan. Jika Anda memiliki data yang *tidak* ingin Athena baca, jangan simpan data itu di folder Amazon S3 yang sama dengan data yang Anda ingin Athena baca.

Saat Anda menentukan `LOCATION` dalam `CREATE TABLE` pernyataan, gunakan pedoman berikut:
+ Gunakan garis miring.
+ Anda dapat menggunakan jalur ke folder Amazon S3 atau alias jalur akses Amazon S3. *Untuk informasi tentang alias jalur akses Amazon S3, lihat [Menggunakan alias gaya ember untuk titik akses Anda di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-alias.html) Pengguna Amazon S3.*

 **Gunakan**:

```
s3://amzn-s3-demo-bucket/folder/
```

```
s3://amzn-s3-demo-bucket-metadata-s3alias/folder/
```

Jangan gunakan salah satu item berikut `LOCATION` untuk menentukan data Anda.
+ Jangan gunakan nama file, garis bawah, wildcard, atau pola glob untuk menentukan lokasi file.
+ Jangan menambahkan notasi HTTP lengkap, seperti `s3.amazon.com` ke jalur bucket Amazon S3.
+ Jangan gunakan folder kosong seperti `//` di jalur, sebagai berikut:`S3://amzn-s3-demo-bucket/folder//folder/`. 
+ Jangan gunakan jalur seperti berikut:

  ```
  s3://amzn-s3-demo-bucket
  s3://amzn-s3-demo-bucket/*
  s3://amzn-s3-demo-bucket/mySpecialFile.dat
  s3://amzn-s3-demo-bucket/prefix/filename.csv
  s3://amzn-s3-demo-bucket.s3.amazon.com
  S3://amzn-s3-demo-bucket/prefix//prefix/
  arn:aws:s3:::amzn-s3-demo-bucket/prefix
  s3://arn:aws:s3:<region>:<account_id>:accesspoint/<accesspointname>
  https://<accesspointname>-<number>.s3-accesspoint.<region>.amazonaws.com
  ```

# Tampilkan informasi tabel setelah pembuatan
<a name="creating-tables-showing-table-information"></a>

Setelah Anda membuat tabel di Athena, namanya ditampilkan dalam daftar **Tabel** di sebelah kiri di konsol Athena. Untuk menampilkan informasi tentang tabel dan mengelolanya, pilih tiga titik vertikal di sebelah nama tabel di konsol Athena. 
+ **Tabel pratinjau** - Menampilkan 10 baris pertama dari semua kolom dengan menjalankan `SELECT * FROM "database_name"."table_name" LIMIT 10` pernyataan di editor kueri Athena.
+ **Menghasilkan tabel DDL** - Menghasilkan pernyataan DDL yang dapat Anda gunakan untuk membuat ulang tabel dengan menjalankan `SHOW CREATE TABLE` *table\$1name* pernyataan di editor kueri Athena.
+ **Memuat partisi** - Menjalankan `MSCK REPAIR TABLE table_name` pernyataan di editor kueri Athena. Opsi ini hanya tersedia jika tabel memiliki partisi. 
+ **Sisipkan ke editor** - Menyisipkan nama tabel ke editor kueri di lokasi pengeditan saat ini.
+ **Hapus tabel** - Menampilkan kotak dialog konfirmasi menanyakan apakah Anda ingin menghapus tabel. Jika Anda setuju, jalankan `DROP TABLE table_name` pernyataan di editor kueri Athena.
+ **Properti tabel** - Menampilkan nama tabel, nama basis data, waktu dibuat, dan apakah tabel memiliki data terenkripsi.