BigQuery
Konektor BigQuery memungkinkan Anda melakukan operasi penyisipan, penghapusan, pembaruan, dan pembacaan pada data Google BigQuery.
Sebelum memulai
Sebelum menggunakan konektor BigQuery, lakukan tugas berikut:
- Di project Google Cloud Anda:
- Pastikan konektivitas jaringan sudah disiapkan. Untuk mengetahui informasi tentang pola jaringan, lihat Konektivitas jaringan.
- Berikan peran IAM roles/connectors.admin kepada pengguna yang mengonfigurasi konektor.
- Berikan peran IAM berikut ke akun layanan yang ingin Anda gunakan untuk konektor:
roles/bigquery.dataEditor
Akun layanan adalah jenis Akun Google khusus yang dimaksudkan untuk mewakili pengguna non-manusia yang perlu diautentikasi dan diberi otorisasi untuk mengakses data di Google API. Jika tidak memiliki akun layanan, Anda harus membuat akun layanan. Untuk informasi selengkapnya, lihat Membuat akun layanan.
- Aktifkan layanan berikut:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
Untuk memahami cara mengaktifkan layanan, lihat Mengaktifkan layanan.
Jika layanan atau izin ini belum diaktifkan untuk project Anda sebelumnya, Anda akan diminta untuk mengaktifkannya saat mengonfigurasi konektor.
Mengonfigurasi konektor
Untuk mengonfigurasi konektor, Anda harus membuat koneksi ke sumber data (sistem backend). Koneksi bersifat khusus untuk sumber data. Artinya, jika memiliki banyak sumber data, Anda harus membuat koneksi terpisah untuk setiap sumber data. Untuk membuat koneksi, lakukan langkah-langkah berikut:
- Di konsol Cloud, buka halaman Konektor Integrasi > Koneksi, lalu pilih atau buat project Google Cloud.
- Klik + CREATE NEW untuk membuka halaman Create Connection.
- Di bagian Location, pilih lokasi untuk koneksi.
- Region: Pilih lokasi dari menu drop-down.
Untuk mengetahui daftar semua region yang didukung, lihat Lokasi.
- Klik NEXT.
- Region: Pilih lokasi dari menu drop-down.
- Di bagian Connection Details, selesaikan tindakan berikut:
- Konektor: Pilih BigQuery dari menu drop-down Konektor yang tersedia.
- Versi konektor: Pilih versi Konektor dari menu drop-down versi yang tersedia.
- Di kolom Connection Name, masukkan nama untuk instance Connection.
Nama koneksi harus memenuhi kriteria berikut:
- Nama koneksi dapat menggunakan huruf, angka, atau tanda hubung.
- Huruf harus berupa huruf kecil.
- Nama koneksi harus diawali dengan huruf dan diakhiri dengan huruf atau angka.
- Nama koneksi tidak boleh melebihi 49 karakter.
- Secara opsional, masukkan Description untuk instance koneksi.
- Secara opsional, aktifkan Cloud Logging, lalu pilih level log. Secara default, level log ditetapkan ke
Error
. - Service Account: Pilih akun layanan yang memiliki peran yang diperlukan.
- Secara opsional, konfigurasikan Setelan node koneksi:
- Jumlah node minimum: Masukkan jumlah minimum node koneksi.
- Maximum number of nodes: Masukkan jumlah maksimum node koneksi.
Node adalah unit (atau replika) koneksi yang memproses transaksi. Semakin banyak node yang diperlukan untuk memproses lebih banyak transaksi untuk koneksi, dan sebaliknya, semakin sedikit node yang diperlukan untuk memproses lebih sedikit transaksi. Untuk memahami pengaruh node terhadap harga konektor, lihat Harga untuk node koneksi. Jika Anda tidak memasukkan nilai apa pun, secara default, node minimum ditetapkan ke 2 (untuk ketersediaan yang lebih baik) dan node maksimum ditetapkan ke 50.
- Project ID: ID project Google Cloud tempat data berada.
- ID Set Data: ID Set Data BigQuery.
- Untuk mendukung jenis data Array BigQuery, pilih Dukung Jenis Data Native. Jenis Array berikut didukung:
- Varchar
- Int64
- Float64
- Long
- Ganda
- Bool
- Stempel waktu
Array bertingkat tidak didukung.
- Gunakan proxy: Centang kotak ini untuk mengonfigurasi server proxy untuk koneksi dan konfigurasi nilai berikut:
-
Proxy Auth Scheme: Pilih jenis autentikasi untuk mengautentikasi dengan server proxy. Jenis autentikasi berikut didukung:
- Dasar: Autentikasi HTTP dasar.
- Digest: Ringkasan autentikasi HTTP.
- Pengguna Proxy: Nama pengguna yang akan digunakan untuk mengautentikasi dengan server proxy.
- Sandi Proxy: Secret Secret Manager dari sandi pengguna.
-
Proxy SSL Type: Jenis SSL yang akan digunakan saat terhubung ke server proxy. Jenis autentikasi berikut didukung:
- Otomatis: Setelan default. Jika URL adalah URL HTTPS, opsi Tunnel akan digunakan. Jika URL adalah URL HTTP, opsi NEVER akan digunakan.
- Selalu: Koneksi selalu mengaktifkan SSL.
- Tidak pernah: Koneksi tidak mengaktifkan SSL.
- Tunnel: Koneksi dilakukan melalui proxy tunneling. Server proxy membuka koneksi ke host jarak jauh dan traffic mengalir bolak-balik melalui proxy.
- Di bagian Server Proxy, masukkan detail server proxy.
- Klik + Tambahkan tujuan.
- Pilih Jenis Tujuan.
- Alamat host: Tentukan nama host atau alamat IP tujuan.
Jika Anda ingin membuat koneksi pribadi ke sistem backend, lakukan langkah berikut:
- Buat lampiran layanan PSC.
- Buat lampiran endpoint, lalu masukkan detail lampiran endpoint di kolom Alamat host.
- Alamat host: Tentukan nama host atau alamat IP tujuan.
- Secara opsional, klik + TAMBAHKAN LABEL untuk menambahkan label ke Koneksi dalam bentuk pasangan kunci/nilai.
- Klik NEXT.
-
Di bagian Authentication, masukkan detail autentikasi.
- Pilih apakah akan melakukan autentikasi dengan OAuth 2.0 - Kode otorisasi atau melanjutkan tanpa autentikasi.
Untuk memahami cara mengonfigurasi autentikasi, lihat Mengonfigurasi autentikasi.
- Klik NEXT.
- Pilih apakah akan melakukan autentikasi dengan OAuth 2.0 - Kode otorisasi atau melanjutkan tanpa autentikasi.
- Tinjau: Tinjau detail koneksi dan autentikasi Anda.
- Klik Create.
Mengonfigurasi autentikasi
Masukkan detail berdasarkan autentikasi yang ingin Anda gunakan.
- Tidak Ada Autentikasi: Pilih opsi ini jika Anda tidak memerlukan autentikasi.
- OAuth 2.0 - Kode otorisasi: Pilih opsi ini untuk mengautentikasi menggunakan alur login pengguna berbasis web. Tentukan detail berikut:
- Client ID: Client ID yang diperlukan untuk terhubung ke layanan Google backend Anda.
- Cakupan: Daftar cakupan yang diinginkan yang dipisahkan koma. Untuk melihat semua cakupan OAuth 2.0 yang didukung untuk layanan Google yang diperlukan, lihat bagian yang relevan di halaman Cakupan OAuth 2.0 untuk Google API.
- Rahasia klien: Pilih Rahasia Secret Manager. Anda harus membuat secret Pengelola Secret sebelum mengonfigurasi otorisasi ini.
- Versi secret: Versi secret Secret Manager untuk secret klien.
Untuk jenis autentikasi Authorization code
, setelah membuat koneksi, Anda
harus melakukan beberapa langkah tambahan untuk mengonfigurasi autentikasi. Untuk informasi selengkapnya,
lihat Langkah tambahan setelah pembuatan koneksi.
Langkah-langkah tambahan setelah pembuatan koneksi
Jika memilih OAuth 2.0 - Authorization code
untuk autentikasi, Anda harus melakukan langkah-langkah tambahan berikut setelah membuat koneksi:
- Di halaman Koneksi,
cari koneksi yang baru dibuat.
Perhatikan bahwa Status untuk konektor baru akan menjadi Otorisasi diperlukan.
- Klik Otorisasi diperlukan.
Tindakan ini akan menampilkan panel Edit otorisasi.
- Salin nilai Redirect URI ke aplikasi eksternal Anda.
- Verifikasi detail otorisasi.
- Klik Otorisasi.
Jika otorisasi berhasil, status koneksi akan disetel ke Aktif di halaman Koneksi.
Otorisasi ulang untuk kode otorisasi
Jika menggunakan jenis autentikasi Authorization code
dan telah melakukan perubahan konfigurasi di BigQuery,
Anda harus memberikan otorisasi ulang ke koneksi BigQuery. Untuk memberikan otorisasi ulang pada koneksi, lakukan langkah-langkah berikut:
- Klik koneksi yang diperlukan di halaman Koneksi.
Tindakan ini akan membuka halaman detail koneksi.
- Klik Edit untuk mengedit detail koneksi.
- Verifikasi detail OAuth 2.0 - Authorization code di bagian Authentication.
Jika diperlukan, buat perubahan yang diperlukan.
- Klik Simpan. Tindakan ini akan mengarahkan Anda ke halaman detail koneksi.
- Klik Edit authorization di bagian Authentication. Tindakan ini akan menampilkan panel Authorize.
- Klik Otorisasi.
Jika otorisasi berhasil, status koneksi akan disetel ke Aktif di halaman Koneksi.
Entity, operasi, dan tindakan
Semua Konektor Integrasi menyediakan lapisan abstraksi untuk objek aplikasi yang terhubung. Anda hanya dapat mengakses objek aplikasi melalui abstraksi ini. Abstraksi ditampilkan kepada Anda sebagai entitas, operasi, dan tindakan.
- Entity: Entity dapat dianggap sebagai objek, atau kumpulan properti, dalam
aplikasi atau layanan yang terhubung. Definisi entitas berbeda dari konektor ke konektor. Misalnya, dalam konektor database, tabel adalah entitas, dalam
konektor server file, folder adalah entitas, dan dalam konektor sistem pesan,
antrean adalah entitas.
Namun, mungkin konektor tidak mendukung atau memiliki entity apa pun, dalam hal ini, daftar
Entities
akan kosong. - Operasi: Operasi adalah aktivitas yang dapat Anda lakukan pada entity. Anda dapat melakukan
salah satu operasi berikut pada entitas:
Memilih entitas dari daftar yang tersedia akan menghasilkan daftar operasi yang tersedia untuk entitas tersebut. Untuk deskripsi mendetail tentang operasi, lihat operasi entity tugas Konektor. Namun, jika konektor tidak mendukung operasi entitas apa pun, operasi yang tidak didukung tersebut tidak akan tercantum dalam daftar
Operations
. - Tindakan: Tindakan adalah fungsi kelas satu yang tersedia untuk integrasi
melalui antarmuka konektor. Tindakan memungkinkan Anda membuat perubahan pada satu atau beberapa entitas, dan
bervariasi dari satu konektor ke konektor lainnya. Biasanya, tindakan akan memiliki beberapa parameter input, dan parameter
output. Namun, konektor mungkin
tidak mendukung tindakan apa pun, dalam hal ini daftar
Actions
akan kosong.
Batasan sistem
Konektor BigQuery dapat memproses maksimum 8 transaksi per detik, per node, dan memperlambat transaksi apa pun di luar batas ini. Secara default, Konektor Integrasi mengalokasikan 2 node (untuk ketersediaan yang lebih baik) untuk koneksi.
Untuk mengetahui informasi tentang batas yang berlaku untuk Konektor Integrasi, lihat Batas.
Jenis data yang didukung
Berikut adalah jenis data yang didukung untuk konektor ini:
- ARRAY
- BIGINT
- BINARY
- BIT
- BOOLEAN
- CHAR
- DATE
- DECIMAL
- DOUBLE
- FLOAT
- INTEGER
- LONGN VARCHAR
- LONG VARCHAR
- NCHAR
- NUMERIC
- NVARCHAR
- REAL
- SMALL INT
- WAKTU
- TIMESTAMP
- TINY INT
- VARBINARY
- VARCHAR
Masalah umum
Konektor BigQuery tidak mendukung kunci utama dalam tabel BigQuery. Artinya, Anda tidak dapat
melakukan operasi entity Get, Update, dan Delete menggunakan entityId
.
Atau, Anda dapat menggunakan klausa filter untuk memfilter data berdasarkan ID.
Tindakan
Bagian ini menjelaskan tindakan yang tersedia di konektor BigQuery.
Tindakan CancelJob
Tindakan ini memungkinkan Anda membatalkan tugas BigQuery yang sedang berjalan.
Tabel berikut menjelaskan parameter input tindakan CancelJob
.
Nama parameter | Jenis data | Deskripsi |
---|---|---|
JobId | String | ID tugas yang ingin Anda batalkan. Kolom ini wajib diisi. |
Wilayah | String | Region tempat tugas sedang dijalankan. Hal ini tidak diperlukan jika tugas berada di wilayah AS atau Uni Eropa. |
Tindakan GetJob
Tindakan ini memungkinkan Anda mengambil informasi konfigurasi dan status eksekusi tugas yang ada.
Tabel berikut menjelaskan parameter input tindakan GetJob
.
Nama parameter | Jenis data | Deskripsi |
---|---|---|
JobId | String | ID tugas yang konfigurasinya ingin Anda ambil. Kolom ini wajib diisi. |
Wilayah | String | Region tempat tugas sedang dijalankan. Hal ini tidak diperlukan jika tugas berada di wilayah AS atau Uni Eropa. |
Tindakan InsertJob
Tindakan ini memungkinkan Anda menyisipkan tugas BigQuery, yang kemudian dapat dipilih nanti untuk mengambil hasil kueri.
Tabel berikut menjelaskan parameter input tindakan InsertJob
.
Nama parameter | Jenis data | Deskripsi |
---|---|---|
Kueri | String | Kueri yang akan dikirim ke BigQuery. Kolom ini wajib diisi. |
IsDML | String | Harus ditetapkan ke true jika kueri adalah pernyataan DML atau false jika tidak. Nilai defaultnya adalah false . |
DestinationTable | String | Tabel tujuan untuk kueri, dalam format DestProjectId:DestDatasetId.DestTable . |
WriteDisposition | String | Menentukan cara menulis data ke tabel tujuan; seperti memotong hasil yang ada, menambahkan hasil yang ada, atau hanya menulis saat tabel kosong. Berikut adalah nilai
yang didukung:
|
DryRun | String | Menentukan apakah eksekusi tugas adalah uji coba. |
MaximumBytesBilled | String | Menentukan byte maksimum yang dapat diproses oleh tugas. BigQuery akan membatalkan tugas jika tugas mencoba memproses lebih banyak byte daripada nilai yang ditentukan. |
Wilayah | String | Menentukan region tempat tugas harus dijalankan. |
Tindakan InsertLoadJob
Tindakan ini memungkinkan Anda menyisipkan tugas pemuatan BigQuery, yang menambahkan data dari Google Cloud Storage ke tabel yang ada.
Tabel berikut menjelaskan parameter input tindakan InsertLoadJob
.
Nama parameter | Jenis data | Deskripsi |
---|---|---|
SourceURIs | String | Daftar URI Google Cloud Storage yang dipisahkan spasi. |
SourceFormat | String | Format sumber file. Berikut adalah nilai yang didukung:
|
DestinationTable | String | Tabel tujuan untuk kueri, dalam format DestProjectId.DestDatasetId.DestTable . |
DestinationTableProperties | String | Objek JSON yang menentukan nama, deskripsi, dan daftar label yang mudah digunakan untuk tabel. |
DestinationTableSchema | String | Daftar JSON yang menentukan kolom yang digunakan untuk membuat tabel. |
DestinationEncryptionConfiguration | String | Objek JSON yang menentukan setelan enkripsi KMS untuk tabel. |
SchemaUpdateOptions | String | Daftar JSON yang menentukan opsi yang akan diterapkan saat memperbarui skema tabel tujuan. |
TimePartitioning | String | Objek JSON yang menentukan jenis dan kolom partisi waktu. |
RangePartitioning | String | Objek JSON yang menentukan kolom partisi rentang dan bucket. |
Pengelompokan | String | Objek JSON yang menentukan kolom yang akan digunakan untuk pengelompokan. |
Deteksi otomatis | String | Menentukan apakah opsi dan skema harus ditentukan secara otomatis untuk file JSON dan CSV. |
CreateDisposition | String | Menentukan apakah tabel tujuan perlu dibuat jika belum ada. Berikut
adalah nilai yang didukung:
|
WriteDisposition | String | Menentukan cara menulis data ke tabel tujuan, seperti; memotong hasil yang ada, menambahkan hasil yang ada, atau hanya menulis saat tabel kosong. Berikut adalah
nilai yang didukung:
|
Wilayah | String | Menentukan region tempat tugas harus dijalankan. Resource Google Cloud Storage dan set data BigQuery harus berada di region yang sama. |
DryRun | String | Menentukan apakah eksekusi tugas adalah uji coba. Nilai defaultnya adalah false . |
MaximumBadRecords | String | Menentukan jumlah data yang dapat menjadi tidak valid sebelum seluruh tugas dibatalkan. Secara default, semua kumpulan data harus valid. Nilai defaultnya adalah 0 . |
IgnoreUnknownValues | String | Menentukan apakah kolom yang tidak dikenal harus diabaikan dalam file input atau memperlakukannya sebagai error. Secara default, nilai ini diperlakukan sebagai error. Nilai defaultnya adalah false . |
AvroUseLogicalTypes | String | Menentukan apakah jenis logika AVRO harus digunakan untuk mengonversi data AVRO ke jenis BigQuery. Nilai defaultnya adalah true . |
CSVSkipLeadingRows | String | Menentukan jumlah baris yang akan dilewati di awal file CSV. Ini biasanya digunakan untuk melewati baris header. |
CSVEncoding | String | Jenis encoding file CSV. Berikut adalah nilai yang didukung:
|
CSVNullMarker | String | Jika disediakan, string ini digunakan untuk nilai NULL dalam file CSV. Secara default, file CSV tidak dapat menggunakan NULL. |
CSVFieldDelimiter | String | Karakter yang digunakan untuk memisahkan kolom dalam file CSV. Nilai defaultnya adalah koma (, ). |
CSVQuote | String | Karakter yang digunakan untuk kolom yang diapit tanda kutip dalam file CSV. Dapat disetel ke kosong untuk menonaktifkan tanda petik. Nilai
defaultnya adalah tanda kutip ganda (" ). |
CSVAllowQuotedNewlines | String | Menentukan apakah file CSV dapat berisi baris baru dalam kolom yang dikutip. Nilai defaultnya adalah false . |
CSVAllowJaggedRows | String | Menentukan apakah file CSV dapat berisi kolom yang tidak ada. Nilai defaultnya adalah false . |
DSBackupProjectionFields | String | Daftar kolom JSON yang akan dimuat dari cadangan Cloud Datastore. |
ParquetOptions | String | Objek JSON yang menentukan opsi impor khusus Parquet. |
DecimalTargetTypes | String | Daftar JSON yang memberikan urutan preferensi yang diterapkan ke jenis numerik. |
HivePartitioningOptions | String | Objek JSON yang menentukan opsi partisi sisi sumber. |
Menjalankan kueri SQL kustom
Untuk membuat kueri kustom, ikuti langkah-langkah berikut:
- Ikuti petunjuk mendetail untuk menambahkan tugas konektor.
- Saat Anda mengonfigurasi tugas konektor, pilih Tindakan pada jenis tindakan yang ingin Anda lakukan.
- Dalam daftar Action, pilih Execute custom query, lalu klik Done.
- Luaskan bagian Task input, lalu lakukan hal berikut:
- Di kolom Waktu tunggu setelah, masukkan jumlah detik untuk menunggu hingga kueri dieksekusi.
Nilai default:
180
detik. - Di kolom Jumlah baris maksimum, masukkan jumlah baris maksimum yang akan ditampilkan dari database.
Nilai default:
25
. - Untuk memperbarui kueri kustom, klik Edit Skrip Kustom. Dialog Script editor akan terbuka.
- Di dialog Editor skrip, masukkan kueri SQL, lalu klik Simpan.
Anda dapat menggunakan tanda tanya (?) dalam pernyataan SQL untuk mewakili satu parameter yang harus ditentukan dalam daftar parameter kueri. Misalnya, kueri SQL berikut memilih semua baris dari tabel
Employees
yang cocok dengan nilai yang ditentukan untuk kolomLastName
:SELECT * FROM Employees where LastName=?
- Jika telah menggunakan tanda tanya dalam kueri SQL, Anda harus menambahkan parameter dengan mengklik + Tambahkan Nama Parameter untuk setiap tanda tanya. Saat menjalankan integrasi, parameter ini akan mengganti tanda tanya (?) dalam kueri SQL secara berurutan. Misalnya, jika telah menambahkan tiga tanda tanya (?), Anda harus menambahkan tiga parameter dalam urutan.
Untuk menambahkan parameter kueri, lakukan tindakan berikut:
- Dari daftar Type, pilih jenis data parameter.
- Di kolom Value, masukkan nilai parameter.
- Untuk menambahkan beberapa parameter, klik + Tambahkan Parameter Kueri.
- Di kolom Waktu tunggu setelah, masukkan jumlah detik untuk menunggu hingga kueri dieksekusi.
Menggunakan terraform untuk membuat koneksi
Anda dapat menggunakan resource Terraform untuk membuat koneksi baru.Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk melihat contoh template terraform untuk pembuatan koneksi, lihat contoh template.
Saat membuat koneksi ini menggunakan Terraform, Anda harus menetapkan variabel berikut dalam file konfigurasi Terraform:
Nama parameter | Jenis data | Wajib | Deskripsi |
---|---|---|---|
project_id | STRING | Benar | ID project yang berisi set data BigQuery. Misalnya, myproject. |
dataset_id | STRING | Salah | ID set data set data BigQuery tanpa nama project. Misalnya, mydataset. |
proxy_enabled | BOOLEAN | Salah | Centang kotak ini untuk mengonfigurasi server proxy untuk koneksi. |
proxy_auth_scheme | ENUM | Salah | Jenis autentikasi yang akan digunakan untuk mengautentikasi ke proxy ProxyServer. Nilai yang didukung adalah: BASIC, DIGEST, NONE |
proxy_user | STRING | Salah | Nama pengguna yang akan digunakan untuk mengautentikasi ke proxy ProxyServer. |
proxy_password | SECRET | Salah | Sandi yang akan digunakan untuk melakukan autentikasi ke proxy ProxyServer. |
proxy_ssltype | ENUM | Salah | Jenis SSL yang akan digunakan saat terhubung ke proxy ProxyServer. Nilai yang didukung adalah: AUTO, ALWAYS, NEVER, TUNNEL |
Menggunakan koneksi BigQuery dalam integrasi
Setelah Anda membuat koneksi, koneksi tersebut akan tersedia di Integration Apigee dan Integration Aplikasi. Anda dapat menggunakan koneksi dalam integrasi melalui tugas Konektor.
- Untuk memahami cara membuat dan menggunakan tugas Konektor di Apigee Integration, lihat Tugas konektor.
- Untuk memahami cara membuat dan menggunakan tugas Konektor di Integrasi Aplikasi, lihat Tugas konektor.
Mendapatkan bantuan dari komunitas Google Cloud
Anda dapat memposting pertanyaan dan mendiskusikan konektor ini di komunitas Google Cloud di Cloud Forums.Langkah selanjutnya
- Pahami cara menangguhkan dan melanjutkan koneksi.
- Pahami cara memantau penggunaan konektor.
- Pahami cara melihat log konektor.