Pengantar transfer Cloud Storage
Dengan BigQuery Data Transfer Service untuk Cloud Storage, Anda dapat menjadwalkan pemuatan data berulang dari bucket Cloud Storage ke BigQuery. Jalur ke data yang tersimpan di Cloud Storage dan tabel tujuan dapat diparameterisasi, sehingga Anda dapat memuat data dari bucket Cloud Storage yang diatur berdasarkan tanggal.
Format file yang didukung
BigQuery Data Transfer Service saat ini mendukung pemuatan data dari Cloud Storage dalam salah satu format berikut:
- Nilai yang dipisahkan koma (CSV)
- JSON (dibatasi newline)
- Avro
- Parquet
- ORC
Jenis kompresi yang didukung
BigQuery Data Transfer Service untuk Cloud Storage mendukung pemuatan data terkompresi. Jenis kompresi yang didukung oleh BigQuery Data Transfer Service sama dengan jenis kompresi yang didukung oleh tugas pemuatan BigQuery. Untuk informasi selengkapnya, lihat Memuat data terkompresi dan tidak dikompresi.
Penyerapan data untuk transfer Cloud Storage
Anda dapat menentukan cara data dimuat ke BigQuery dengan memilih Preferensi Tulis di konfigurasi transfer saat menyiapkan transfer Cloud Storage.
Ada dua jenis preferensi tulis yang tersedia, transfer inkremental dan transfer terpotong.Transfer inkremental
Konfigurasi transfer dengan preferensi tulis APPEND
atau WRITE_APPEND
,
yang juga disebut transfer inkremental, secara bertahap menambahkan data baru
setelah transfer sebelumnya yang berhasil ke tabel tujuan
BigQuery. Saat konfigurasi transfer berjalan dengan preferensi tulis APPEND
,
BigQuery Data Transfer Service
akan memfilter file yang telah diubah setelah
proses transfer sebelumnya yang berhasil. Untuk menentukan kapan file diubah, BigQuery Data Transfer Service akan mencari properti "waktu terakhir diubah"
dalam metadata file. Misalnya, BigQuery Data Transfer Service melihat properti stempel waktu updated
dalam file Cloud Storage. Jika
BigQuery Data Transfer Service menemukan file dengan "waktu terakhir diubah" yang muncul
setelah stempel waktu transfer terakhir yang berhasil,
BigQuery Data Transfer Service akan mentransfer file tersebut dalam transfer inkremental.
Untuk mendemonstrasikan cara kerja transfer inkremental, perhatikan contoh transfer
Cloud Storage berikut. Pengguna membuat file dalam
bucket Cloud Storage pada waktu 2023-07-01T00:00Z bernama file_1
. Stempel waktu
updated
untuk file_1
adalah
waktu file dibuat. Pengguna kemudian
membuat transfer inkremental dari bucket Cloud Storage,
yang dijadwalkan untuk dijalankan satu kali setiap hari pada pukul 03.00Z, mulai dari 2023-07-01T03:00Z.
- Pada 2023-07-01T03:00Z, proses transfer pertama dimulai. Karena ini adalah transfer pertama
yang dijalankan untuk konfigurasi ini, BigQuery Data Transfer Service mencoba
memuat semua file yang cocok dengan URI sumber ke dalam tabel
BigQuery tujuan. Proses transfer berhasil dan
BigQuery Data Transfer Service berhasil memuat
file_1
ke tabel BigQuery tujuan. - Proses transfer berikutnya, pada 2023-07-02T03:00Z, tidak mendeteksi file dengan
properti stempel waktu
updated
lebih besar daripada proses transfer terakhir yang berhasil (2023-07-01T03:00Z). Proses transfer berhasil tanpa memuat data tambahan ke tabel BigQuery tujuan.
Contoh sebelumnya menunjukkan cara BigQuery Data Transfer Service melihat
properti stempel waktu updated
dari file sumber untuk menentukan apakah ada perubahan
yang dilakukan pada file sumber, dan untuk mentransfer perubahan tersebut jika ada yang terdeteksi.
Dengan mengikuti contoh yang sama, misalkan pengguna kemudian membuat file lain di
bucket Cloud Storage pada 2023-07-03T00:00Z, bernama file_2
. Stempel waktu
updated
untuk file_2
adalah
waktu file dibuat.
- Proses transfer berikutnya, pada 2023-07-03T03:00Z, mendeteksi bahwa
file_2
memiliki stempel waktuupdated
lebih besar daripada proses transfer terakhir yang berhasil (2023-07-01T03:00Z). Misalkan saat proses transfer dimulai, transfer tersebut gagal karena error sementara. Dalam skenario ini,file_2
tidak dimuat ke dalam tabel BigQuery tujuan. Stempel waktu dari proses transfer terakhir yang berhasil tetap berada pada 2023-07-01T03:00Z. - Proses transfer berikutnya, pada 2023-07-04T03:00Z, mendeteksi bahwa
file_2
memiliki stempel waktuupdated
lebih besar daripada proses transfer terakhir yang berhasil (2023-07-01T03:00Z). Kali ini, proses transfer selesai tanpa masalah, sehingga berhasil memuatfile_2
ke tabel BigQuery tujuan. - Proses transfer berikutnya, pada 2023-07-05T03:00Z, tidak mendeteksi file dengan
stempel waktu
updated
lebih besar dari proses transfer terakhir yang berhasil (2023-07-04T03:00Z). Proses transfer berhasil tanpa memuat data tambahan ke tabel BigQuery tujuan.
Contoh sebelumnya menunjukkan bahwa saat transfer gagal, tidak ada file yang ditransfer ke tabel tujuan BigQuery. Setiap perubahan file akan ditransfer pada proses transfer berikutnya yang berhasil. Setiap transfer yang berhasil setelah transfer yang gagal tidak akan menyebabkan data duplikat. Jika transfer gagal, Anda juga dapat memilih untuk memicu transfer secara manual di luar waktu yang dijadwalkan secara berkala.
Transfer terpotong
Konfigurasi transfer dengan preferensi tulis MIRROR
atau WRITE_TRUNCATE
,
yang juga disebut transfer terpotong, akan menimpa data di
tabel tujuan BigQuery selama setiap proses transfer dengan data
dari semua file yang cocok dengan URI sumber. MIRROR
menimpa salinan baru
data di tabel tujuan. Jika tabel tujuan menggunakan dekorator
partisi, proses transfer hanya akan menimpa data di partisi yang ditentukan. Tabel
tujuan dengan dekorator partisi memiliki format
my_table${run_date}
—misalnya, my_table$20230809
.
Mengulangi transfer inkremental atau transfer terpotong yang sama dalam satu hari tidak akan menyebabkan data duplikat. Namun, jika Anda menjalankan beberapa konfigurasi transfer berbeda yang memengaruhi tabel tujuan BigQuery yang sama, hal ini dapat menyebabkan BigQuery Data Transfer Service menduplikasi data.
Jalur resource Cloud Storage
Untuk memuat data dari sumber data Cloud Storage, Anda harus memberikan jalur ke data tersebut.
Jalur resource Cloud Storage berisi nama bucket dan objek (nama file) Anda. Misalnya, jika bucket Cloud Storage bernama
mybucket
dan file datanya bernama myfile.csv
, jalur resource-nya adalah
gs://mybucket/myfile.csv
.
BigQuery tidak mendukung jalur resource Cloud Storage
yang mencakup beberapa garis miring berturut-turut setelah garis miring ganda di awal.
Nama objek Cloud Storage dapat berisi beberapa karakter garis miring ("/")
berturut-turut. Namun, BigQuery mengonversi beberapa garis miring berturut-turut
menjadi satu garis miring. Misalnya, jalur resource berikut, meskipun
valid di Cloud Storage, tidak berfungsi di BigQuery:
gs://bucket/my//object//name
.
Untuk mengambil jalur resource Cloud Storage:
Buka Konsol Cloud Storage.
Jelajahi lokasi objek (file) yang berisi data sumber.
Klik nama objek.
Halaman Detail objek akan terbuka.
Salin nilai yang diberikan di kolom gsutil URI, yang dimulai dengan
gs://
.
Dukungan karakter pengganti untuk jalur resource Cloud Storage
Jika data Cloud Storage dipisahkan menjadi beberapa file yang memiliki nama dasar yang sama, Anda dapat menggunakan karakter pengganti di jalur resource saat memuat data.
Untuk menambahkan karakter pengganti ke jalur resource Cloud Storage, tambahkan tanda bintang (*) ke nama dasar. Misalnya, jika Anda memiliki dua file bernama
fed-sample000001.csv
dan fed-sample000002.csv
, jalur resource-nya adalah
gs://mybucket/fed-sample*
. Karakter pengganti ini kemudian dapat digunakan di Konsol Google Cloud atau Google Cloud CLI.
Anda dapat menggunakan beberapa karakter pengganti untuk objek (nama file) dalam bucket. Karakter pengganti dapat muncul di mana saja dalam nama objek.
Karakter pengganti tidak memperluas direktori dalam gs://bucket/
. Misalnya,
gs://bucket/dir/*
akan menemukan file dalam direktori dir
, tetapi tidak menemukan
file dalam subdirektori gs://bucket/dir/subdir/
.
Anda juga tidak dapat mencocokkan imbuhan tanpa karakter pengganti. Misalnya,
gs://bucket/dir
tidak cocok dengan gs://bucket/dir/file.csv
atau
gs://bucket/file.csv
Namun, Anda dapat menggunakan beberapa karakter pengganti untuk nama file dalam bucket.
Misalnya, gs://bucket/dir/*/*.csv
cocok dengan
gs://bucket/dir/subdir/file.csv
.
Untuk mengetahui contoh dukungan karakter pengganti yang dikombinasikan dengan nama tabel berparameter, lihat Parameter runtime dalam transfer.
Pertimbangan lokasi
Bucket Cloud Storage Anda harus berada di region atau multi-region yang kompatibel dengan region atau multi-region dari set data tujuan di BigQuery.
- Jika set data BigQuery Anda berada di multi-region, bucket Cloud Storage yang berisi data yang ditransfer harus berada di multi-region yang sama atau di lokasi yang terdapat dalam multi-region. Misalnya, jika set data BigQuery Anda berada di multi-region `UE`, bucket Cloud Storage dapat berada di region Belgia `europe-west1`, yang berada di dalam Uni Eropa.
- Jika set data Anda berada di suatu region, bucket Cloud Storage Anda harus berada di region yang sama. Misalnya, jika set data Anda berada di region Tokyo `asia-northeast1`, bucket Cloud Storage Anda tidak boleh berada di multi-region `ASIA`.
Untuk mengetahui informasi mendetail tentang transfer dan region, lihat Lokasi dan transfer set data.
Untuk mengetahui informasi selengkapnya tentang lokasi Cloud Storage, lihat Lokasi bucket dalam dokumentasi Cloud Storage.
Harga
Kuota & batas BigQuery Standar untuk tugas pemuatan berlaku.
Setelah data ditransfer ke BigQuery, harga standar penyimpanan dan kueri BigQuery berlaku.
Data tidak akan otomatis dihapus dari bucket Cloud Storage setelah diupload ke BigQuery, kecuali jika Anda menyatakan penghapusan saat menyiapkan transfer. Lihat Menyiapkan transfer Cloud Storage.
Lihat Halaman harga transfer kami untuk mengetahui detailnya.
Kuota dan batas
BigQuery Data Transfer Service menggunakan tugas pemuatan untuk memuat data Cloud Storage ke BigQuery.
Semua Kuota dan batas BigQuery pada tugas pemuatan berlaku untuk tugas pemuatan Cloud Storage berulang, dengan pertimbangan tambahan berikut:
Nilai | Batas |
---|---|
Ukuran maksimum per proses transfer tugas pemuatan | 15 TB |
Jumlah file maksimum per transfer yang dijalankan | 10.000 file |
Langkah berikutnya
- Pelajari cara menyiapkan transfer Cloud Storage.
- Pelajari parameter runtime di transfer Cloud Storage.
- Pelajari BigQuery Data Transfer Service lebih lanjut.