Transfer Penyimpanan Blob
Dengan konektor BigQuery Data Transfer Service untuk Azure Blob Storage, Anda dapat menjadwalkan dan mengelola tugas pemuatan berulang secara otomatis dari Blob Storage ke BigQuery.
Sebelum memulai
Sebelum Anda membuat transfer data Blob Storage, lakukan langkah berikut:
- Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.
- Pilih set data BigQuery yang ada atau buat set data baru untuk menyimpan data Anda.
- Pilih tabel BigQuery yang sudah ada atau buat tabel tujuan baru untuk transfer data Anda, dan tentukan definisi skemanya. Tabel tujuan harus mengikuti aturan penamaan tabel. Nama tabel tujuan juga mendukung parameter.
- Mengambil nama akun penyimpanan Blob Storage, nama container, jalur data (opsional), dan token SAS. Untuk mengetahui informasi tentang cara memberikan akses ke Penyimpanan Blob menggunakan tanda tangan akses bersama (SAS), lihat Tanda tangan akses bersama (SAS).
- Jika Anda membatasi akses ke resource Azure menggunakan firewall Azure Storage, tambahkan pekerja BigQuery Data Transfer Service ke daftar IP yang diizinkan.
- Jika Anda berencana menentukan kunci enkripsi yang dikelola pelanggan (CMEK), pastikan bahwa akun layanan memiliki izin untuk mengenkripsi dan mendekripsi, dan Anda memiliki ID resource kunci Cloud KMS yang diperlukan untuk menggunakan CMEK. Untuk mengetahui informasi tentang cara kerja CMEK dengan BigQuery Data Transfer Service, lihat Menentukan kunci enkripsi dengan transfer.
Izin yang diperlukan
Untuk membuat transfer data Penyimpanan Blob, Anda memerlukan izin Identity and Access Management (IAM) bigquery.transfers.update
. Anda juga memerlukan
izin bigquery.datasets.get
dan bigquery.datasets.update
pada
set data target.
Peran IAM bigquery.admin
yang telah ditentukan mencakup izin yang diperlukan untuk membuat transfer data Penyimpanan Blob.
Untuk mengetahui informasi selengkapnya tentang IAM BigQuery, lihat Kontrol akses dengan IAM.
Untuk memastikan bahwa Anda memiliki izin yang benar di Penyimpanan Blob untuk mengaktifkan transfer data, lihat Tanda tangan akses bersama (SAS).
Jika ingin menyiapkan notifikasi operasi transfer untuk Pub/Sub, Anda harus
memiliki izin pubsub.topics.setIamPolicy
.
Izin Pub/Sub tidak hanya diperlukan untuk notifikasi email. Untuk mengetahui informasi selengkapnya, lihat
Notifikasi operasi BigQuery Data Transfer Service.
Batasan
Transfer data Penyimpanan Blob tunduk pada batasan berikut:
- Waktu interval minimum antar-transfer data berulang adalah 1 jam. Interval default-nya adalah 24 jam.
- Bergantung pada format data sumber Penyimpanan Blob, mungkin ada batasan tambahan:
- Transfer data ke lokasi BigQuery Omni tidak didukung.
Menyiapkan transfer data Penyimpanan Blob
Pilih salah satu opsi berikut:
Konsol
Buka halaman Data transfers di konsol Google Cloud.
Klik
Create transfer.Di halaman Buat transfer, lakukan tindakan berikut:
Di bagian Source type, untuk Source, pilih Azure Blob Storage.
Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer data.
Di bagian Schedule options:
Pilih Repeat frequency. Jika memilih Jam, Hari, Minggu, atau Bulan, Anda juga harus menentukan frekuensinya. Anda juga dapat memilih Custom untuk menentukan frekuensi pengulangan kustom. Jika Anda memilih On-demand, transfer data ini akan berjalan saat Anda memicu transfer secara manual.
Jika berlaku, pilih Start now atau Start at set time dan masukkan tanggal mulai dan waktu proses.
Di bagian Setelan tujuan, untuk Set data, pilih set data yang Anda buat untuk menyimpan data.
Di bagian Detail sumber data, lakukan hal berikut:
- Untuk Destination table, masukkan nama tabel yang Anda buat untuk menyimpan data di BigQuery. Nama tabel tujuan mendukung parameter.
- Untuk Nama akun penyimpanan Azure, masukkan nama akun Penyimpanan Blob.
- Untuk Nama container, masukkan nama container Penyimpanan Blob.
- Untuk Jalur data, masukkan jalur untuk memfilter file yang akan ditransfer. Lihat contoh.
- Untuk token SAS, masukkan token Azure SAS.
- Untuk File format, pilih format data sumber.
- Untuk Write disposition, pilih
WRITE_APPEND
untuk menambahkan data baru secara bertahap ke tabel tujuan, atauWRITE_TRUNCATE
untuk menimpa data di tabel tujuan selama setiap transfer dijalankan.WRITE_APPEND
adalah nilai default untuk Write disposition.
Untuk mengetahui informasi selengkapnya tentang cara BigQuery Data Transfer Service menyerap data menggunakan
WRITE_APPEND
atauWRITE_TRUNCATE
, lihat Penyerapan data untuk Transfer Azure Blob. Untuk mengetahui informasi selengkapnya tentang kolomwriteDisposition
, lihatJobConfigurationLoad
.Di bagian Opsi transfer, lakukan tindakan berikut:
- Untuk Number of errors allowed, masukkan nilai bilangan bulat untuk jumlah maksimum data buruk yang dapat diabaikan. Nilai defaultnya adalah .
- (Opsional) Untuk Jenis target desimal, masukkan daftar yang dipisahkan koma
yang berisi kemungkinan jenis data SQL yang dapat dikonversi dari
nilai desimal di data sumber. Jenis data SQL yang dipilih untuk
konversi bergantung pada kondisi berikut:
- Dalam urutan
NUMERIC
,BIGNUMERIC
, danSTRING
, jenis akan dipilih jika berada dalam daftar yang Anda tentukan dan jika mendukung presisi dan skala. - Jika tidak satu pun jenis data yang tercantum yang mendukung presisi dan skala tersebut, jenis data yang mendukung rentang terluas dalam daftar yang Anda tentukan akan dipilih. Jika nilai melebihi rentang yang didukung saat membaca data sumber, error akan ditampilkan.
- Jenis data
STRING
mendukung semua nilai presisi dan skala. - Jika kolom ini dibiarkan kosong, jenis data akan ditetapkan secara default ke
NUMERIC,STRING
untuk ORC, danNUMERIC
untuk format file lainnya. - Kolom ini tidak boleh berisi jenis data duplikat.
- Urutan jenis data yang Anda cantumkan akan diabaikan.
- Dalam urutan
Jika Anda memilih CSV atau JSON sebagai format file, di bagian JSON, CSV, centang Abaikan nilai yang tidak diketahui untuk menerima baris yang berisi nilai yang tidak cocok dengan skema.
Jika Anda memilih CSV sebagai format file, di bagian CSV, masukkan opsi CSV tambahan untuk memuat data.
Di bagian Opsi notifikasi, Anda dapat memilih untuk mengaktifkan notifikasi email dan notifikasi Pub/Sub.
- Saat Anda mengaktifkan notifikasi email, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
- Saat mengaktifkan notifikasi Pub/Sub, pilih nama topik yang akan dipublikasikan atau klik Buat topik untuk membuatnya.
Jika Anda menggunakan CMEK, di bagian Advanced options, pilih Customer-managed key. Daftar CMEK yang tersedia akan muncul dan dapat Anda pilih. Untuk mengetahui informasi cara kerja CMEK dengan BigQuery Data Transfer Service, lihat Menentukan kunci enkripsi dengan transfer.
Klik Simpan.
bq
Gunakan perintah bq mk --transfer_config
untuk membuat transfer Penyimpanan Blob:
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --data_source=DATA_SOURCE \ --display_name=DISPLAY_NAME \ --target_dataset=DATASET \ --destination_kms_key=DESTINATION_KEY \ --params=PARAMETERS
Ganti kode berikut:
PROJECT_ID
: (Opsional) project ID yang berisi set data target Anda. Jika tidak ditentukan, project default Anda akan digunakan.DATA_SOURCE
:azure_blob_storage
.DISPLAY_NAME
: nama tampilan untuk konfigurasi transfer data. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.DATASET
: set data target untuk konfigurasi transfer data.DESTINATION_KEY
: (Opsional) ID resource kunci Cloud KMS— misalnya,projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name
.PARAMETERS
: parameter untuk konfigurasi transfer data, yang tercantum dalam format JSON. Contoh,--params={"param1":"value1", "param2":"value2"}
. Berikut adalah parameter untuk transfer data Blob Storage:destination_table_name_template
: Wajib diisi. Nama tabel tujuan Anda.storage_account
: Wajib diisi. Nama akun Penyimpanan Blob.container
: Wajib diisi. Nama container Penyimpanan Blob.data_path
: Opsional. Jalur untuk memfilter file yang akan ditransfer. Lihat contohsas_token
: Wajib diisi. Token Azure SAS.file_format
: Opsional. Jenis file yang ingin ditransfer:CSV
,JSON
,AVRO
,PARQUET
, atauORC
. Nilai defaultnya adalahCSV
.write_disposition
: Opsional. PilihWRITE_APPEND
untuk menambahkan data ke tabel tujuan, atauWRITE_TRUNCATE
untuk menimpa data di tabel tujuan. Nilai defaultnya adalahWRITE_APPEND
.max_bad_records
: Opsional. Jumlah catatan buruk yang diizinkan. Nilai defaultnya adalah 0.decimal_target_types
: Opsional. Daftar yang dipisahkan koma yang berisi kemungkinan jenis data SQL yang dapat dikonversi dari nilai desimal di data sumber. Jika kolom ini tidak disediakan, jenis data akan ditetapkan secara default keNUMERIC,STRING
untuk ORC, danNUMERIC
untuk format file lainnya.ignore_unknown_values
: Opsional, dan diabaikan jikafile_format
bukanJSON
atauCSV
. Tetapkan ketrue
untuk menerima baris yang berisi nilai yang tidak cocok dengan skema.field_delimiter
: Opsional, dan hanya berlaku jikafile_format
adalahCSV
. Karakter yang memisahkan kolom. Nilai defaultnya adalah,
.skip_leading_rows
: Opsional, dan hanya berlaku jikafile_format
adalahCSV
. Menunjukkan jumlah baris header yang tidak ingin Anda impor. Nilai defaultnya adalah 0.allow_quoted_newlines
: Opsional, dan hanya berlaku jikafile_format
adalahCSV
. Menunjukkan apakah akan mengizinkan baris baru dalam kolom yang dikutip atau tidak.allow_jagged_rows
: Opsional, dan hanya berlaku jikafile_format
adalahCSV
. Menunjukkan apakah akan menerima baris yang tidak memiliki kolom opsional di akhir. Nilai-nilai yang tidak ada akan diisi denganNULL
.
Misalnya, kode berikut akan membuat transfer data Blob Storage
yang disebut mytransfer
:
bq mk \ --transfer_config \ --data_source=azure_blob_storage \ --display_name=mytransfer \ --target_dataset=mydataset \ --destination_kms_key=projects/myproject/locations/us/keyRings/mykeyring/cryptoKeys/key1 --params={"destination_table_name_template":"mytable", "storage_account":"myaccount", "container":"mycontainer", "data_path":"myfolder/*.csv", "sas_token":"my_sas_token_value", "file_format":"CSV", "max_bad_records":"1", "ignore_unknown_values":"true", "field_delimiter":"|", "skip_leading_rows":"1", "allow_quoted_newlines":"true", "allow_jagged_rows":"false"}
API
Gunakan metode projects.locations.transferConfigs.create
dan berikan instance resource TransferConfig
.
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.
Menentukan kunci enkripsi dengan transfer
Anda dapat menentukan kunci enkripsi yang dikelola pelanggan (CMEK) guna mengenkripsi data untuk proses transfer. Anda dapat menggunakan CMEK untuk mendukung transfer dari Azure Blob Storage.Saat Anda menentukan CMEK dengan transfer, BigQuery Data Transfer Service akan menerapkan CMEK ke cache perantara data yang diserap dalam disk, sehingga seluruh alur kerja transfer data mematuhi CMEK.
Anda tidak dapat memperbarui transfer yang sudah ada untuk menambahkan CMEK jika transfer tersebut awalnya tidak dibuat dengan CMEK. Misalnya, Anda tidak dapat mengubah tabel tujuan yang awalnya dienkripsi secara default menjadi kini dienkripsi dengan CMEK. Sebaliknya, Anda juga tidak dapat mengubah tabel tujuan yang dienkripsi CMEK agar memiliki jenis enkripsi yang berbeda.
Anda dapat memperbarui CMEK untuk transfer jika konfigurasi transfer awalnya dibuat dengan enkripsi CMEK. Saat Anda memperbarui CMEK untuk konfigurasi transfer, BigQuery Data Transfer Service akan menyebarkan CMEK ke tabel tujuan pada proses transfer berikutnya. Di sini, BigQuery Data Transfer Service akan mengganti CMEK yang sudah usang dengan CMEK baru selama proses transfer. Untuk informasi selengkapnya, lihat Memperbarui transfer.
Anda juga dapat menggunakan kunci default project. Saat Anda menentukan kunci default project dengan transfer, BigQuery Data Transfer Service akan menggunakan kunci default project sebagai kunci default untuk setiap konfigurasi transfer baru.
Memecahkan masalah penyiapan transfer
Jika Anda mengalami masalah saat menyiapkan transfer data, lihat Masalah transfer Penyimpanan Blob.
Langkah selanjutnya
- Pelajari parameter runtime dalam transfer lebih lanjut.
- Pelajari BigQuery Data Transfer Service lebih lanjut.
- Pelajari cara memuat data dengan operasi lintas-cloud.