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 waktu updated 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 waktu updated lebih besar daripada proses transfer terakhir yang berhasil (2023-07-01T03:00Z). Kali ini, proses transfer selesai tanpa masalah, sehingga berhasil memuat file_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:

  1. Buka Konsol Cloud Storage.

    Konsol Cloud Storage

  2. Jelajahi lokasi objek (file) yang berisi data sumber.

  3. Klik nama objek.

    Halaman Detail objek akan terbuka.

  4. 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