Konektor Google Amazon Athena BigQuery - Amazon Athena

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

Konektor Google Amazon Athena BigQuery

Konektor Amazon Athena untuk Google BigQuerymemungkinkan Amazon Athena menjalankan kueri SQL pada data Google Anda. BigQuery

Prasyarat

Batasan

  • Fungsi Lambda memiliki nilai batas waktu maksimum 15 menit. Setiap perpecahan mengeksekusi kueri BigQuery dan harus selesai dengan waktu yang cukup untuk menyimpan hasil agar Athena dapat dibaca. Jika fungsi Lambda habis waktu, kueri gagal.

  • Google BigQuery adalah case sensitive. Konektor mencoba untuk memperbaiki kasus nama dataset dan nama tabel tetapi tidak melakukan koreksi kasus apa pun untuk ID proyek. Ini diperlukan karena Athena menurunkan semua metadata. Koreksi ini membuat banyak panggilan tambahan ke Google BigQuery.

  • Tipe data biner tidak didukung.

  • Karena BigQuery konkurensi Google dan batas kuota, konektor mungkin mengalami masalah batas kuota Google. Untuk menghindari masalah ini, dorong sebanyak mungkin kendala ke Google BigQuery . Untuk informasi tentang BigQuery kuota, lihat Kuota dan batasan dalam dokumentasi Google BigQuery .

Parameter

Gunakan variabel lingkungan Lambda di bagian ini untuk mengonfigurasi konektor Google BigQuery .

  • 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 sepertia7e63k4b-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.

  • gcp_project_id — ID proyek (bukan nama proyek) yang berisi kumpulan data yang harus dibaca konektor (misalnya,). semiotic-primer-1234567

  • secret_manager_gcp_creds_name — Nama rahasia di dalamnya yang berisi kredensil Anda dalam AWS Secrets Manager format JSON (misalnya,). BigQuery GoogleCloudPlatformCredentials

  • big_query_endpoint — (Opsional) URL dari endpoint pribadi. BigQuery Gunakan parameter ini saat Anda ingin mengakses BigQuery melalui titik akhir pribadi.

Perpecahan dan tampilan

Karena BigQuery konektor menggunakan BigQuery Storage Read API untuk menanyakan tabel, dan BigQuery Storage API tidak mendukung tampilan, konektor menggunakan BigQuery klien dengan satu split untuk tampilan.

Kinerja

Untuk menanyakan tabel, BigQuery konektor menggunakan BigQuery Storage Read API, yang menggunakan protokol berbasis RPC yang menyediakan akses cepat ke penyimpanan BigQuery terkelola. Untuk informasi selengkapnya tentang BigQuery Storage Read API, lihat Menggunakan BigQuery Storage Read API untuk membaca data tabel di dokumentasi Google Cloud.

Memilih subset kolom secara signifikan mempercepat runtime kueri dan mengurangi data yang dipindai. Konektor tunduk pada kegagalan kueri saat konkurensi meningkat, dan umumnya merupakan konektor yang lambat.

BigQuery Konektor Google Athena melakukan pushdown predikat untuk mengurangi data yang dipindai oleh kueri. LIMITklausa, ORDER BY klausa, predikat sederhana, dan ekspresi kompleks didorong ke konektor untuk mengurangi jumlah data yang dipindai dan mengurangi waktu eksekusi kueri.

Klausul LIMIT

LIMIT NPernyataan mengurangi data yang dipindai oleh kueri. Dengan LIMIT N pushdown, konektor hanya mengembalikan N baris ke Athena.

Kueri N teratas

NKueri teratas menentukan urutan set hasil dan batas jumlah baris yang dikembalikan. Anda dapat menggunakan jenis kueri ini untuk menentukan nilai N maks teratas atau nilai N min teratas untuk kumpulan data Anda. Dengan N pushdown atas, konektor hanya mengembalikan baris yang N dipesan ke Athena.

Predikat

Predikat adalah ekspresi dalam WHERE klausa query SQL yang mengevaluasi nilai Boolean dan menyaring baris berdasarkan beberapa kondisi. BigQuery Konektor Google Athena dapat menggabungkan ekspresi ini dan mendorongnya langsung ke Google BigQuery untuk fungsionalitas yang ditingkatkan dan untuk mengurangi jumlah data yang dipindai.

Operator BigQuery konektor Google Athena berikut mendukung pushdown predikat:

  • Boolean: DAN, ATAU, TIDAK

  • KESETARAAN: SAMA, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IS_DISTINCT_FROM, NULL_IF, IS_NULL

  • Aritmatika: TAMBAHKAN, KURANGI, KALIKAN, BAGI, MODULUS, MENIADAKAN

  • Lainnya: LIKE_PATTERN, IN

Contoh pushdown gabungan

Untuk kemampuan kueri yang ditingkatkan, gabungkan jenis pushdown, seperti pada contoh berikut:

SELECT * FROM my_table WHERE col_a > 10 AND ((col_a + col_b) > (col_c % col_d)) AND (col_e IN ('val1', 'val2', 'val3') OR col_f LIKE '%pattern%') ORDER BY col_a DESC LIMIT 10;

Kueri passthrough

BigQuery Konektor Google mendukung kueri passthrough. Kueri passthrough menggunakan fungsi tabel untuk mendorong kueri lengkap Anda ke sumber data untuk dieksekusi.

Untuk menggunakan kueri passthrough dengan Google BigQuery, Anda dapat menggunakan sintaks berikut:

SELECT * FROM TABLE( system.query( query => 'query string' ))

Contoh kueri berikut mendorong kueri ke sumber data di Google BigQuery. Kueri memilih semua kolom dalam customer tabel, membatasi hasilnya menjadi 10.

SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))

Informasi lisensi

Proyek BigQuery konektor Google Amazon Athena dilisensikan di bawah Lisensi Apache-2.0.

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 file LICENSE.txt di .com. GitHub

Sumber daya tambahan

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