Gunakan kueri passthrough federasi - Amazon Athena

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

Gunakan kueri passthrough federasi

Di Athena, Anda dapat menjalankan kueri pada sumber data federasi menggunakan bahasa kueri dari sumber data itu sendiri dan mendorong kueri lengkap ke sumber data untuk dieksekusi. Kueri ini disebut kueri passthrough. Untuk menjalankan kueri passthrough, Anda menggunakan fungsi tabel dalam kueri Athena Anda. Anda menyertakan kueri passthrough untuk dijalankan pada sumber data di salah satu argumen ke fungsi tabel. Melewati kueri mengembalikan tabel yang dapat Anda analisis menggunakan AthenaSQL.

Konektor yang didukung

Konektor sumber data Athena berikut mendukung kueri passthrough.

Pertimbangan dan batasan

Saat menggunakan kueri passthrough di Athena, pertimbangkan hal-hal berikut:

  • Passthrough kueri hanya didukung untuk pernyataan SELECT Athena atau operasi baca.

  • Kueri passthrough harus dijalankan dalam konteks katalog kueri luar (yaitu, kueri yang memanggil fungsi tabel).

  • Kinerja kueri dapat bervariasi tergantung pada konfigurasi sumber data.

  • Kueri passthrough tidak didukung untuk tampilan.

Sintaks

Sintaks passthrough kueri Athena umum adalah sebagai berikut.

SELECT * FROM TABLE(system.function_name(arg1 => 'arg1Value'[, arg2 => 'arg2Value', ...]))

Untuk sebagian besar sumber data, argumen pertama dan satu-satunya query diikuti oleh operator panah => dan string kueri.

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

Untuk mempermudah, Anda dapat menghilangkan argumen bernama opsional query dan operator => panah.

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

Jika sumber data membutuhkan lebih dari string kueri, gunakan argumen bernama dalam urutan yang diharapkan oleh sumber data. Misalnya, ekspresi arg1 => 'arg1Value' berisi argumen pertama dan nilainya. Nama arg1 khusus untuk sumber data dan dapat berbeda dari konektor ke konektor.

SELECT * FROM TABLE( system.query( arg1 => 'arg1Value', arg2 => 'arg2Value', arg3 => 'arg3Value' ));

Untuk informasi tentang sintaks yang tepat untuk digunakan dengan konektor tertentu, lihat halaman konektor individual.

Penggunaan tanda kutip

Nilai argumen, termasuk string kueri yang Anda lewati, harus diapit dalam tanda kutip tunggal, seperti pada contoh berikut.

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

Ketika string kueri dikelilingi oleh tanda kutip ganda, kueri gagal. Kueri berikut gagal dengan pesan kesalahan COLUMN_ NOT _FOUND: baris 1:43: Kolom 'pilih * dari testdb.persons limit 10' tidak dapat diselesaikan.

SELECT * FROM TABLE(system.query(query => "SELECT * FROM testdb.persons LIMIT 10"))

Untuk menghindari satu kutipan, tambahkan satu kutipan ke aslinya (misalnya, terry's_group keterry''s_group).

Contoh

Contoh query berikut mendorong ke bawah query ke sumber data. Kueri memilih semua kolom dalam customer tabel, membatasi hasilnya menjadi 10.

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

Pernyataan berikut menjalankan query yang sama, tetapi menghilangkan argumen bernama opsional query dan operator panah=>.

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