Membuat kueri data Amazon S3
Dokumen ini menjelaskan cara membuat kueri data yang tersimpan dalam tabel BigLake Amazon Simple Storage Service (Amazon S3).
Sebelum memulai
Pastikan Anda memiliki tabel Amazon S3 BigLake.
Peran yang diperlukan
Untuk membuat kueri tabel BigLake Amazon S3, pastikan pemanggil BigQuery API memiliki peran berikut:
- BigQuery Connection User (
roles/bigquery.connectionUser
) - BigQuery Data Viewer (
roles/bigquery.dataViewer
) - BigQuery User (
roles/bigquery.user
)
Pemanggil dapat berupa akun Anda atau akun layanan koneksi Amazon S3. Bergantung pada izin yang Anda miliki, Anda dapat memberikan peran ini pada diri sendiri atau meminta administrator untuk memberikannya. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Melihat peran yang dapat diberikan pada resource.
Untuk melihat izin akurat yang diperlukan untuk membuat kueri tabel Amazon S3 BigLake, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
bigquery.connections.use
bigquery.jobs.create
bigquery.readsessions.create
(Hanya diperlukan jika Anda membaca data dengan BigQuery Storage Read API)bigquery.tables.get
bigquery.tables.getData
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran yang telah ditetapkan sebelumnya.
Membuat kueri tabel BigLake Amazon S3
Setelah membuat tabel BigLake Amazon S3, Anda dapat membuat kuerinya menggunakan sintaksis GoogleSQL, sama seperti tabel BigQuery standar.
Hasil kueri yang di-cache disimpan dalam tabel sementara BigQuery. Untuk membuat kueri tabel BigLake sementara, lihat Membuat kueri tabel BigLake sementara. Untuk mengetahui informasi selengkapnya tentang batasan dan kuota BigQuery Omni, lihat batasan dan kuota.
Saat membuat pemesanan di region BigQuery Omni, gunakan edisi Enterprise. Untuk mempelajari cara membuat reservasi dengan edisi, lihat Membuat reservasi.
Jalankan kueri pada tabel BigLake Amazon S3:
SQL
Untuk membuat kueri tabel:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
SELECT * FROM DATASET_NAME.TABLE_NAME;
Ganti kode berikut:
DATASET_NAME
: nama set data yang Anda buatTABLE_NAME
: nama tabel yang Anda buatKlik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat kueri tabel sementara
BigQuery membuat tabel sementara untuk menyimpan hasil kueri. Untuk mengambil hasil kueri dari tabel sementara, Anda dapat menggunakan Konsol Google Cloud atau BigQuery API.
Pilih salah satu opsi berikut:
Konsol
Saat membuat kueri tabel BigLake yang merujuk ke data cloud eksternal, Anda dapat melihat hasil kueri yang ditampilkan di Konsol Google Cloud.
API
Untuk membuat kueri tabel BigLake menggunakan API, ikuti langkah-langkah berikut:
- Buat Objek tugas.
- Panggil metode
jobs.insert
untuk menjalankan kueri secara asinkron, atau metodejobs.query
untuk menjalankan kueri secara sinkron, meneruskan objekJob
. - Baca baris yang memuat
jobs.getQueryResults
dengan meneruskan referensi tugas yang diberikan, dan metodetabledata.list
dengan meneruskan referensi tabel tertentu dari hasil kueri.
Membuat kueri kolom semu _FILE_NAME
Tabel yang didasarkan pada sumber data eksternal menyediakan kolom pseudo bernama _FILE_NAME
. Kolom ini berisi jalur yang sepenuhnya memenuhi syarat ke file yang memiliki baris tersebut. Kolom ini hanya tersedia untuk tabel yang mereferensikan data eksternal yang disimpan di Cloud Storage, Google Drive, Amazon S3, dan Azure Blob Storage.
Nama kolom _FILE_NAME
sudah dicadangkan, yang berarti Anda tidak dapat membuat kolom dengan nama tersebut di tabel Anda. Untuk memilih nilai _FILE_NAME
, Anda harus menggunakan
alias. Contoh kueri berikut menunjukkan pemilihan _FILE_NAME
dengan menetapkan
alias fn
ke kolom semu.
bq query \
--project_id=PROJECT_ID \
--use_legacy_sql=false \
'SELECT
name,
_FILE_NAME AS fn
FROM
`DATASET.TABLE_NAME`
WHERE
name contains "Alex"'
Ganti kode berikut:
-
PROJECT_ID
adalah project ID yang valid (tanda ini tidak diperlukan jika Anda menggunakan Cloud Shell atau jika Anda menetapkan project default di Google Cloud CLI) -
DATASET
adalah nama set data yang menyimpan tabel eksternal permanen -
TABLE_NAME
adalah nama tabel eksternal permanen
Jika kueri memiliki predikat filter di kolom semu _FILE_NAME
, BigQuery akan mencoba melewati file pembacaan yang tidak memenuhi filter. Rekomendasi yang serupa dengan
membuat kueri tabel berpartisi waktu penyerapan menggunakan kolom semu
berlaku saat membuat predikat kueri dengan kolom semu _FILE_NAME
.
Langkah selanjutnya
- Pelajari cara menggunakan SQL di BigQuery.
- Pelajari BigQuery Omni.
- Pelajari kuota BigQuery.