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
berisi argumen pertama dan nilainya. Nama arg1
=>
'arg1Value
'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;' ))