I/O terkelola Dataflow untuk BigQuery memungkinkan Anda mengubah dan memperkaya data dalam pipeline streaming dan batch. I/O terkelola mengintegrasikan BigQuery sebagai sumber dan tujuan untuk tugas Dataflow, sehingga menyederhanakan interaksi BigQuery API. Anda dapat memproses set data skala besar untuk berbagai kasus penggunaan, mulai dari analisis real-time hingga data warehousing, dengan menggunakan pembuatan dan tujuan tabel dinamis di BigQuery.
Manfaat I/O terkelola
I/O terkelola memberikan manfaat dan kemampuan berikut untuk BigQuery:
- Pembuatan tabel dinamis
- Tujuan dinamis
- Untuk pembacaan, konektor menggunakan BigQuery Storage Read API.
Untuk penulisan, konektor menggunakan metode BigQuery berikut:
- Jika sumbernya tidak terbatas dan Dataflow menggunakan pemrosesan streaming yang tepat sekali, konektor akan melakukan penulisan ke BigQuery, dengan menggunakan BigQuery Storage Write API (gRPC) dengan semantik pengiriman yang tepat sekali.
- Jika sumbernya tidak terbatas dan Dataflow menggunakan pemrosesan streaming setidaknya sekali, konektor akan melakukan penulisan ke BigQuery, dengan menggunakan BigQuery Storage Write API (gRPC) dengan semantik pengiriman setidaknya sekali.
- Jika sumbernya terbatas, konektor akan menggunakan pemuatan file BigQuery.
Persyaratan
SDK berikut mendukung I/O terkelola untuk BigQuery:
- Apache Beam SDK untuk Java versi 2.61.0 atau yang lebih baru
- Apache Beam SDK untuk Python versi 2.61.0 atau yang lebih baru
Konfigurasi
I/O terkelola untuk BigQuery mendukung parameter konfigurasi berikut:
BIGQUERY Baca
| Konfigurasi | Jenis | Deskripsi |
|---|---|---|
| kms_key |
str
|
Gunakan kunci Cloud KMS ini untuk mengenkripsi data Anda |
| query |
str
|
Kueri SQL yang akan dijalankan untuk membaca dari tabel BigQuery. |
| row_restriction |
str
|
Hanya baca baris yang cocok dengan filter ini, yang harus kompatibel dengan SQL standar Google. Hal ini tidak didukung saat membaca melalui kueri. |
| fields |
list[str]
|
Hanya baca kolom yang ditentukan dari tabel BigQuery. Kolom mungkin tidak ditampilkan dalam urutan yang ditentukan. Jika tidak ada nilai yang ditentukan, semua kolom akan ditampilkan. Contoh: "col1, col2, col3" |
| table |
str
|
Nama tabel BigQuery yang sepenuhnya memenuhi syarat untuk dibaca. Format: [${PROJECT}:]${DATASET}.${TABLE} |
BIGQUERY Tulis
| Konfigurasi | Jenis | Deskripsi |
|---|---|---|
| table |
str
|
Tabel BigQuery yang akan ditulis. Format: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Daftar nama kolom yang akan dihapus dari data input sebelum ditulis. Tidak dapat muncul bersamaan dengan 'keep' dan 'only'. |
| keep |
list[str]
|
Daftar nama kolom yang akan disimpan dalam data input. Semua kolom lainnya akan dihapus sebelum ditulis. Tidak dapat muncul bersamaan dengan 'drop' dan 'only'. |
| kms_key |
str
|
Gunakan kunci Cloud KMS ini untuk mengenkripsi data Anda |
| only |
str
|
Nama kolom data tunggal yang akan ditulis. Tidak dapat muncul bersamaan dengan 'keep' dan 'drop'. |
| triggering_frequency_seconds |
int64
|
Menentukan seberapa sering 'commit' progres ke BigQuery. Nilai defaultnya adalah setiap 5 detik. |
Langkah berikutnya
Untuk mengetahui informasi dan contoh kode selengkapnya, lihat topik berikut: