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 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 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:
Pembacaan BIGQUERY
| 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
|
Baca hanya baris yang cocok dengan filter ini, yang harus kompatibel dengan SQL standar Google. Hal ini tidak didukung saat membaca melalui kueri. |
| fields |
list[str]
|
Baca hanya 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} |
Penulisan BIGQUERY
| Konfigurasi | Jenis | Deskripsi |
|---|---|---|
| table |
str
|
Tabel BigQuery yang akan ditulis. Format: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Daftar nama kolom yang akan dihilangkan 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 dihilangkan 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 satu kolom data yang akan ditulis. Tidak dapat muncul bersamaan dengan 'keep' dan 'drop'. |
| triggering_frequency_seconds |
int64
|
Menentukan seberapa sering 'commit' progres ke BigQuery. Defaultnya adalah setiap 5 detik. |
Langkah berikutnya
Untuk mengetahui informasi dan contoh kode selengkapnya, lihat topik berikut: