

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

# Konektor Penyimpanan Awan Google Amazon Athena
<a name="connectors-gcs"></a>

Konektor Amazon Athena Google Cloud Storage memungkinkan Amazon Athena menjalankan kueri pada file Parket dan CSV yang disimpan dalam bucket Google Cloud Storage (GCS). Setelah mengelompokkan satu atau beberapa file Parket atau CSV dalam folder yang tidak dipartisi atau dipartisi dalam bucket GCS, Anda dapat mengaturnya dalam tabel database. [AWS Glue](https://aws.amazon.com/glue/)

Konektor ini dapat didaftarkan dengan Glue Data Catalog sebagai katalog federasi. Ini mendukung kontrol akses data yang didefinisikan dalam Lake Formation di katalog, database, tabel, kolom, baris, dan tingkat tag. Konektor ini menggunakan Glue Connections untuk memusatkan properti konfigurasi di Glue.

Jika Anda mengaktifkan Lake Formation di akun Anda, peran IAM untuk konektor Lambda federasi Athena yang Anda gunakan harus memiliki akses baca di AWS Serverless Application Repository Lake Formation ke. AWS Glue Data Catalog

Untuk artikel yang menunjukkan cara menggunakan Athena untuk menjalankan kueri pada file Parket atau CSV di bucket GCS, lihat posting Blog AWS Big Data Menggunakan [Amazon Athena untuk](https://aws.amazon.com/blogs/big-data/use-amazon-athena-to-query-data-stored-in-google-cloud-platform/) menanyakan data yang disimpan di Google Cloud Platform.

## Prasyarat
<a name="connectors-gcs-prerequisites"></a>
+ Siapkan AWS Glue database dan tabel yang sesuai dengan bucket dan folder Anda di Google Cloud Storage. Untuk langkah-langkahnya, lihat [Menyiapkan database dan tabel di AWS Glue](#connectors-gcs-setting-up-databases-and-tables-in-glue) nanti di dokumen ini.
+ Menyebarkan konektor ke Anda Akun AWS menggunakan konsol Athena atau. AWS Serverless Application Repository Untuk informasi selengkapnya, lihat [Buat koneksi sumber data](connect-to-a-data-source.md) atau [Gunakan AWS Serverless Application Repository untuk menyebarkan konektor sumber data](connect-data-source-serverless-app-repo.md).

## Batasan
<a name="connectors-gcs-limitations"></a>
+ Menulis operasi DDL tidak didukung.
+ Batas Lambda yang relevan. Untuk informasi selengkapnya, lihat [Kuota Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) dalam *Panduan Pengembang AWS Lambda *.
+ Saat ini, konektor hanya mendukung `VARCHAR` jenis untuk kolom partisi (`string`atau `varchar` dalam skema AWS Glue tabel). Jenis bidang partisi lainnya memunculkan kesalahan saat Anda menanyakannya di Athena.

## Istilah
<a name="connectors-gcs-terms"></a>

Istilah-istilah berikut berhubungan dengan konektor GCS.
+ **Handler — Penangan** Lambda yang mengakses bucket GCS Anda. Handler bisa untuk metadata atau untuk catatan data.
+ **Metadata handler** — Penangan Lambda yang mengambil metadata dari bucket GCS Anda.
+ **Record handler — Penangan** Lambda yang mengambil catatan data dari bucket GCS Anda.
+ **Handler komposit — Penangan** Lambda yang mengambil data metadata dan data dari bucket GCS Anda.

## Tipe file yang didukung
<a name="connectors-gcs-supported-file-types"></a>

Konektor GCS mendukung jenis file Parket dan CSV.

**catatan**  
Pastikan Anda tidak menempatkan file CSV dan Parket di bucket atau path GCS yang sama. Melakukannya dapat mengakibatkan kesalahan runtime ketika file Parket dicoba dibaca sebagai CSV atau sebaliknya. 

## Parameter
<a name="connectors-gcs-parameters"></a>

Gunakan parameter di bagian ini untuk mengkonfigurasi konektor GCS.

**catatan**  
Konektor sumber data Athena dibuat pada 3 Desember 2024 dan kemudian menggunakan koneksi. AWS Glue   
Nama parameter dan definisi yang tercantum di bawah ini adalah untuk konektor sumber data Athena yang dibuat sebelum 3 Desember 2024. Ini dapat berbeda dari [properti AWS Glue koneksi](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html) yang sesuai. Mulai 3 Desember 2024, gunakan parameter di bawah ini hanya jika Anda [menggunakan konektor sumber data Athena versi sebelumnya secara manual](connect-data-source-serverless-app-repo.md).

### AWS Glue Data Catalog konektor federasi
<a name="connectors-gcs-gc"></a>

Kami menyarankan Anda mengkonfigurasi konektor GCS dengan menggunakan objek koneksi Glue. Untuk melakukan ini, atur variabel `glue_connection` lingkungan dari konektor GCS Lambda ke nama koneksi Glue yang akan digunakan.

**Properti koneksi lem**

Gunakan perintah berikut untuk mendapatkan skema untuk objek koneksi Glue. Skema ini berisi semua parameter yang dapat Anda gunakan untuk mengontrol koneksi Anda.

```
aws glue describe-connection-type --connection-type GOOGLECLOUDSTORAGE
```

**Properti lingkungan Lambda**

Properti lingkungan Lambda berikut hanya berlaku ketika Anda menggunakan konektor dengan fungsi Lambda di akun Anda.
+ **glue\_connection** - Menentukan nama koneksi Glue yang terkait dengan konektor federasi.

**catatan**  
Semua konektor yang menggunakan koneksi AWS Glue Data Catalog federasi harus digunakan AWS Secrets Manager untuk menyimpan kredensil.
Konektor GCS yang dibuat menggunakan koneksi AWS Glue Data Catalog federasi tidak mendukung penggunaan handler multiplexing.
Konektor GCS yang dibuat menggunakan koneksi AWS Glue Data Catalog federasi hanya mendukung `ConnectionSchemaVersion` 2.

### Konektor federasi katalog data Athena
<a name="connectors-gcs-legacy"></a>
+ **spill\_bucket** - Menentukan bucket Amazon S3 untuk data yang melebihi batas fungsi Lambda.
+ **spill\_prefix** — (Opsional) Default ke subfolder dalam nama yang ditentukan. `spill_bucket` `athena-federation-spill` Kami menyarankan Anda mengonfigurasi [siklus hidup penyimpanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) Amazon S3 di lokasi ini untuk menghapus tumpahan yang lebih lama dari jumlah hari atau jam yang telah ditentukan sebelumnya.
+ **spill\_put\_request\_headers** — (Opsional) Peta header permintaan dan nilai yang disandikan JSON untuk permintaan Amazon S3 yang digunakan untuk menumpahkan (misalnya,). `putObject` `{"x-amz-server-side-encryption" : "AES256"}` Untuk kemungkinan header lainnya, lihat [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)di *Referensi API Amazon Simple Storage Service*.
+ **kms\_key\_id** — (Opsional) Secara default, data apa pun yang tumpah ke Amazon S3 dienkripsi menggunakan mode enkripsi yang diautentikasi AES-GCM dan kunci yang dihasilkan secara acak. Agar fungsi Lambda Anda menggunakan kunci enkripsi yang lebih kuat yang dihasilkan oleh KMS seperti`a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`, Anda dapat menentukan ID kunci KMS.
+ **disable\_spill\_encryption** — (Opsional) Ketika diatur ke, menonaktifkan enkripsi tumpahan. `True` Defaultnya `False` sehingga data yang tumpah ke S3 dienkripsi menggunakan AES-GCM — baik menggunakan kunci yang dihasilkan secara acak atau KMS untuk menghasilkan kunci. [Menonaktifkan enkripsi tumpahan dapat meningkatkan kinerja, terutama jika lokasi tumpahan Anda menggunakan enkripsi sisi server.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)
+ **secret\_manager\_gcp\_creds\_name — Nama rahasia yang berisi kredensi** GCS Anda dalam AWS Secrets Manager format JSON (misalnya,). `GoogleCloudPlatformCredentials`

## Menyiapkan database dan tabel di AWS Glue
<a name="connectors-gcs-setting-up-databases-and-tables-in-glue"></a>

Karena kemampuan inferensi skema bawaan konektor GCS terbatas, kami sarankan Anda menggunakannya AWS Glue untuk metadata Anda. Prosedur berikut menunjukkan cara membuat database dan tabel di mana Anda AWS Glue dapat mengakses dari Athena.

### Membuat database di AWS Glue
<a name="connectors-gcs-creating-a-database-in-glue"></a>

Anda dapat menggunakan AWS Glue konsol untuk membuat database untuk digunakan dengan konektor GCS.

**Untuk membuat database 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. Dari panel navigasi, pilih **Databases**.

1. Pilih **Add database** (Tambahkan basis data).

1. Untuk **Nama**, masukkan nama untuk database yang ingin Anda gunakan dengan konektor GCS.

1. Untuk **Lokasi**, tentukan`google-cloud-storage-flag`. Lokasi ini memberi tahu konektor GCS bahwa AWS Glue database berisi tabel untuk data GCS yang akan ditanyakan di Athena. Konektor mengenali database di Athena yang memiliki bendera ini dan mengabaikan database yang tidak.

1. Pilih **Buat basis data**.

### Membuat tabel di AWS Glue
<a name="connectors-gcs-creating-a-table-in-glue"></a>

Sekarang Anda dapat membuat tabel untuk database. Saat Anda membuat AWS Glue tabel untuk digunakan dengan konektor GCS, Anda harus menentukan metadata tambahan.

**Untuk membuat tabel di AWS Glue konsol**

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

1. Pada halaman **Tabel**, pilih **Tambahkan tabel**.

1. Pada halaman **Set table properties**, masukkan informasi berikut.
   + **Nama** — Nama unik untuk tabel.
   + **Database** — Pilih AWS Glue database yang Anda buat untuk konektor GCS.
   + **Sertakan jalur** — Di bagian **Penyimpanan data**, untuk **jalur Sertakan**, masukkan lokasi URI untuk GCS yang diawali oleh `gs://` (misalnya,`gs://{{gcs_table}}/{{data}}/`). Jika Anda memiliki satu atau lebih folder partisi, jangan sertakan mereka di jalur.
**catatan**  
Saat Anda memasukkan jalur non `s3://` tabel, AWS Glue konsol menunjukkan kesalahan. Anda dapat mengabaikan kesalahan ini. Tabel akan berhasil dibuat.
   + **Format data** — Untuk **Klasifikasi**, pilih **CSV** atau **Parket**.

1. Pilih **Berikutnya**.

1. Pada halaman **Pilih atau tentukan skema**, mendefinisikan skema tabel sangat disarankan, tetapi tidak wajib. Jika Anda tidak mendefinisikan skema, konektor GCS mencoba menyimpulkan skema untuk Anda.

   Lakukan salah satu tindakan berikut:
   + **Jika Anda ingin konektor GCS mencoba menyimpulkan skema untuk Anda, pilih **Berikutnya**, lalu pilih Buat.**
   + Untuk menentukan skema sendiri, ikuti langkah-langkah di bagian selanjutnya.

### Mendefinisikan skema tabel di AWS Glue
<a name="connectors-gcs-defining-a-table-schema-in-glue"></a>

Mendefinisikan skema tabel AWS Glue membutuhkan lebih banyak langkah tetapi memberi Anda kontrol yang lebih besar atas proses pembuatan tabel.

**Untuk menentukan skema untuk tabel Anda di AWS Glue**

1. Pada halaman **Pilih atau tentukan skema**, pilih **Tambah**.

1. Gunakan kotak dialog **Tambahkan entri skema** untuk memberikan nama kolom dan tipe data.

1. Untuk menunjuk kolom sebagai kolom partisi, pilih opsi **Set as partition key**.

1. Pilih **Simpan** untuk menyimpan kolom.

1. Pilih **Tambah** untuk menambahkan kolom lain.

1. Setelah selesai menambahkan kolom, pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, tinjau tabel, lalu pilih **Buat**.

1. Jika skema Anda berisi informasi partisi, ikuti langkah-langkah di bagian berikutnya untuk menambahkan pola partisi ke properti tabel di AWS Glue.

### Menambahkan pola partisi ke properti tabel di AWS Glue
<a name="connectors-gcs-adding-a-partition-pattern-to-table-properties-in-glue"></a>

Jika bucket GCS Anda memiliki partisi, Anda harus menambahkan pola partisi ke properti tabel di. AWS Glue

**Untuk menambahkan informasi partisi ke properti tabel AWS Glue**

1. Pada halaman detail untuk tabel yang Anda buat AWS Glue, pilih **Tindakan**, **Edit tabel**.

1. Pada halaman **Edit tabel**, gulir ke bawah ke bagian **Properti tabel**.

1. Pilih **Tambah** untuk menambahkan kunci partisi.

1. Untuk **Kunci**, masukkan **partition.pattern**. Kunci ini mendefinisikan pola path folder.

1. Untuk **Nilai**, masukkan pola jalur folder seperti**StateName=${statename}/ZipCode=${zipcode}/**, di mana **statename** dan **zipcode** tertutup oleh **${}** adalah nama kolom partisi. Konektor GCS mendukung skema partisi Hive dan non-Hive.

1. Setelah selesai, pilih **Simpan**.

1. Untuk melihat properti tabel yang baru saja Anda buat, pilih tab **Advanced properties**.

Pada titik ini, Anda dapat menavigasi ke konsol Athena. Database dan tabel yang Anda buat AWS Glue tersedia untuk kueri di Athena.

## Dukungan tipe data
<a name="connectors-gcs-data-type-support"></a>

Tabel berikut menunjukkan tipe data yang didukung untuk CSV dan untuk Parket.

### CSV
<a name="connectors-gcs-csv"></a>


****  

| **Sifat data** | **Tipe Data yang Disimpulkan** | 
| --- | --- | 
| Data terlihat seperti angka | BIGINT | 
| Data terlihat seperti string | VARCHAR | 
| Data terlihat seperti floating point (float, double, atau desimal) | DOUBLE | 
| Data terlihat seperti Tanggal | Stempel waktu | 
| Data yang berisi true/false nilai | BOOL | 

### Parquet
<a name="connectors-gcs-parquet"></a>


****  

| **PARKET** | **Athena (Panah)** | 
| --- | --- | 
| BINARY | VARCHAR | 
| BOOLEAN | BOOL | 
| DOUBLE | DOUBLE | 
| ENUM | VARCHAR | 
| FIXED\_LEN\_BYTE\_ARRAY | DECIMAL | 
| FLOAT | MENGAPUNG (32-bit) | 
| INT32 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/athena/latest/ug/connectors-gcs.html)  | 
| INT64 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/athena/latest/ug/connectors-gcs.html)  | 
| INT96 | Stempel waktu | 
| PETA | PETA | 
| STRUCT | STRUCT | 
| DAFTAR | DAFTAR | 

## Izin yang Diperlukan
<a name="connectors-gcs-required-permissions"></a>

Untuk detail lengkap tentang kebijakan IAM yang diperlukan konektor ini, tinjau `Policies` bagian file [athena-gcs.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-gcs/athena-gcs.yaml). Daftar berikut merangkum izin yang diperlukan.
+ **Akses tulis Amazon S3** - Konektor memerlukan akses tulis ke lokasi di Amazon S3 untuk menumpahkan hasil dari kueri besar.
+ **Athena GetQueryExecution** — Konektor menggunakan izin ini untuk gagal cepat ketika kueri Athena hulu telah dihentikan.
+ **AWS Glue Data Catalog**- Konektor GCS memerlukan akses baca saja ke AWS Glue Data Catalog untuk mendapatkan informasi skema.
+ **CloudWatch Log** — Konektor memerlukan akses ke CloudWatch Log untuk menyimpan log.

## Performa
<a name="connectors-gcs-performance"></a>

Ketika skema tabel berisi bidang partisi dan properti `partition.pattern` tabel dikonfigurasi dengan benar, Anda dapat menyertakan bidang partisi dalam `WHERE` klausa kueri Anda. Untuk kueri semacam itu, konektor GCS menggunakan kolom partisi untuk memperbaiki jalur folder GCS dan menghindari pemindaian file yang tidak dibutuhkan di folder GCS.

Untuk kumpulan data Parket, memilih subset kolom menghasilkan lebih sedikit data yang dipindai. Ini biasanya menghasilkan runtime eksekusi kueri yang lebih pendek ketika proyeksi kolom diterapkan. 

Untuk kumpulan data CSV, proyeksi kolom tidak didukung dan tidak mengurangi jumlah data yang dipindai. 

`LIMIT`klausa mengurangi jumlah data yang dipindai, tetapi jika Anda tidak memberikan predikat, Anda harus mengharapkan `SELECT` kueri dengan `LIMIT` klausa untuk memindai setidaknya 16 MB data. Konektor GCS memindai lebih banyak data untuk kumpulan data yang lebih besar daripada kumpulan data yang lebih kecil, terlepas dari klausa yang diterapkan. `LIMIT` Misalnya, kueri `SELECT * LIMIT 10000` memindai lebih banyak data untuk kumpulan data dasar yang lebih besar daripada yang lebih kecil.

### Informasi lisensi
<a name="connectors-gcs-license-information"></a>

Dengan menggunakan konektor ini, Anda mengakui penyertaan komponen pihak ketiga, daftar yang dapat ditemukan dalam file [pom.xml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-gcs/pom.xml) untuk konektor ini, dan menyetujui persyaratan dalam masing-masing lisensi pihak ketiga yang disediakan dalam file [LICENSE.txt](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-gcs/LICENSE.txt) di .com. GitHub

### Sumber daya tambahan
<a name="connectors-gcs-additional-resources"></a>

Untuk informasi tambahan tentang konektor ini, kunjungi [situs terkait](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-gcs) GitHub di.com.