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
Konektor Amazon Athena Google Cloud Storage memungkinkan Amazon Athena menjalankan kueri di Parket CSV dan file yang disimpan di bucket Google Cloud Storage (). GCS Setelah mengelompokkan satu atau beberapa Parket atau CSV file dalam folder yang tidak dipartisi atau dipartisi dalam GCS ember, 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, IAM peran untuk konektor Lambda federasi Athena yang Anda gunakan harus memiliki akses baca AWS Serverless Application Repository di Lake Formation ke. AWS Glue Data Catalog
Untuk artikel yang menunjukkan cara menggunakan Athena untuk menjalankan kueri di Parket atau CSV file dalam GCS ember, lihat posting Blog AWS Big Data Menggunakan Amazon Athena untuk menanyakan data
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
-
DDLOperasi tulis 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 GCS konektor.
-
Handler — Penangan Lambda yang mengakses ember Anda. GCS Handler bisa untuk metadata atau untuk catatan data.
-
Metadata handler — Penangan Lambda yang mengambil metadata dari bucket Anda. GCS
-
Record handler — Penangan Lambda yang mengambil catatan data dari bucket Anda. GCS
-
Handler komposit — Penangan Lambda yang mengambil data metadata dan data dari bucket Anda. GCS
Tipe file yang didukung
GCSKonektor mendukung jenis parket dan CSV file.
catatan
Pastikan Anda tidak menempatkan keduanya CSV dan file Parket di GCS ember atau jalur yang sama. Melakukannya dapat mengakibatkan kesalahan runtime ketika file Parket dicoba dibaca sebagai CSV atau sebaliknya.
Parameter
Gunakan parameter di bagian ini untuk mengkonfigurasi GCS konektor.
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 JSON dikodekan untuk permintaan Amazon S3 yang digunakan untuk tumpahan (misalnya,).
putObject
{"x-amz-server-side-encryption" : "AES256"}
Untuk kemungkinan header lainnya, lihat PutObjectdi APIReferensi Layanan Penyimpanan Sederhana Amazon. -
kms_key_id — (Opsional) Secara default, data apa pun yang tumpah ke Amazon S3 dienkripsi menggunakan AES mode enkripsi yang diautentikasi dan kunci yang dihasilkan secara acak. GCM Agar fungsi Lambda Anda menggunakan kunci enkripsi yang lebih kuat yang dihasilkan oleh KMS like
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, Anda dapat menentukan ID KMS kunci. -
disable_spill_encryption — (Opsional) Ketika diatur ke, menonaktifkan enkripsi tumpahan.
True
DefaultnyaFalse
agar data yang tumpah ke S3 dienkripsi menggunakan AES - GCM — baik menggunakan kunci yang dihasilkan secara acak atau untuk menghasilkan kunci. KMS Menonaktifkan enkripsi tumpahan dapat meningkatkan kinerja, terutama jika lokasi tumpahan Anda menggunakan enkripsi sisi server. -
secret_manager_gcp_creds_name — Nama rahasia yang berisi kredensil Anda dalam format (misalnya,). AWS Secrets Manager GCS JSON
GoogleCloudPlatformCredentials
Menyiapkan database dan tabel di AWS Glue
Karena kemampuan inferensi skema bawaan GCS konektor 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 GCS konektor.
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 GCS konektor.
-
Untuk Lokasi, tentukan
google-cloud-storage-flag
. Lokasi ini memberitahu GCS konektor bahwa AWS Glue database berisi tabel untuk GCS data 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 GCS konektor, 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 GCS konektor.
-
Sertakan jalur — Di bagian Penyimpanan data, untuk jalur Sertakan, masukkan URI lokasi untuk GCS 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 CSVatau Parket.
-
-
Pilih Berikutnya.
-
Pada halaman Pilih atau tentukan skema, mendefinisikan skema tabel sangat disarankan, tetapi tidak wajib. Jika Anda tidak mendefinisikan skema, GCS konektor mencoba menyimpulkan skema untuk Anda.
Lakukan salah satu hal berikut ini:
-
Jika Anda ingin GCS konektor 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 GCS bucket 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. GCSKonektor 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
PARQUET | Athena (Panah) |
---|---|
BINARY | VARCHAR |
BOOLEAN | BOOL |
DOUBLE | DOUBLE |
ENUM | VARCHAR |
FIXED_LEN_BYTE_ARRAY | DECIMAL |
FLOAT | FLOAT(32-bit) |
INT32 |
|
INT64 |
|
INT96 | Stempel Waktu |
MAP | MAP |
STRUCT | STRUCT |
LIST | LIST |
Izin yang Diperlukan
Untuk detail selengkapnya tentang IAM kebijakan 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— GCS Konektor hanya membutuhkan akses baca ke AWS Glue Data Catalog untuk mendapatkan informasi skema.
-
CloudWatch Log — Konektor memerlukan akses ke CloudWatch Log untuk menyimpan log.
Kinerja
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 seperti itu, GCS konektor menggunakan kolom partisi untuk memperbaiki jalur GCS folder dan menghindari pemindaian file yang tidak dibutuhkan dalam 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 CSV kumpulan data, 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. GCSKonektor 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