

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

# Gunakan AWS Glue Data Catalog untuk terhubung ke data Anda
<a name="data-sources-glue"></a>

Athena menggunakan metadata AWS Glue Data Catalog untuk menyimpan seperti nama tabel dan kolom untuk data yang disimpan di Amazon S3. Informasi metadata ini menjadi database, tabel, dan tampilan yang Anda lihat di editor kueri Athena.

Saat menggunakan Athena dengan AWS Glue Data Catalog, Anda dapat menggunakan AWS Glue untuk membuat database dan tabel (skema) untuk ditanyakan di Athena, atau Anda dapat menggunakan Athena untuk membuat skema dan kemudian menggunakannya di dan layanan terkait. AWS Glue 

Untuk menentukan informasi skema AWS Glue, Anda dapat menggunakan formulir di konsol Athena, menggunakan editor kueri di Athena, atau membuat AWS Glue crawler di konsol. AWS Glue AWS Glue crawler secara otomatis menyimpulkan skema database dan tabel dari data Anda di Amazon S3. Menggunakan formulir menawarkan lebih banyak penyesuaian. Menulis `CREATE TABLE` pernyataan Anda sendiri membutuhkan lebih banyak usaha, tetapi menawarkan kontrol paling besar. Untuk informasi selengkapnya, lihat [CREATE TABLE](create-table.md).

## Sumber Daya Tambahan
<a name="glue-additional-resources"></a>
+ Untuk informasi selengkapnya tentang AWS Glue Data Catalog, lihat [Katalog Data dan crawler AWS Glue di](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) *Panduan AWS Glue Pengembang*.
+ Untuk artikel ilustrasi yang menunjukkan cara menggunakan AWS Glue dan Athena untuk memproses data XHTML, [lihat Memproses dan menganalisis file XHTML yang sangat bersarang dan besar menggunakan dan AWS Glue Amazon Athena](https://aws.amazon.com/blogs/big-data/process-and-analyze-highly-nested-and-large-xml-files-using-aws-glue-and-amazon-athena/) di Big Data Blog. AWS 
+ Biaya terpisah berlaku untuk AWS Glue. Untuk informasi selengkapnya, lihat [harga AWS Glue](https://aws.amazon.com/glue/pricing).

**Topics**
+ [Sumber Daya Tambahan](#glue-additional-resources)
+ [Daftarkan dan gunakan katalog data di Athena](gdc-register.md)
+ [Daftarkan Katalog Data dari akun lain](data-sources-glue-cross-account.md)
+ [Kontrol akses ke katalog data dengan kebijakan IAM](datacatalogs-iam-policy.md)
+ [Gunakan formulir di konsol Athena untuk menambahkan tabel AWS Glue](data-sources-glue-manual-table.md)
+ [Gunakan crawler untuk menambahkan tabel](schema-crawlers.md)
+ [Optimalkan kueri dengan pengindeksan dan AWS Glue pemfilteran partisi](glue-best-practices-partition-index.md)
+ [Gunakan AWS CLI untuk membuat ulang AWS Glue database dan tabelnya](glue-recreate-db-and-tables-cli.md)
+ [Buat tabel untuk pekerjaan ETL](schema-classifier.md)
+ [Bekerja dengan data CSV di AWS Glue](schema-csv.md)
+ [Bekerja dengan data geospasial di AWS Glue](schema-geospatial.md)

# Daftarkan dan gunakan katalog data di Athena
<a name="gdc-register"></a>

Athena mendukung pemasangan dan penghubung ke beberapa katalog data. 
+ Anda dapat memasang data Amazon Redshift di AWS Glue Data Catalog dan menanyakannya dari Athena tanpa harus menyalin atau memindahkan data. Untuk informasi selengkapnya, lihat [Membawa data Amazon Redshift ke dalam](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-namespaces-datacatalog.html). AWS Glue Data Catalog
+  Hubungkan AWS Glue Data Catalog ke sumber data eksternal menggunakan AWS Glue koneksi, dan buat katalog federasi untuk mengelola izin data secara terpusat dengan kontrol akses berbutir halus menggunakan Lake Formation. Untuk informasi selengkapnya, lihat [Daftarkan koneksi Anda sebagai Glue Data Catalog](register-connection-as-gdc.md).
+ Buat katalog dari bucket tabel Amazon S3, dan gunakan Lake Formation untuk mengelola izin akses secara terpusat dan membatasi akses pengguna ke objek di dalam bucket tabel. Untuk informasi selengkapnya, lihat [Bekerja dengan Tabel Amazon S3 dan bucket tabel di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html) Pengguna Amazon S3.

**catatan**  
Untuk katalog Glue apa pun, Anda hanya dapat mendaftarkan katalog multi-level seperti`123412341234:my_catalog/my_child`. Anda tidak dapat mendaftarkan katalog tingkat tunggal seperti `123412341234:linkcontainer` atau`my_catalog`. Katalog tingkat tunggal hanya dapat ditanyakan dengan menggunakan katalog data Glue langsung di kueri Athena. Untuk informasi selengkapnya, lihat [Katalog AWS Glue data kueri di Athena](gdc-register-query-the-data-source.md). 

**Topics**
+ [Daftarkan katalog data Redshift di Athena](gdc-register-rs.md)
+ [Daftarkan katalog federasi di Athena](gdc-register-federated.md)
+ [Daftarkan katalog bucket tabel S3 dan kueri Tabel dari Athena](gdc-register-s3-table-bucket-cat.md)
+ [Katalog AWS Glue data kueri di Athena](gdc-register-query-the-data-source.md)

# Daftarkan katalog data Redshift di Athena
<a name="gdc-register-rs"></a>

Athena dapat membaca dan menulis data yang disimpan dalam cluster Redshift atau ruang nama tanpa server yang telah terdaftar di. AWS Glue Data Catalog Ini bekerja bersama-sama dengan AWS Lake Formation, yang menyediakan keamanan dan tata kelola terpusat, memastikan bahwa akses data dikelola secara konsisten di berbagai mesin kueri dan mempertahankan kontrol akses berbutir halus untuk data Redshift bersama.

## Pertimbangan dan batasan
<a name="gdc-register-rs-considerations-and-limitations"></a>
+ **Tampilan terwujud — Tampilan terwujud** Amazon Redshift dapat ditanyakan dari Athena tetapi membuat tampilan terwujud menggunakan Athena atau Spark tidak didukung.
+ Operasi DDL, termasuk pengaturan AWS Glue Data Catalog konfigurasi dan operasi pada tabel penyimpanan terkelola Amazon Redshift, tidak didukung.

## Prasyarat
<a name="gdc-register-rs-prerequisites"></a>

Sebelum Anda dapat menanyakan katalog AWS Glue data dari Athena, selesaikan tugas-tugas berikut:

1. Buat dan daftarkan cluster Amazon Redshift atau namespace tanpa server ke. AWS Glue Data Catalog Untuk informasi selengkapnya, lihat [Mendaftarkan klaster ke AWS Glue Data Catalog](https://docs.aws.amazon.com/redshift/latest/mgmt/register-cluster.html) atau [Mendaftarkan ruang nama ke AWS Glue Data Catalog dalam panduan](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless_datasharing-register-namespace.html) Manajemen Pergeseran Merah Amazon.

1. Buat katalog data AWS Lake Formation dari namespace terdaftar. Untuk informasi selengkapnya, lihat [Membuat katalog gabungan Amazon Redshift di Panduan](https://docs.aws.amazon.com/lake-formation/latest/dg/create-ns-catalog.html) Pengembang. AWS Lake Formation 

1. (Opsional) Gunakan Lake Formation untuk mengatur kontrol akses berbutir halus pada katalog. Untuk informasi selengkapnya, lihat [Membawa data Anda ke AWS Glue Data Catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/bring-your-data-overview.html) dalam Panduan AWS Lake Formation Pengembang.

## Daftarkan katalog data Redshift dengan konsol Athena
<a name="gdc-register-rs-console-steps"></a>

Untuk mendaftarkan katalog data Redshift dengan konsol Athena, lakukan langkah-langkah berikut.

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

1. Di panel navigasi, pilih **Sumber data dan katalog**.

1. Pada halaman **Sumber data dan katalog**, pilih **Buat sumber data**.

1. Untuk **Pilih sumber data**, pilih **Amazon S3** -. AWS Glue Data Catalog

1. Di **AWS Glue Data Catalog**bagian ini, untuk **Akun sumber data**, pilih **AWS Glue Data Catalog di akun ini**.

1. Untuk **Buat tabel atau daftarkan katalog**, pilih **Daftarkan AWS Glue Katalog baru**.

1. Di bagian **Rincian sumber data****, untuk nama sumber data**, masukkan nama yang ingin Anda gunakan untuk menentukan sumber data dalam kueri SQL Anda atau gunakan nama default yang dihasilkan.

1. Untuk **Katalog**, pilih **Jelajahi** untuk mencari daftar AWS Glue katalog di akun yang sama. [Jika Anda tidak melihat katalog yang ada, buat katalog di AWS Glue konsol.](https://console.aws.amazon.com/glue/) 

1. **Dalam kotak dialog **Jelajahi AWS Glue katalog**, pilih katalog yang ingin Anda gunakan, lalu pilih Pilih.**

1. (Opsional) Untuk **Tag**, masukkan key/value pasangan apa pun yang ingin Anda kaitkan dengan sumber data.

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, verifikasi bahwa informasi yang Anda masukkan sudah benar, lalu pilih **Buat sumber data**.

# Daftarkan katalog federasi di Athena
<a name="gdc-register-federated"></a>

Setelah membuat koneksi ke sumber data federasi, Anda dapat mendaftarkannya sebagai katalog data federasi untuk penemuan data yang disederhanakan dan mengelola akses data dengan izin halus menggunakan Lake Formation. Untuk informasi selengkapnya, lihat [Daftarkan koneksi Anda sebagai Glue Data Catalog](register-connection-as-gdc.md).

## Pertimbangan dan batasan
<a name="gdc-register-federated-consideration"></a>
+ Operasi DDL tidak didukung pada katalog federasi. 
+ Anda dapat mendaftarkan konektor berikut untuk diintegrasikan dengan kontrol AWS Glue akses berbutir halus:
  + [Penyimpanan Danau Data Azure](connectors-adls-gen2.md)
  + [Sinaps Azure](connectors-azure-synapse.md)
  + [BigQuery](connectors-bigquery.md)
  + [CMDB](connectors-cmdb.md)
  + [Db2](connectors-ibm-db2.md)
  + [Db2 iSeries](connectors-ibm-db2-as400.md)
  + [DocumentDB](connectors-docdb.md)
  + [DynamoDB](connectors-dynamodb.md)
  + [Penyimpanan Awan Google](connectors-gcs.md)
  + [HBase](connectors-hbase.md)
  + [MySQL](connectors-mysql.md)
  + [OpenSearch](connectors-opensearch.md)
  + [Oracle](connectors-oracle.md)
  + [PostgreSQL](connectors-postgresql.md)
  + [Pergeseran Merah](connectors-redshift.md)
  + [SAP HANA](connectors-sap-hana.md)
  + [Kepingan salju](connectors-snowflake.md)
  + [SQL Server](connectors-microsoft-sql-server.md)
  + [Aliran waktu](connectors-timestream.md)
  + [TPC-DS](connectors-tpcds.md)
+ Saat Anda membuat tautan sumber daya untuk federasi koneksi Glue, nama [tautan sumber daya](https://docs.aws.amazon.com/lake-formation/latest/dg/create-resource-link-database.html) harus sama dengan nama database produsen.
+ Saat ini, hanya nama tabel dan kolom huruf kecil yang dikenali meskipun sumber data tidak peka huruf besar/kecil.

# Daftarkan katalog bucket tabel S3 dan kueri Tabel dari Athena
<a name="gdc-register-s3-table-bucket-cat"></a>

Bucket tabel Amazon S3 adalah jenis bucket di Amazon S3 yang dibuat khusus untuk menyimpan data tabular di tabel Apache Iceberg. Bucket tabel mengotomatiskan tugas manajemen tabel seperti pemadatan, manajemen snapshot, dan pengumpulan sampah untuk terus mengoptimalkan kinerja kueri dan meminimalkan biaya. Baik Anda baru memulai, atau memiliki ribuan tabel di lingkungan Gunung Es Anda, bucket tabel menyederhanakan data lake pada skala apa pun. Untuk informasi selengkapnya, lihat [Bucket tabel](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets.html).

## Pertimbangan dan batasan
<a name="gdc-register-s3-table-consideration"></a>
+ Semua operasi DDL yang didukung untuk tabel Iceberg didukung untuk Tabel S3 dengan pengecualian berikut:
  + `ALTER TABLE RENAME`,`CREATE VIEW`, dan `ALTER DATABASE` tidak didukung.
  + `OPTIMIZE`dan `VACUUM` - Anda dapat mengelola manajemen pemadatan dan snapshot di S3. Untuk informasi selengkapnya, lihat [dokumentasi pemeliharaan Tabel S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-maintenance.html).
+ Kueri DDL pada Tabel S3 yang terdaftar sebagai sumber data Athena tidak didukung.
+ Penggunaan kembali hasil kueri tidak didukung.
+ Dalam kelompok kerja dengan SSE-KMS, enkripsi CSE-KMS diaktifkan, Anda tidak dapat menjalankan operasi tulis seperti`INSERT`,,, atau pada Tabel S3. `UPDATE` `DELETE` `MERGE`
+ Dalam kelompok kerja dengan opsi S3 Requester Pays diaktifkan, Anda tidak dapat menjalankan operasi DMLpada Tabel S3.

## Kueri Tabel S3 dari Athena
<a name="gdc-register-s3-table-prereq-setup"></a>

**Selesaikan langkah-langkah prasyarat ini sebelum Anda menanyakan Tabel S3 di Athena**

1. Buat ember meja S3. Untuk informasi selengkapnya, lihat [Membuat bucket tabel](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. 

1. Pastikan integrasi bucket meja Anda berhasil. AWS Glue Data Catalog Untuk izin dan langkah penyiapan yang diperlukan, lihat [Prasyarat untuk integrasi Tabel S3 dan Mengaktifkan integrasi Tabel S3](https://docs.aws.amazon.com/glue/latest/dg/s3tables-catalog-prerequisites.html) [dengan Katalog Data Glue di Panduan](https://docs.aws.amazon.com/glue/latest/dg/enable-s3-tables-catalog-integration.html) Pengembang. AWS Glue 

1. Untuk prinsipal yang Anda gunakan untuk menjalankan kueri dengan Athena, berikan izin pada katalog Tabel S3 menggunakan salah satu pendekatan berikut: 

   **Opsi 1: Gunakan izin IAM**

   Saat menggunakan kontrol akses IAM, prinsipal Anda memerlukan izin pada AWS Glue Data Catalog sumber daya dan sumber daya Amazon S3 Tabel.

   Daftar berikut berisi semua `s3tables` izin yang diperlukan untuk melakukan operasi DDL atau DHTML yang didukung terhadap Tabel S3 Anda di Athena:
   + `s3tables:GetTableBucket`
   + `s3tables:GetNamespace`
   + `s3tables:GetTable`
   + `s3tables:GetTableData`
   + `s3tables:PutTableData`
   + `s3tables:ListNamespaces`
   + `s3tables:ListTables`
   + `s3tables:DeleteNamespace`
   + `s3tables:DeleteTable`
   + `s3tables:CreateNamespace`
   + `s3tables:CreateTable`
   + `s3tables:UpdateTableMetadataLocation`

   Terapkan izin ini ke bucket tabel S3 tertentu dan sumber daya Tabel S3 atau gunakan `*` sebagai sumber daya untuk memberikan akses ke semua bucket dan tabel tabel di akun Anda. Izin ini dapat digabungkan dengan kebijakan [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html)terkelola untuk mengaktifkan fungsionalitas lengkap.

   **Opsi 2: Gunakan izin Lake Formation**

   Atau, untuk mengaktifkan kontrol akses berbutir halus, Anda dapat memberikan izin Lake Formation pada katalog Tabel S3, baik melalui konsol Lake Formation atau. AWS CLI Ini memerlukan pendaftaran bucket tabel S3 Anda sebagai lokasi data Lake Formation. Untuk informasi selengkapnya, lihat [Membuat katalog Tabel Amazon S3 AWS Glue Data Catalog di Panduan](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html) Pengembang Lake Formation.

------
#### [ Konsol Manajemen AWS ]

   1. Buka AWS Lake Formation konsol di [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) dan masuk sebagai administrator danau data. Untuk informasi selengkapnya tentang cara membuat administrator data lake, lihat [Membuat administrator data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin).

   1. **Di panel navigasi, pilih **Izin data** lalu pilih Hibah.** 

   1. Pada halaman **Izin Hibah**, di bawah **Prinsipal**, pilih prinsipal yang ingin Anda gunakan untuk mengirimkan kueri dari Athena.

   1. Di bawah **LF-tag atau sumber katalog, pilih Sumber daya Katalog** **Data Bernama**.

   1. Untuk **Katalog**, pilih katalog data lem yang Anda buat dari integrasi bucket meja Anda. Misalnya *<accoundID>* ,:s3tablescatalog/. *amzn-s3-demo-bucket*

   1. Untuk **izin Katalog**, pilih **Super**.

   1. Pilih**Izin**.

------
#### [ AWS CLI ]

   Jalankan perintah berikut dengan peran administrator danau data Lake Formation untuk memberikan akses ke kepala sekolah yang Anda gunakan untuk mengirimkan kueri dari Athena. 

   ```
   aws lakeformation grant-permissions \
   --region <region (Example,us-east-1)> \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "<user or role ARN (Example, arn:aws:iam::<Account ID>:role/ExampleRole>"
       },
       "Resource": {
           "Catalog": {
               "Id":"<Account ID>:s3tablescatalog/amzn-s3-demo-bucket"
           }
       },
       "Permissions": ["ALL"]
   }'
   ```

------

**Kirim kueri untuk Tabel S3**

1. Kirim `CREATE DATABASE` kueri dari Athena dengan pengguna/peran yang diberikan di atas. Dalam contoh ini, `s3tablescatalog` adalah Katalog Data Glue induk yang dibuat dari integrasi dan ` s3tablescatalog/amzn-s3-demo-bucket` merupakan Katalog Data Glue anak yang dibuat untuk setiap bucket tabel S3. Ada dua cara di mana Anda dapat menanyakan.

------
#### [ Option 1 ]

   Tentukan anak Glue Data Catalog (`s3tablescatalog/amzn-s3-demo-bucket`) langsung dari konsol atau AWS CLI.

   **Menggunakan Konsol Manajemen AWS**

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

   1. Di navigasi kiri, untuk **nama sumber data**, pilih **AwsDataCatalog**.

   1. Untuk **Katalog**, pilih ***amzn-s3-demo-bucket*s3tablescatalog/**.

   1. Di editor kueri, masukkan kueri seperti`CREATE DATABASE test_namespace`.

   **Menggunakan AWS CLI**

   Jalankan perintah berikut.

   ```
   aws athena start-query-execution \ 
   --query-string 'CREATE DATABASE `test_namespace`' \ 
   --query-execution-context '{"Catalog": "s3tablescatalog/amzn-s3-demo-bucket"}' \
   --work-group "primary"
   ```

------
#### [ Option 2 ]

   Buat katalog data Athena dari Katalog Data Glue anak di konsol Athena dan tentukan sebagai katalog dalam kueri. Untuk informasi selengkapnya, lihat [Daftarkan katalog bucket tabel S3 sebagai sumber data Athena](#gdc-register-s3-table-console-steps).

------

1. Dengan database yang Anda buat pada langkah sebelumnya, gunakan `CREATE TABLE` untuk membuat tabel. Contoh berikut membuat tabel dalam *`test_namespace`* database yang sebelumnya Anda buat di katalog `s3tablescatalog/amzn-s3-demo-bucket` Glue.

------
#### [ Konsol Manajemen AWS ]

   1. Di navigasi kiri, untuk **nama sumber data**, pilih **AwsDataCatalog**.

   1. Untuk **Katalog**, pilih ***amzn-s3-demo-bucket*s3tablescatalog/**.

   1. Untuk **Database**, pilih **test\$1namespace**.

   1. Di editor kueri, jalankan kueri berikut.

      ```
      CREATE TABLE daily_sales (
              sale_date date,
              product_category
              string, sales_amount double)
      PARTITIONED BY (month(sale_date))
      TBLPROPERTIES ('table_type' = 'iceberg')
      ```

------
#### [ AWS CLI ]

   Jalankan perintah berikut.

   ```
   aws athena start-query-execution \
   --query-string "CREATE TABLE daily_sales (
           sale_date date,
           product_category
           string, sales_amount double)
   PARTITIONED BY (month(sale_date))
   TBLPROPERTIES ('table_type' = 'iceberg')" \
   --query-execution-context '{"Catalog": "s3tablescatalog/amzn-s3-demo-bucket", "Database":"test_namespace"}' \
   --work-group "primary"
   ```

------

1. Masukkan data ke dalam tabel yang Anda buat pada langkah sebelumnya.

------
#### [ Konsol Manajemen AWS ]

   1. Di navigasi kiri, untuk **nama sumber data**, pilih **AwsDataCatalog**.

   1. Untuk **Katalog**, pilih ***amzn-s3-demo-bucket*s3tablescatalog/**.

   1. Untuk **Database**, pilih **test\$1namespace**.

   1. Di editor kueri, jalankan kueri berikut.

      ```
      INSERT INTO daily_sales
      VALUES 
          (DATE '2024-01-15', 'Laptop', 900.00),
          (DATE '2024-01-15', 'Monitor', 250.00),
          (DATE '2024-01-16', 'Laptop', 1350.00),
          (DATE '2024-02-01', 'Monitor', 300.00);
      ```

------
#### [ AWS CLI ]

   Jalankan perintah berikut.

   ```
   aws athena start-query-execution \
   --query-string "INSERT INTO \"s3tablescatalog/amzn-s3-demo-bucket\".test_namespace.daily_sales
   VALUES 
   (DATE '2024-01-15', 'Laptop', 900.00),
   (DATE '2024-01-15', 'Monitor', 250.00),
   (DATE '2024-01-16', 'Laptop', 1350.00),
   (DATE '2024-02-01', 'Monitor', 300.00)"\ 
   --work-group "primary"
   ```

------

1. Setelah memasukkan data ke dalam tabel, Anda dapat menanyakannya.

------
#### [ Konsol Manajemen AWS ]

   1. Di navigasi kiri, untuk **nama sumber data**, pilih **AwsDataCatalog**.

   1. Untuk **Katalog**, pilih ***amzn-s3-demo-bucket*s3tablescatalog/**.

   1. Untuk **Database**, pilih **test\$1namespace**.

   1. Di editor kueri, jalankan kueri berikut.

      ```
      SELECT
          product_category,
          COUNT(*) AS units_sold,
          SUM(sales_amount) AS total_revenue,
          AVG(sales_amount) AS average_price
      FROM
          daily_sales
      WHERE
          sale_date BETWEEN DATE '2024-02-01' 
                       AND DATE '2024-02-29'
      GROUP BY
          product_category
      ORDER BY
          total_revenue DESC
      ```

------
#### [ AWS CLI ]

   Jalankan perintah berikut.

   ```
   aws athena start-query-execution \
   --query-string "SELECT product_category,
       COUNT(*) AS units_sold,
       SUM(sales_amount) AS total_revenue,
       AVG(sales_amount) AS average_price
   FROM \"s3tablescatalog/amzn-s3-demo-bucket\".test_namespace.daily_sales
   WHERE sale_date BETWEEN DATE '2024-02-01' AND DATE '2024-02-29'
   GROUP BY product_category
   ORDER BY total_revenue DESC"\
   --work-group "primary"
   ```

------

## Buat Tabel S3 di Athena
<a name="gdc-create-s3-tables-athena"></a>

Athena mendukung pembuatan tabel di ruang nama Tabel S3 yang ada atau ruang nama yang dibuat di Athena dengan pernyataan. `CREATE DATABASE` Untuk membuat Tabel S3 dari Athena, sintaksnya sama seperti saat [Anda membuat tabel Iceberg biasa](querying-iceberg-creating-tables.md) kecuali Anda tidak menentukan, seperti yang ditunjukkan `LOCATION` pada contoh berikut.

```
CREATE TABLE
[db_name.]table_name (col_name data_type [COMMENT col_comment] [, ...] )
[PARTITIONED BY (col_name | transform, ... )]
[TBLPROPERTIES ([, property_name=property_value] )]
```

Anda juga dapat membuat Tabel S3 menggunakan pernyataan CREATE TABLE AS SELECT (CTAS). Untuk informasi selengkapnya, lihat [CTAS untuk Tabel S3](#ctas-s3-tables).

## Daftarkan katalog bucket tabel S3 sebagai sumber data Athena
<a name="gdc-register-s3-table-console-steps"></a>

Untuk mendaftarkan katalog bucket tabel S3 dengan konsol Athena, lakukan langkah-langkah berikut.

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

1. Di panel navigasi, pilih **Sumber data dan katalog**.

1. Pada halaman **Sumber data dan katalog**, pilih **Buat sumber data**.

1. Untuk **Pilih sumber data**, pilih **Amazon S3** -. AWS Glue Data Catalog

1. Di **AWS Glue Data Catalog**bagian ini, untuk **Akun sumber data**, pilih **AWS Glue Data Catalog di akun ini**.

1. Untuk **Buat tabel atau daftarkan katalog**, pilih **Daftarkan AWS Glue Katalog baru**.

1. Di bagian **Rincian sumber data****, untuk nama sumber data**, masukkan nama yang ingin Anda gunakan untuk menentukan sumber data dalam kueri SQL Anda atau gunakan nama default yang dihasilkan.

1. Untuk **Katalog**, pilih **Jelajahi** untuk mencari daftar AWS Glue katalog di akun yang sama. [Jika Anda tidak melihat katalog yang ada, buat katalog di AWS Glue konsol.](https://console.aws.amazon.com/glue/) 

1. **Dalam kotak dialog **Jelajahi AWS Glue katalog**, pilih katalog yang ingin Anda gunakan, lalu pilih Pilih.**

1. (Opsional) Untuk **Tag**, masukkan key/value pasangan apa pun yang ingin Anda kaitkan dengan sumber data.

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, verifikasi bahwa informasi yang Anda masukkan sudah benar, lalu pilih **Buat sumber data**.

## CTAS untuk Tabel S3
<a name="ctas-s3-tables"></a>

Amazon Athena sekarang mendukung operasi CREATE TABLE AS SELECT (CTAS) untuk Tabel S3. Fitur ini memungkinkan Anda membuat Tabel S3 baru berdasarkan hasil kueri SELECT. 

Saat membuat kueri CTAS untuk Tabel S3, ada beberapa perbedaan penting dibandingkan dengan tabel Athena standar:
+ Anda harus menghilangkan properti lokasi karena Tabel S3 secara otomatis mengelola lokasi penyimpanannya sendiri.
+ `table_type`Properti defaultnya`ICEBERG`, jadi Anda tidak perlu menentukannya secara eksplisit dalam kueri Anda.
+ Jika Anda tidak menentukan format, sistem secara otomatis menggunakan `PARQUET` sebagai format default untuk data Anda.
+ Semua properti lainnya mengikuti sintaks yang sama seperti tabel Iceberg biasa.

Sebelum Anda membuat Tabel S3 menggunakan CTAS, pastikan Anda memiliki izin yang diperlukan yang dikonfigurasi di IAM atau. AWS Lake Formation Secara khusus, Anda memerlukan izin untuk membuat tabel di katalog Tabel S3. Tanpa izin ini, operasi CTAS Anda akan gagal.

**catatan**  
Jika kueri CTAS gagal, Anda mungkin harus menghapus tabel menggunakan [API Tabel S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-delete.html) sebelum mencoba menjalankan kembali kueri Anda. Anda tidak dapat menggunakan `DROP TABLE` pernyataan Athena untuk menghapus tabel yang sebagian dibuat oleh kueri. 

**Contoh**

```
CREATE TABLE "s3tablescatalog/amzn-s3-demo-bucket"."namespace"."s3-table-name"
WITH (
    format = 'PARQUET'
)
AS SELECT *
FROM source_table;
```

# Katalog AWS Glue data kueri di Athena
<a name="gdc-register-query-the-data-source"></a>

Untuk menanyakan katalog data dari Athena, lakukan salah satu hal berikut.
+ Daftarkan katalog di Athena sebagai sumber data, lalu gunakan nama sumber data untuk menanyakan katalog. Dalam penggunaan ini, kueri berikut setara.

  ```
  SELECT * FROM my_data_source.my_database.my_table
  ```
+ Jika Anda menanyakan katalog yang belum terdaftar sebagai sumber data Athena, Anda dapat menyediakan jalur lengkap ke katalog dalam kueri `SELECT` Anda, seperti pada contoh berikut.

  ```
  SELECT * FROM "my_catalog/my_subcatalog".my_database.my_table
  ```
+ Anda juga dapat melakukan ini melalui Konsol Manajemen AWS.

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

  1. Di editor kueri, untuk **Sumber data**, pilih **AwsDataCatalog**.

  1. Untuk **Katalog**, pilih nama katalog yang ingin Anda gunakan.

  1. Untuk **Database**, pilih database yang berisi tabel yang ingin Anda kueri.

  1. Masukkan kueri seperti`SELECT * FROM my_table`, lalu pilih **Jalankan**.

# Daftarkan Katalog Data dari akun lain
<a name="data-sources-glue-cross-account"></a>

Anda dapat menggunakan fitur AWS Glue katalog lintas akun Athena untuk mendaftarkan AWS Glue katalog dari akun selain milik Anda. Setelah Anda mengonfigurasi izin IAM yang diperlukan untuk AWS Glue dan daftarkan katalog sebagai Athena`DataCatalog`Sumber daya, Anda dapat menggunakan Athena untuk menjalankan kueri lintas akun. Untuk informasi tentang izin IAM yang diperlukan, lihat [Konfigurasikan akses lintas akun ke katalog AWS Glue data](security-iam-cross-account-glue-catalog-access.md).

Prosedur berikut menunjukkan cara menggunakan Athena untuk mengonfigurasi akun AWS Glue Data Catalog Amazon Web Services selain milik Anda sebagai sumber data.

## Daftar dari konsol
<a name="data-sources-glue-cross-account-console"></a>

1. Ikuti langkah-langkah di[Konfigurasikan akses lintas akun ke katalog AWS Glue data](security-iam-cross-account-glue-catalog-access.md)Untuk memastikan bahwa Anda memiliki izin untuk meminta katalog data di akun lain.

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

1. Jika panel navigasi konsol tidak terlihat, pilih menu ekspansi di sebelah kiri.  
![\[Pilih menu ekspansi.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/nav-pane-expansion.png)

1. Pilih **Sumber data dan katalog**.

1. Di kanan atas, pilih **Buat sumber data**.

1. Pada halaman **Pilih sumber data**, untuk **Sumber data**, pilih **S3 - AWS Glue Data Catalog**, lalu pilih **Berikutnya**.

1. Pada halaman **Masukkan detail sumber data**, di **AWS Glue Data Catalog**bagian, untuk **Pilih AWS Glue Data Catalog**, pilih **AWS Glue Data Catalog di akun lain**.

1. Untuk **detail sumber data**, masukkan informasi berikut:
   + **Nama sumber data** — Masukkan nama yang ingin Anda gunakan dalam kueri SQL Anda untuk merujuk ke katalog data di akun lain.
   + **Deskripsi**— (Opsional) Masukkan deskripsi katalog data di akun lainnya.
   + **ID Katalog**— Masukkan 12 digit Amazon Web Services akun ID dari akun tempat katalog data berada. Amazon Web Services akun ID adalah ID katalog.

1. (Opsional) Untuk **Tag**, masukkan pasangan nilai kunci yang ingin Anda kaitkan dengan sumber data. Untuk informasi selengkapnya tentang tag, lihat [Tag sumber daya Athena](tags.md).

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, tinjau informasi yang Anda berikan, lalu pilih **Buat sumber data**. Halaman **detail sumber data** mencantumkan database dan tag untuk katalog data yang Anda daftarkan.

1. Pilih **Sumber data dan katalog**. Katalog data yang Anda daftarkan tercantum di kolom **Nama sumber data**.

1. Untuk melihat atau mengedit informasi tentang katalog data, pilih katalog, lalu pilih **Tindakan**, **Edit**.

1. Untuk menghapus katalog data baru, pilih katalog, lalu pilih **Tindakan**, **Hapus**.

## Daftar menggunakan operasi API
<a name="data-sources-glue-cross-account-api"></a>

1. Badan `CreateDataCatalog` permintaan berikut mendaftarkan AWS Glue katalog untuk akses lintas akun:

   ```
   # Example CreateDataCatalog request to register a cross-account Glue catalog:
   {
       "Description": "Cross-account Glue catalog",
       "Name": "ownerCatalog",
       "Parameters": {"catalog-id" : "<catalogid>"  # Owner's account ID
       },
       "Type": "GLUE"
   }
   ```

1. Kode contoh berikut menggunakan klien Java untuk membuat`DataCatalog`objek.

   ```
   # Sample code to create the DataCatalog through Java client
   CreateDataCatalogRequest request = new CreateDataCatalogRequest()
       .withName("ownerCatalog")
       .withType(DataCatalogType.GLUE)
       .withParameters(ImmutableMap.of("catalog-id", "<catalogid>"));
   
   athenaClient.createDataCatalog(request);
   ```

   Setelah langkah-langkah ini, peminjam akan melihat *`ownerCatalog`* kapan memanggil operasi [ListDataCatalogs](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListDataCatalogs.html)API.

## Daftar menggunakan AWS CLI
<a name="data-sources-glue-cross-account-cli"></a>

Gunakan perintah CLI contoh followig untuk mendaftarkan dari akun lain AWS Glue Data Catalog 

```
aws athena create-data-catalog \
  --name cross_account_catalog \
  --type GLUE \
  --description "Cross Account Catalog" \
  --parameters catalog-id=<catalogid>
```

Untuk informasi selengkapnya, lihat [Kueri lintas akun AWS Glue Data Catalog menggunakan Amazon](https://aws.amazon.com/blogs/big-data/query-cross-account-aws-glue-data-catalogs-using-amazon-athena/) Athena di AWS Blog *Big* Data.

# Kontrol akses ke katalog data dengan kebijakan IAM
<a name="datacatalogs-iam-policy"></a>

Untuk mengontrol akses ke katalog data, gunakan izin IAM level sumber daya atau kebijakan IAM berbasis identitas. 

Prosedur berikut khusus untuk Athena. 

Untuk informasi khusus IAM, lihat tautan yang tercantum di akhir bagian ini. Untuk informasi tentang kebijakan katalog data contoh JSON, lihat [Contoh kebijakan Katalog Data](datacatalogs-example-policies.md).

**Untuk menggunakan editor visual di konsol IAM untuk membuat kebijakan katalog data**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi yang ada di sebelah kiri, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pada tab **Editor visual**, pilih **Pilih layanan**. Pilih Athena untuk ditambahkan ke kebijakan.

1. Pilih **Pilih tindakan**, kemudian pilih tindakan untuk ditambahkan ke kebijakan. Editor visual menunjukkan tindakan yang tersedia di Athena. Untuk informasi selengkapnya, lihat [Kunci tindakan, sumber daya, dan kondisi untuk Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) di Referensi *Otorisasi Layanan*.

1. Pilih **tambahkan tindakan**untuk mengetik tindakan tertentu atau gunakan wildcard (\$1) untuk menentukan beberapa tindakan. 

   Secara default, kebijakan yang Anda buat mengizinkan tindakan yang Anda pilih. Jika Anda memilih satu atau lebih tindakan yang mendukung izin level sumber daya ke sumber daya `datacatalog` di Athena, editor akan mencantumkan sumber daya `datacatalog` tersebut. 

1. Pilih **Sumber Daya** untuk menentukan katalog data khusus bagi kebijakan Anda. Misalnya kebijakan katalog data JSON, lihat [Contoh kebijakan Katalog Data](datacatalogs-example-policies.md).

1. Tentukan sumber daya `datacatalog` sebagai berikut:

   ```
   arn:aws:athena:<region>:<user-account>:datacatalog/<datacatalog-name>
   ```

1. Pada halaman **Tinjau kebijakan**, ketik **Nama** dan **Deskripsi** (opsional) untuk kebijakan yang Anda buat. Tinjau ringkasan kebijakan untuk memastikan bahwa Anda memberikan izin yang dimaksud. 

1. Pilih **Buat kebijakan** untuk menyimpan kebijakan baru Anda.

1. Lampirkan kebijakan berbasis identitas ini ke pengguna, grup, atau peran dan tentukan sumber daya `datacatalog` yang dapat mereka akses.

Untuk informasi selengkapnya, lihat topik berikut di *Referensi Otorisasi Layanan* dan *Panduan Pengguna IAM*:
+ [Tindakan, sumber daya, dan kunci kondisi untuk Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)
+ [Membuat kebijakan dengan editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor)
+ [Menambahkan dan menghapus kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
+ [Mengontrol akses ke sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources)

Misalnya kebijakan katalog data JSON, lihat [Contoh kebijakan Katalog Data](datacatalogs-example-policies.md).

*Untuk informasi tentang AWS Glue izin dan izin AWS Glue crawler, lihat [Menyiapkan izin IAM untuk AWS Glue dan Prasyarat](https://docs.aws.amazon.com/glue/latest/dg/getting-started-access.html) [Crawler](https://docs.aws.amazon.com/glue/latest/dg/crawler-prereqs.html) di Panduan Pengembang.AWS Glue *

Untuk daftar lengkap tindakan Amazon Athena, lihat nama tindakan API di [Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). 

# Contoh kebijakan Katalog Data
<a name="datacatalogs-example-policies"></a>

Bagian ini mencakup contoh kebijakan yang dapat Anda gunakan untuk mengaktifkan berbagai tindakan pada katalog data.

Katalog data adalah sumber daya IAM yang dikelola oleh Athena. Oleh karena itu, jika kebijakan katalog data Anda menggunakan tindakan yang mengambil `datacatalog` sebagai input, Anda harus menentukan ARN katalog data sebagai berikut:

```
"Resource": [arn:aws:athena:<region>:<user-account>:datacatalog/<datacatalog-name>]
```

`<datacatalog-name>` adalah nama katalog data Anda. Misalnya, untuk katalog data bernama `test_datacatalog`, tentukan sebagai sumber daya sebagai berikut:

```
"Resource": ["arn:aws:athena:us-east-1:123456789012:datacatalog/test_datacatalog"]
```

Untuk daftar lengkap tindakan Amazon Athena, lihat nama tindakan API di [Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). Untuk informasi selengkapnya tentang kebijakan IAM, lihat [Membuat kebijakan dengan editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) di *Panduan Pengguna IAM*. Untuk informasi selengkapnya tentang cara membuat kebijakan IAM untuk grup kerja, lihat [Kontrol akses ke katalog data dengan kebijakan IAM](datacatalogs-iam-policy.md).
+ [Example Policy for Full Access to All Data Catalogs](#datacatalog-policy-full-access-to-all-data-catalogs)
+ [Example Policy for Full Access to a Specified Data Catalog](#datacatalog-policy-full-access-to-a-specified-catalog)
+ [Example Policy for Querying a Specified Data Catalog](#datacatalog-policy-querying-a-specified-data-catalog)
+ [Example Policy for Management Operations on a Specified Data Catalog](#datacatalog-policy-management-operations-on-a-specified-catalog)
+ [Example Policy for Listing Data Catalogs](#datacatalog-policy-listing-data-catalogs)
+ [Example Policy for Metadata Operations on Data Catalogs](#datacatalog-policy-metadata-operations)

**Example Contoh kebijakan untuk akses penuh ke semua katalog data**  
Kebijakan berikut memungkinkan akses penuh ke semua sumber daya katalog data yang mungkin ada di akun. Kami menyarankan Anda menggunakan kebijakan ini untuk pengguna di akun Anda yang harus mengatur dan mengelola katalog data untuk semua pengguna lain.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "athena:*"
         ],
         "Resource":[
            "*"
         ]
      }
   ]
}
```

**Example Contoh kebijakan untuk akses penuh ke Katalog Data tertentu**  
Kebijakan berikut memungkinkan akses penuh ke sumber daya katalog data spesifik tunggal, bernama `datacatalogA`. Anda dapat menggunakan kebijakan ini untuk pengguna dengan kontrol penuh atas katalog data tertentu.    
****  

```
{ "Version":"2012-10-17",		 	 	  "Statement":[ { "Effect":"Allow", "Action":[
   "athena:ListDataCatalogs", "athena:ListWorkGroups", "athena:GetDatabase", "athena:ListDatabases",
   "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource":"*" }, { "Effect":"Allow",
   "Action":[ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery",
   "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:StopQueryExecution",
   "athena:GetQueryResultsStream", "athena:ListNamedQueries", "athena:CreateNamedQuery",
   "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution",
   "athena:DeleteWorkGroup", "athena:UpdateWorkGroup", "athena:GetWorkGroup",
   "athena:CreateWorkGroup" ], "Resource":[
      "arn:aws:athena:us-east-1:123456789012:workgroup/*"
   ] }, { "Effect":"Allow", "Action":[ "athena:CreateDataCatalog", "athena:DeleteDataCatalog",
   "athena:GetDataCatalog", "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases",
   "athena:ListTableMetadata", "athena:UpdateDataCatalog" ],
      "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"
   } ] }
```

**Example Contoh kebijakan untuk menanyakan Katalog Data tertentu**  
Dalam kebijakan berikut, pengguna diizinkan untuk menjalankan kueri pada `datacatalogA` yang ditentukan. Pengguna tidak diizinkan untuk melakukan tugas manajemen untuk katalog data itu sendiri, seperti memperbarui atau menghapusnya.     
****  

```
{ "Version":"2012-10-17",		 	 	  "Statement":[ { "Effect":"Allow", "Action":[
   "athena:StartQueryExecution" ], "Resource":[
      "arn:aws:athena:us-east-1:123456789012:workgroup/*"
   ] }, { "Effect":"Allow", "Action":[ "athena:GetDataCatalog" ], "Resource":[
      "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"
   ] } ] }
```

**Example Contoh kebijakan untuk operasi manajemen pada Katalog Data tertentu**  
Dalam kebijakan berikut, pengguna diperbolehkan untuk membuat, menghapus, mendapatkan detail, dan memperbarui katalog data `datacatalogA`.     
****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:DeleteDataCatalog",
    "athena:UpdateDataCatalog" ], "Resource": [
        "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"
    ] } ] }
```

**Example Contoh kebijakan untuk mencantumkan katalog data**  
Kebijakan berikut memungkinkan semua pengguna untuk mencantumkan semua katalog data:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example Contoh kebijakan untuk operasi metadata pada katalog data**  
Kebijakan berikut memungkinkan operasi metadata pada katalog data:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:GetDatabase",
                "athena:GetTableMetadata",
                "athena:ListDatabases",
                "athena:ListTableMetadata"
            ],
            "Resource": "*"
        }
    ]
}
```

# Gunakan formulir di konsol Athena untuk menambahkan tabel AWS Glue
<a name="data-sources-glue-manual-table"></a>

Prosedur berikut menunjukkan cara menggunakan konsol Athena untuk menambahkan tabel menggunakan formulir data **bucket Create Table From S3**.

**Untuk menambahkan tabel dan memasukkan informasi skema menggunakan formulir**

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. Pada formulir **data bucket Create Table From S3**, untuk **nama Table**, masukkan nama untuk tabel. Untuk informasi tentang karakter yang dapat diterima untuk nama database, nama tabel, dan nama kolom di Athena, lihat. [Nama database, tabel, dan kolom](tables-databases-columns-names.md)

1. Untuk **konfigurasi Database**, pilih database yang ada, atau buat yang baru.

1. Untuk**Lokasi Set Input Data**, tentukan jalur di Amazon S3 ke folder yang berisi kumpulan data yang ingin Anda proses. Jangan sertakan nama file di jalur. Athena memindai semua file di folder yang Anda tentukan. Jika data Anda sudah dipartisi (misalnya, 

    s3://amzn-s3-demo -bucket/logs/year=2004/month=12/day=11/), enter the base path only (for example, s3://amzn-s3-demo-bucket/logs/).

1. Untuk **Format Data**, pilih di antara opsi berikut:
   + **Untuk **tipe Table**, pilih **Apache Hive**, **Apache Iceberg**, atau Delta Lake.** Athena menggunakan jenis tabel Apache Hive sebagai default. Untuk informasi tentang menanyakan tabel Apache Iceberg di Athena, lihat. [Tabel Query Apache Iceberg](querying-iceberg.md) Untuk informasi tentang menggunakan tabel Danau Delta di Athena, lihat. [Tabel Query Linux Foundation Delta Lake](delta-lake-tables.md)
   + Untuk **format File**, pilih format file atau log tempat data Anda berada.
     + Untuk**Berkas Teks dengan Pembatas Kustom**pilihan, tentukan**Bidang terminator**(yaitu pembatas kolom). Secara opsional, Anda dapat menentukan **terminator Collection** yang menandai akhir dari tipe array atau **terminator Collection** yang menandai akhir dari tipe data peta.
   + **SerDe library — Pustaka** SerDe (serializer-deserializer) mem-parsing format data tertentu sehingga Athena dapat membuat tabel untuk itu. Untuk sebagian besar format, SerDe pustaka default dipilih untuk Anda. Untuk format berikut, pilih perpustakaan sesuai dengan kebutuhan Anda:
     + **Apache Web Logs** - Pilih salah satu **RegexSerDe**atau **GrokSerDe**perpustakaan. Untuk RegexSerDe, berikan ekspresi reguler di kotak **definisi Regex**. Untuk GrokSerDe, berikan serangkaian ekspresi reguler bernama untuk `input.format` SerDe properti. Ekspresi reguler bernama lebih mudah dibaca dan dipelihara daripada ekspresi reguler. Untuk informasi selengkapnya, lihat [Kueri log Apache disimpan di Amazon S3](querying-apache-logs.md).
     + **CSV** — Pilih **LazySimpleSerDe**apakah data Anda yang dipisahkan koma tidak berisi nilai yang diapit tanda kutip ganda atau jika menggunakan format. `java.sql.Timestamp` Pilih **Buka CSVSer De** jika data Anda menyertakan tanda kutip atau menggunakan format numerik UNIX untuk `TIMESTAMP` (misalnya,`1564610311`). Untuk informasi selengkapnya, lihat [Lazy Simple SerDe untuk CSV, TSV, dan file yang dibatasi khusus](lazy-simple-serde.md) dan [Buka CSV SerDe untuk memproses CSV](csv-serde.md).
     + **JSON** — Pilih perpustakaan **OpenX** **atau** SerDe Hive JSON. Kedua format mengharapkan setiap dokumen JSON berada pada satu baris teks dan bidang itu tidak dipisahkan oleh karakter baris baru. OpenX SerDe menawarkan beberapa properti tambahan. Untuk informasi selengkapnya tentang properti ini, lihat [OpenX JSON SerDe](openx-json-serde.md). Untuk informasi tentang Hive SerDe, lihat[Sarang JSON SerDe](hive-json-serde.md).

     Untuk informasi lebih lanjut tentang penggunaan SerDe perpustakaan di Athena, lihat. [Pilih SerDe untuk data Anda](supported-serdes.md)

1. Untuk **SerDe properti**, tambahkan, edit, atau hapus properti dan nilai sesuai dengan SerDe pustaka yang Anda gunakan dan kebutuhan Anda.
   + Untuk menambahkan SerDe properti, pilih **Tambah SerDe properti**.
   + Di bidang **Nama**, masukkan nama properti. 
   + Di bidang **Nilai**, masukkan nilai untuk properti. 
   + Untuk menghapus SerDe properti, pilih **Hapus**.

1. Untuk **properti Tabel**, pilih atau edit properti tabel sesuai dengan kebutuhan Anda.
   + Untuk **kompresi Tulis**, pilih opsi kompresi. Ketersediaan opsi kompresi tulis dan opsi kompresi yang tersedia tergantung pada format data. Untuk informasi selengkapnya, lihat [Gunakan kompresi di Athena](compression-formats.md).
   + Untuk **Enkripsi**, pilih **Kumpulan data terenkripsi jika data** yang mendasarinya dienkripsi di Amazon S3. Opsi ini menetapkan properti `has_encrypted_data` tabel ke true dalam `CREATE TABLE` pernyataan.

1. Untuk **detail Kolom**, masukkan nama dan tipe data kolom yang ingin Anda tambahkan ke tabel.
   + Untuk menambahkan lebih banyak kolom satu per satu, pilih**Tambahkan kolom**.
   + Untuk menambahkan lebih banyak kolom dengan cepat, pilih**Tambahkan kolom**. Di kotak teks, masukkan daftar kolom yang dipisahkan koma dalam format *column\$1name**data\$1type*, *column\$1name* *data\$1type* [,...], lalu pilih **Tambah**.

1. (Opsional) Untuk **detail Partisi**, tambahkan satu atau beberapa nama kolom dan tipe data. Partisi menyimpan data terkait bersama-sama berdasarkan nilai kolom dan dapat membantu mengurangi jumlah data yang dipindai per kueri. Untuk informasi tentang partisi, lihat [Partisi data Anda](partitions.md).

1. (Opsional) Untuk **Bucketing**, Anda dapat menentukan satu atau beberapa kolom yang memiliki baris yang ingin Anda kelompokkan bersama, lalu menempatkan baris tersebut ke dalam beberapa ember. Hal ini memungkinkan Anda untuk menanyakan hanya bucket yang ingin Anda baca saat nilai kolom berember ditentukan.
   + Untuk **Bucket**, pilih satu atau beberapa kolom yang memiliki sejumlah besar nilai unik (misalnya, kunci utama) dan yang sering digunakan untuk memfilter data dalam kueri Anda.
   + Untuk **Jumlah ember**, masukkan nomor yang memungkinkan file berukuran optimal. Untuk informasi selengkapnya, lihat [10 Tips Penyetelan Kinerja Terbaik untuk Amazon](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) Athena di Blog Big AWS Data.
   + Untuk menentukan kolom bucketed Anda, `CREATE TABLE` pernyataan akan menggunakan sintaks berikut:

     ```
     CLUSTERED BY (bucketed_columns) INTO number_of_buckets BUCKETS
     ```
**catatan**  
Opsi **Bucketing** tidak tersedia untuk jenis tabel **Iceberg**.

1. Kotak **kueri tabel pratinjau** menunjukkan `CREATE TABLE` pernyataan yang dihasilkan oleh informasi yang Anda masukkan ke dalam formulir. Pernyataan pratinjau tidak dapat diedit secara langsung. Untuk mengubah pernyataan, ubah bidang formulir di atas pratinjau, atau [buat pernyataan langsung](creating-tables-how-to.md#to-create-a-table-using-hive-ddl) di editor kueri alih-alih menggunakan formulir. 

1. Pilih **Buat tabel** untuk menjalankan pernyataan yang dihasilkan di editor kueri dan buat tabel.

# Gunakan crawler untuk menambahkan tabel
<a name="schema-crawlers"></a>

AWS Glue crawler membantu menemukan skema untuk kumpulan data dan mendaftarkannya sebagai tabel di Katalog Data. AWS Glue Crawler menelusuri data Anda dan menentukan skema. Selain itu, crawler dapat mendeteksi dan mendaftarkan partisi. Untuk informasi selengkapnya, lihat [Mendefinisikan crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) di Panduan *AWS Glue Pengembang*. Tabel dari data yang berhasil dirayapi dapat ditanyakan dari Athena.

**catatan**  
Athena tidak mengenali [pola pengecualian](https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude) yang Anda tentukan untuk crawler. AWS Glue Misalnya, jika Anda memiliki bucket Amazon S3 yang berisi keduanya`.csv`dan`.json`file dan Anda mengecualikan`.json`file dari crawler, Athena mengkueri kedua grup file. Untuk menghindari hal ini, menempatkan file yang ingin Anda mengecualikan di lokasi yang berbeda. 

## Buat AWS Glue crawler
<a name="data-sources-glue-crawler-setup"></a>

Anda dapat membuat crawler dengan memulai di konsol Athena dan kemudian menggunakan konsol AWS Glue secara terintegrasi. Saat membuat crawler, Anda menentukan lokasi data di Amazon S3 untuk dirayapi.

**Untuk membuat crawler di AWS Glue mulai dari konsol Athena**

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. Pada**AWS Glue**Konsol**Tambahkan crawler**, ikuti langkah-langkah untuk membuat crawler. Untuk informasi selengkapnya, lihat [Menggunakan AWS Glue Crawler](#schema-crawlers) dalam panduan ini dan [Mengisi AWS Glue Data Catalog di](https://docs.aws.amazon.com/glue/latest/dg/populate-catalog-methods.html) Panduan *AWS Glue Pengembang*.

**catatan**  
Athena tidak mengenali [pola pengecualian](https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude) yang Anda tentukan untuk crawler. AWS Glue Misalnya, jika Anda memiliki bucket Amazon S3 yang berisi keduanya`.csv`dan`.json`file dan Anda mengecualikan`.json`file dari crawler, Athena mengkueri kedua grup file. Untuk menghindari hal ini, menempatkan file yang ingin Anda mengecualikan di lokasi yang berbeda.

Setelah crawl, AWS Glue crawler secara otomatis menetapkan metadata tabel tertentu untuk membantu membuatnya kompatibel dengan teknologi eksternal lainnya seperti Apache Hive, Presto, dan Spark. Kadang-kadang, crawler mungkin salah menetapkan properti metadata. Perbaiki properti secara manual AWS Glue sebelum menanyakan tabel menggunakan Athena. Untuk informasi selengkapnya, lihat [Melihat dan mengedit detail tabel](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details) di *Panduan AWS Glue Pengembang*.

AWS Glue mungkin salah menetapkan metadata ketika file CSV memiliki tanda kutip di sekitar setiap bidang data, membuat properti salah. `serializationLib` Untuk informasi selengkapnya, lihat [Menangani data CSV terlampir dalam tanda kutip](schema-csv.md#schema-csv-quotes).

# Menggunakan beberapa sumber data dengan crawler
<a name="schema-crawlers-data-sources"></a>

Ketika AWS Glue crawler memindai Amazon S3 dan mendeteksi beberapa direktori, ia menggunakan heuristik untuk menentukan di mana root untuk tabel berada dalam struktur direktori, dan direktori mana yang merupakan partisi untuk tabel. Dalam beberapa kasus, tempat skema yang terdeteksi dalam dua atau lebih direktori serupa, crawler dapat memperlakukannya sebagai partisi dan bukan tabel terpisah. Salah satu cara untuk membantu crawler menemukan tabel individu adalah dengan menambahkan direktori root setiap tabel sebagai penyimpanan data untuk crawler.

Partisi berikut di Amazon S3 adalah contoh:

```
s3://amzn-s3-demo-bucket/folder1/table1/partition1/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition2/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition3/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition4/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition5/file.txt
```

Jika skema untuk `table1` dan serupa, dan `table2` satu sumber data diatur ke `s3://amzn-s3-demo-bucket/folder1/` dalam AWS Glue, crawler dapat membuat tabel tunggal dengan dua kolom partisi: satu kolom partisi yang berisi `table1` dan`table2`, dan kolom partisi kedua yang berisi `partition1` melalui. `partition5`

Agar AWS Glue crawler membuat dua tabel terpisah, atur crawler untuk memiliki dua sumber data, `s3://amzn-s3-demo-bucket/folder1/table1/` dan`s3://amzn-s3-demo-bucket/folder1/table2`, seperti yang ditunjukkan dalam prosedur berikut.

**Untuk menambahkan penyimpanan data S3 ke crawler yang ada di AWS Glue**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Di panel navigasi, pilih **Perayap**.

1. Pilih tautan ke crawler Anda, lalu pilih **Edit**. 

1. Untuk **Langkah 2: Pilih sumber data dan pengklasifikasi**, pilih **Edit**. 

1. Untuk **sumber data dan katalog**, pilih **Tambahkan sumber data**.

1. Dalam kotak dialog **Tambahkan sumber data**, untuk **jalur S3**, pilih **Jelajahi**. 

1. Pilih bucket yang ingin Anda gunakan, lalu pilih **Pilih**.

   Sumber data yang Anda tambahkan muncul di daftar **Sumber data**.

1. Pilih **Berikutnya**.

1. **Pada halaman **Konfigurasi pengaturan keamanan**, buat atau pilih peran IAM untuk crawler, lalu pilih Berikutnya.**

1. Pastikan bahwa jalur S3 berakhir dengan garis miring, lalu pilih **Tambahkan sumber data S3**.

1. Pada halaman **Set output dan penjadwalan**, untuk **konfigurasi Output**, pilih database target.

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan perbarui**, tinjau pilihan yang Anda buat. Untuk mengedit langkah, pilih **Edit**.

1.  Pilih **Perbarui**.

# Jadwalkan crawler agar tetap sinkron AWS Glue Data Catalog dan Amazon S3
<a name="schema-crawlers-schedule"></a>

AWS Glue crawler dapat diatur untuk berjalan sesuai jadwal atau sesuai permintaan. *Untuk informasi selengkapnya, lihat [Jadwal berbasis waktu untuk pekerjaan dan crawler di Panduan Pengembang](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html).AWS Glue *

Jika Anda memiliki data yang tiba untuk tabel yang dipartisi pada waktu yang tetap, Anda dapat mengatur AWS Glue crawler agar berjalan sesuai jadwal untuk mendeteksi dan memperbarui partisi tabel. Ini dapat menghilangkan kebutuhan untuk menjalankan berpotensi panjang dan mahal`MSCK REPAIR`perintah atau secara manual menjalankan`ALTER TABLE ADD PARTITION`Perintah. Untuk informasi selengkapnya, lihat [Partisi tabel](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html#tables-partition) di *Panduan AWS Glue Pengembang*.

# Optimalkan kueri dengan pengindeksan dan AWS Glue pemfilteran partisi
<a name="glue-best-practices-partition-index"></a>

Ketika Athena menanyakan tabel yang dipartisi, Athena mengambil dan memfilter partisi tabel yang tersedia ke subset yang relevan dengan kueri Anda. Saat data dan partisi baru ditambahkan, lebih banyak waktu diperlukan untuk memproses partisi, dan runtime kueri dapat meningkat. Jika Anda memiliki tabel dengan sejumlah besar partisi yang tumbuh seiring waktu, pertimbangkan untuk menggunakan pengindeksan dan penyaringan AWS Glue partisi. Pengindeksan partisi memungkinkan Athena untuk mengoptimalkan pemrosesan partisi dan meningkatkan kinerja kueri pada tabel yang sangat dipartisi. Menyiapkan pemfilteran partisi dalam properti tabel adalah proses dua langkah:

1. Membuat indeks partisi di AWS Glue.

1. Mengaktifkan pemfilteran partisi untuk tabel.

## Membuat indeks partisi
<a name="glue-best-practices-partition-index-creating"></a>

Untuk langkah-langkah membuat indeks partisi AWS Glue, lihat [Bekerja dengan indeks partisi](https://docs.aws.amazon.com/glue/latest/dg/partition-indexes.html) di Panduan AWS Glue Pengembang. Untuk batasan indeks partisi di AWS Glue, lihat bagian [Tentang indeks partisi](https://docs.aws.amazon.com/glue/latest/dg/partition-indexes.html#partition-index-1) di halaman itu.

## Mengaktifkan pemfilteran partisi
<a name="glue-best-practices-partition-filtering-enabling"></a>

Untuk mengaktifkan pemfilteran partisi untuk tabel, Anda harus mengatur properti tabel baru di AWS Glue. Untuk langkah-langkah tentang cara mengatur properti tabel AWS Glue, lihat halaman [Menyiapkan proyeksi partisi](https://docs.aws.amazon.com/athena/latest/ug/partition-projection-setting-up.html). Saat Anda mengedit detail tabel AWS Glue, tambahkan pasangan kunci-nilai berikut ke bagian **Properti tabel**:
+ Untuk **Key**, tambahkan `partition_filtering.enabled`
+ Untuk **Nilai**, tambahkan `true`

Anda dapat menonaktifkan pemfilteran partisi pada tabel ini kapan saja dengan menyetel `partition_filtering.enabled` nilainya. `false`

Setelah Anda menyelesaikan langkah-langkah di atas, Anda dapat kembali ke konsol Athena untuk menanyakan data.

*Untuk informasi selengkapnya tentang penggunaan pengindeksan dan pemfilteran partisi, lihat [Meningkatkan kinerja kueri Amazon Athena AWS Glue Data Catalog menggunakan indeks partisi](https://aws.amazon.com/blogs/big-data/improve-amazon-athena-query-performance-using-aws-glue-data-catalog-partition-indexes/) di AWS Blog Big Data.*

# Gunakan AWS CLI untuk membuat ulang AWS Glue database dan tabelnya
<a name="glue-recreate-db-and-tables-cli"></a>

Mengganti nama AWS Glue database secara langsung tidak dimungkinkan, tetapi Anda dapat menyalin definisinya, memodifikasi definisi, dan menggunakan definisi untuk membuat ulang database dengan nama yang berbeda. Demikian pula, Anda dapat menyalin definisi tabel di database lama, memodifikasi definisi, dan menggunakan definisi yang dimodifikasi untuk membuat ulang tabel di database baru.

**catatan**  
 Metode yang disajikan tidak menyalin partisi tabel. 

Prosedur berikut untuk Windows mengasumsikan bahwa Anda AWS CLI dikonfigurasi untuk output JSON. Untuk mengubah format output default di AWS CLI, jalankan`aws configure`.

**Untuk menyalin AWS Glue Database menggunakan AWS CLI**

1. Pada prompt perintah, jalankan AWS CLI perintah berikut untuk mengambil definisi AWS Glue database yang ingin Anda salin.

   ```
   aws glue get-database --name database_name
   ```

   Untuk informasi selengkapnya tentang `get-database` perintah, lihat [get-database](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-database.html).

1. Simpan output JSON ke file dengan nama database baru (misalnya,`new_database_name.json`) ke desktop Anda.

1. Buka file `new_database_name.json` di editor teks.

1. Dalam file JSON, lakukan langkah-langkah berikut:

   1. Hapus `{ "Database":` entri luar dan penjepit penutup yang sesuai `}` di akhir file.

   1. Ubah `Name` entri ke nama database baru.

   1. Hapus `CatalogId` bidang.

1. Simpan file tersebut.

1. Pada prompt perintah, jalankan AWS CLI perintah berikut untuk menggunakan file definisi database yang dimodifikasi untuk membuat database dengan nama baru.

   ```
   aws glue create-database --database-input "file://~/Desktop\new_database_name.json"
   ```

   Untuk informasi selengkapnya tentang `create-database` perintah, lihat [create-database](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/create-database.html). Untuk informasi tentang memuat AWS CLI parameter dari file, lihat [Memuat AWS CLI parameter dari file](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html) di *Panduan AWS Command Line Interface Pengguna*.

1. Untuk memverifikasi bahwa database baru telah dibuat AWS Glue, jalankan perintah berikut:

   ```
   aws glue get-database --name new_database_name
   ```

Sekarang Anda siap untuk mendapatkan definisi untuk tabel yang ingin Anda salin ke database baru, memodifikasi definisi, dan menggunakan definisi yang dimodifikasi untuk membuat ulang tabel dalam database baru. Prosedur ini tidak mengubah nama tabel.

**Untuk menyalin AWS Glue tabel menggunakan AWS CLI**

1. Pada prompt perintah, jalankan AWS CLI perintah berikut.

   ```
   aws glue get-table --database-name database_name --name table_name
   ```

   Untuk informasi selengkapnya tentang `get-table` perintah, lihat [get-table](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-table.html).

1. Simpan output JSON ke file dengan nama tabel (misalnya, *table\$1name* .json) ke desktop Windows Anda.

1. Buka file di editor teks.

1. Dalam file JSON, hapus `{"Table": ` entri luar dan penjepit penutup yang sesuai `}` di akhir file.

1. Dalam file JSON, hapus entri berikut dan nilainya:
   + `DatabaseName`— Entri ini tidak diperlukan karena perintah `create-table` CLI menggunakan parameter. `--database-name`
   + `CreateTime`
   + `UpdateTime`
   + `CreatedBy`
   + `IsRegisteredWithLakeFormation`
   + `CatalogId`
   + `VersionId`

1. Simpan file definisi tabel.

1. Pada prompt perintah, jalankan AWS CLI perintah berikut untuk membuat ulang tabel di database baru:

   ```
   aws glue create-table --database-name new_database_name --table-input "file://~/Desktop\table_name.json"     
   ```

   Untuk informasi selengkapnya tentang `create-table` perintah, lihat [create-table](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/create-table.html).

   Tabel sekarang muncul di database baru di AWS Glue dan dapat ditanyakan dari Athena.

1. Ulangi langkah-langkah untuk menyalin setiap tabel tambahan ke database baru di AWS Glue.

# Buat tabel untuk pekerjaan ETL
<a name="schema-classifier"></a>

Anda dapat menggunakan Athena untuk membuat tabel yang AWS Glue dapat digunakan untuk pekerjaan ETL. AWS Glue pekerjaan melakukan operasi ETL. AWS Glue Pekerjaan menjalankan skrip yang mengekstrak data dari sumber, mengubah data, dan memuatnya menjadi target. Untuk informasi selengkapnya, lihat [Menulis Pekerjaan di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) di *Panduan AWS Glue Pengembang*.

## Membuat tabel Athena untuk AWS Glue pekerjaan ETL
<a name="schema-etl-tables"></a>

Tabel yang Anda buat di Athena harus memiliki properti tabel ditambahkan ke mereka yang disebut `classification`, yang mengidentifikasi format data. Ini memungkinkan AWS Glue untuk menggunakan tabel untuk tugas ETL. Nilai klasifikasi dapat berupa`avro`,`csv`,`json`,`orc`,`parquet`, atau`xml`. Contoh pernyataan `CREATE TABLE` di Athena berikut:

```
CREATE EXTERNAL TABLE sampleTable (
  column1 INT,
  column2 INT
  ) STORED AS PARQUET
  TBLPROPERTIES (
  'classification'='parquet')
```

Jika properti `classification` tabel tidak ditambahkan saat tabel dibuat, Anda dapat menambahkannya menggunakan AWS Glue konsol.

**Untuk menambahkan properti tabel klasifikasi menggunakan AWS Glue konsol**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Di panel navigasi konsol, pilih **Tabel**.

1. Pilih tautan untuk tabel yang ingin Anda edit, lalu pilih **Tindakan**, **Edit tabel**.

1. Gulir ke bawah ke bagian **Properti tabel**.

1. Pilih **Tambahkan**.

1. Untuk **Kunci**, masukkan **classification**.

1. Untuk **Nilai**, masukkan tipe data (misalnya,**json**).

1. Pilih **Simpan**.

   Di bagian **Rincian tabel**, tipe data yang Anda masukkan muncul di bidang **Klasifikasi** untuk tabel.

Untuk informasi selengkapnya, lihat [Bekerja dengan tabel](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html) di *Panduan AWS Glue Pengembang*.

## Gunakan pekerjaan ETL untuk mengoptimalkan kinerja kueri
<a name="schema-etl-performance"></a>

AWS Glue jobs dapat membantu Anda mengubah data ke format yang mengoptimalkan kinerja kueri di Athena. Format data memiliki dampak besar pada performa kueri dan biaya permintaan di Athena.

AWS Glue mendukung penulisan ke format data Parket dan ORC. Anda dapat menggunakan fitur ini untuk mengubah data Anda untuk digunakan di Athena. Untuk informasi selengkapnya tentang penggunaan Parket dan ORC, dan cara lain untuk meningkatkan kinerja di Athena, lihat [10 kiat penyetelan kinerja terbaik untuk](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) Amazon Athena.

**catatan**  
Untuk mengurangi kemungkinan Athena tidak dapat membaca `SMALLINT` dan tipe `TINYINT` data yang dihasilkan oleh pekerjaan AWS Glue ETL, konversikan `SMALLINT` dan `TINYINT` ke `INT` saat Anda membuat pekerjaan ETL yang mengubah data menjadi ORC.

## Otomatiskan AWS Glue pekerjaan untuk ETL
<a name="schema-etl-automate"></a>

Anda dapat mengonfigurasi pekerjaan AWS Glue ETL agar berjalan secara otomatis berdasarkan pemicu. Fitur ini ideal ketika data dari luar AWS didorong ke bucket Amazon S3 dalam format yang kurang optimal untuk kueri di Athena. Untuk informasi selengkapnya, lihat [Memicu AWS Glue lowongan](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html) di *Panduan AWS Glue Pengembang*.

# Bekerja dengan data CSV di AWS Glue
<a name="schema-csv"></a>

Halaman ini menjelaskan AWS Glue cara menggunakan skema dari file CSV yang memiliki tanda kutip di sekitar nilai data untuk setiap kolom atau dari file CSV yang menyertakan nilai header.

## Menangani data CSV terlampir dalam tanda kutip
<a name="schema-csv-quotes"></a>

Misalkan file CSV memiliki bidang data yang diapit tanda kutip ganda, seperti pada contoh berikut.

```
"John","Doe","123-555-1231","John said \"hello\""
"Jane","Doe","123-555-9876","Jane said \"hello\""
```

Untuk menjalankan kueri di Athena pada tabel yang dibuat dari file CSV yang memiliki nilai kutipan, Anda harus memodifikasi properti tabel AWS Glue untuk menggunakan Open De. CSVSer Untuk informasi selengkapnya tentang SerDe OpenCSV, lihat. [Buka CSV SerDe untuk memproses CSV](csv-serde.md)

**Untuk mengedit properti tabel di AWS Glue konsol**

1. Di panel navigasi AWS Glue konsol, pilih **Tabel**.

1. Pilih tautan untuk tabel yang ingin Anda edit, lalu pilih **Tindakan**, **Edit tabel**.

1. Pada halaman **Edit tabel**, buat perubahan berikut:
   + Untuk **Serialisasi lib, masukkan**. `org.apache.hadoop.hive.serde2.OpenCSVSerde`
   + Untuk**Parameter serde**, masukkan nilai berikut untuk kunci`escapeChar`,`quoteChar`, dan`separatorChar`: 
     + Untuk`escapeChar`, masukkan garis miring terbalik (**\$1**).
     + Untuk`quoteChar`, masukkan kutipan ganda (**"**).
     + Untuk`separatorChar`, masukkan koma (**,**).

1. Pilih **Simpan**.

Untuk informasi selengkapnya, lihat [Melihat dan mengedit detail tabel](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details) di *Panduan AWS Glue Pengembang*.

Anda juga dapat memperbarui properti AWS Glue tabel secara terprogram. Gunakan operasi AWS Glue [UpdateTable](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateTable.html)API atau AWS CLI perintah [update-table](https://docs.aws.amazon.com/cli/latest/reference/glue/update-table.html) untuk memodifikasi `SerDeInfo` blok dalam definisi tabel, seperti pada contoh JSON berikut.

```
"SerDeInfo": {
   "name": "",
   "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde",
   "parameters": {
      "separatorChar": ","
      "quoteChar": "\""
      "escapeChar": "\\"
      }
},
```

## Menangani file CSV dengan header
<a name="schema-csv-headers"></a>

Jika Anda menentukan tabel di Athena dengan`CREATE TABLE`pernyataan, Anda dapat menggunakan`skip.header.line.count`untuk mengabaikan header dalam data CSV Anda, seperti dalam contoh berikut.

```
...
STORED AS TEXTFILE
LOCATION 's3://amzn-s3-demo-bucket/csvdata_folder/';
TBLPROPERTIES ("skip.header.line.count"="1")
```

Atau, Anda dapat menghapus header CSV terlebih dahulu sehingga informasi header tidak termasuk dalam hasil permintaan Athena. Salah satu cara untuk mencapainya adalah dengan menggunakan tugas AWS Glue , yang melakukan pekerjaan extract, transform, and load (ETL). Anda dapat menulis skrip dalam AWS Glue menggunakan bahasa yang merupakan perpanjangan dari dialek PySpark Python. Untuk informasi selengkapnya, lihat [Menulis Pekerjaan di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) di *Panduan AWS Glue Pengembang*.

Contoh berikut menunjukkan fungsi dalam AWS Glue skrip yang menulis frame dinamis menggunakan`from_options`, dan menetapkan opsi `writeHeader` format ke false, yang menghapus informasi header:

```
glueContext.write_dynamic_frame.from_options(frame = applymapping1, connection_type = "s3", connection_options = {"path": "s3://amzn-s3-demo-bucket/MYTABLEDATA/"}, format = "csv", format_options = {"writeHeader": False}, transformation_ctx = "datasink2")
```

# Bekerja dengan data geospasial di AWS Glue
<a name="schema-geospatial"></a>

AWS Glue tidak secara native mendukung Teks Terkenal (WKT), Biner Terkenal (WKB), atau tipe data PostGIS lainnya. AWS Glue Pengklasifikasi mem-parsing data geospasial dan mengklasifikasikannya menggunakan tipe data yang didukung untuk format, seperti untuk CSV. `varchar` Seperti AWS Glue tabel lainnya, Anda mungkin perlu memperbarui properti tabel yang dibuat dari data geospasial untuk memungkinkan Athena mengurai tipe data ini apa adanya. Untuk informasi selengkapnya, lihat [Gunakan crawler untuk menambahkan tabel](schema-crawlers.md) dan [Bekerja dengan data CSV di AWS Glue](schema-csv.md). Athena mungkin tidak dapat mengurai beberapa tipe data geospasial dalam tabel apa adanya. AWS Glue Untuk informasi selengkapnya tentang bekerja dengan data geospasial di Athena, lihat[Kueri data geospasial](querying-geospatial-data.md).