Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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
Konektor ini tidak dapat didaftarkan dengan Glue Data Catalog sebagai katalog federasi. Konektor ini tidak mendukung kontrol akses data yang ditentukan dalam Lake Formation di tingkat katalog, database, tabel, kolom, baris, dan 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 di 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
Prasyarat
-
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 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 atau Gunakan AWS Serverless Application Repository untuk menyebarkan konektor sumber data.
Batasan
-
Menulis operasi DDL tidak didukung.
-
Batas Lambda yang relevan. Untuk informasi selengkapnya, lihat Kuota Lambda dalam Panduan Pengembang AWS Lambda .
-
Saat ini, konektor hanya mendukung
VARCHAR
jenis untuk kolom partisi (string
atauvarchar
dalam skema AWS Glue tabel). Jenis bidang partisi lainnya memunculkan kesalahan saat Anda menanyakannya di Athena.
Ketentuan
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
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
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 yang sesuai. Mulai 3 Desember 2024, gunakan parameter di bawah ini hanya jika Anda menggunakan konektor sumber data Athena versi sebelumnya secara manual.
-
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 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 PutObjectdi 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
DefaultnyaFalse
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. -
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
Karena kemampuan inferensi skema bawaan dari 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 basis data di AWS Glue
Anda dapat menggunakan AWS Glue konsol untuk membuat database untuk digunakan dengan konektor GCS.
Untuk membuat database di AWS Glue
Masuk ke AWS Management Console dan buka AWS Glue konsol di https://console.aws.amazon.com/glue/
. -
Dari panel navigasi, pilih Databases.
-
Pilih Add database (Tambahkan basis data).
-
Untuk Nama, masukkan nama untuk database yang ingin Anda gunakan dengan konektor GCS.
-
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. -
Pilih Buat basis data.
Membuat tabel di AWS Glue
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
-
Di AWS Glue konsol, dari panel navigasi, pilih Tabel.
-
Pada halaman Tabel, pilih Tambahkan tabel.
-
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://
). Jika Anda memiliki satu atau lebih folder partisi, jangan sertakan mereka di jalur.gcs_table
/data
/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.
-
-
Pilih Berikutnya.
-
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
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
-
Pada halaman Pilih atau tentukan skema, pilih Tambah.
-
Gunakan kotak dialog Tambahkan entri skema untuk memberikan nama kolom dan tipe data.
-
Untuk menunjuk kolom sebagai kolom partisi, pilih opsi Set as partition key.
-
Pilih Simpan untuk menyimpan kolom.
-
Pilih Tambah untuk menambahkan kolom lain.
-
Setelah selesai menambahkan kolom, pilih Berikutnya.
-
Pada halaman Tinjau dan buat, tinjau tabel, lalu pilih Buat.
-
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
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
-
Pada halaman detail untuk tabel yang Anda buat AWS Glue, pilih Tindakan, Edit tabel.
-
Pada halaman Edit tabel, gulir ke bawah ke bagian Properti tabel.
-
Pilih Tambah untuk menambahkan kunci partisi.
-
Untuk Kunci, masukkan
partition.pattern
. Kunci ini mendefinisikan pola path folder. -
Untuk Nilai, masukkan pola jalur folder seperti
StateName=${statename}/ZipCode=${zipcode}/
, di manastatename
danzipcode
diapit oleh${}
adalah nama kolom partisi. Konektor GCS mendukung skema partisi Hive dan non-Hive. -
Setelah selesai, pilih Simpan.
-
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
Tabel berikut menunjukkan tipe data yang didukung untuk CSV dan untuk Parket.
CSV
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 nilai benar/salah | BOOL |
Parquet
PARKET | Athena (Panah) |
---|---|
BINARY | VARCHAR |
BOOLEAN | BOOL |
DOUBLE | DOUBLE |
ENUM | VARCHAR |
FIXED_LEN_BYTE_ARRAY | DECIMAL |
FLOAT | MENGAPUNG (32-bit) |
INT32 |
|
INT64 |
|
INT96 | Stempel Waktu |
PETA | PETA |
STRUCT | STRUCT |
DAFTAR | DAFTAR |
Izin yang Diperlukan
Untuk detail lengkap tentang kebijakan IAM yang diperlukan konektor ini, tinjau Policies
bagian file athena-gcs.yaml
-
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
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
Dengan menggunakan konektor ini, Anda mengakui penyertaan komponen pihak ketiga, daftar yang dapat ditemukan dalam file pom.xml
Sumber daya tambahan
Untuk informasi tambahan tentang konektor ini, kunjungi situs terkait