Konektor Penyimpanan Awan Google Amazon Athena - Amazon Athena

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 yang disimpan di Google Cloud Platform.

Prasyarat

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 (stringatau varchar 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 likea7e63k4b-8loc-40db-a2a1-4d0en2cd8331, Anda dapat menentukan ID KMS kunci.

  • disable_spill_encryption — (Opsional) Ketika diatur ke, menonaktifkan enkripsi tumpahan. True Defaultnya False 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
  1. Masuk ke AWS Management Console dan buka AWS Glue konsol di https://console.aws.amazon.com/glue/.

  2. Dari panel navigasi, pilih Databases.

  3. Pilih Add database (Tambahkan basis data).

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

  5. Untuk Lokasi, tentukangoogle-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.

  6. 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
  1. Di AWS Glue konsol, dari panel navigasi, pilih Tabel.

  2. Pada halaman Tabel, pilih Tambahkan tabel.

  3. 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://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 CSVatau Parket.

  4. Pilih Berikutnya.

  5. 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
  1. Pada halaman Pilih atau tentukan skema, pilih Tambah.

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

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

  4. Pilih Simpan untuk menyimpan kolom.

  5. Pilih Tambah untuk menambahkan kolom lain.

  6. Setelah selesai menambahkan kolom, pilih Berikutnya.

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

  8. 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
  1. Pada halaman detail untuk tabel yang Anda buat AWS Glue, pilih Tindakan, Edit tabel.

  2. Pada halaman Edit tabel, gulir ke bawah ke bagian Properti tabel.

  3. Pilih Tambah untuk menambahkan kunci partisi.

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

  5. Untuk Nilai, masukkan pola jalur folder sepertiStateName=${statename}/ZipCode=${zipcode}/, di mana statename dan zipcode diapit oleh ${} adalah nama kolom partisi. GCSKonektor mendukung skema partisi Hive dan non-Hive.

  6. Setelah selesai, pilih Simpan.

  7. 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
  1. INT32

  2. DATEDAY(ketika tipe logis kolom Parket adalahDATE)

INT64
  1. INT64

  2. TIMESTAMP(ketika tipe logis kolom Parket adalahTIMESTAMP)

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. 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— 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.

LIMITklausa 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 untuk konektor ini, dan menyetujui persyaratan dalam masing-masing lisensi pihak ketiga yang disediakan dalam LICENSEfile.txt di .com. GitHub

Sumber daya tambahan

Untuk informasi tambahan tentang konektor ini, kunjungi situs terkait GitHub di.com.