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:

  1. Di konsol Cloud, buka halaman Konektor Integrasi > Koneksi, lalu pilih atau buat project Google Cloud.

    Buka halaman Koneksi

  2. Klik + CREATE NEW untuk membuka halaman Create Connection.
  3. Di bagian Location, pilih lokasi untuk koneksi.
    1. Region: Pilih lokasi dari menu drop-down.

      Untuk mengetahui daftar semua region yang didukung, lihat Lokasi.

    2. Klik NEXT.
  4. Di bagian Connection Details, selesaikan tindakan berikut:
    1. Konektor: Pilih BigQuery dari menu drop-down Konektor yang tersedia.
    2. Versi konektor: Pilih versi Konektor dari menu drop-down versi yang tersedia.
    3. 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.
    4. Secara opsional, masukkan Description untuk instance koneksi.
    5. Secara opsional, aktifkan Cloud Logging, lalu pilih level log. Secara default, level log ditetapkan ke Error.
    6. Service Account: Pilih akun layanan yang memiliki peran yang diperlukan.
    7. 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.

    8. Project ID: ID project Google Cloud tempat data berada.
    9. ID Set Data: ID Set Data BigQuery.
    10. 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.

    11. 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.
        1. Klik + Tambahkan tujuan.
        2. Pilih Jenis Tujuan.
          • Alamat host: Tentukan nama host atau alamat IP tujuan.

            Jika Anda ingin membuat koneksi pribadi ke sistem backend, lakukan langkah berikut:

    12. Secara opsional, klik + TAMBAHKAN LABEL untuk menambahkan label ke Koneksi dalam bentuk pasangan kunci/nilai.
    13. Klik NEXT.
  5. Di bagian Authentication, masukkan detail autentikasi.
    1. Pilih apakah akan melakukan autentikasi dengan OAuth 2.0 - Kode otorisasi atau melanjutkan tanpa autentikasi.

      Untuk memahami cara mengonfigurasi autentikasi, lihat Mengonfigurasi autentikasi.

    2. Klik NEXT.
  6. Tinjau: Tinjau detail koneksi dan autentikasi Anda.
  7. 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:

  1. Di halaman Koneksi, cari koneksi yang baru dibuat.

    Perhatikan bahwa Status untuk konektor baru akan menjadi Otorisasi diperlukan.

  2. Klik Otorisasi diperlukan.

    Tindakan ini akan menampilkan panel Edit otorisasi.

  3. Salin nilai Redirect URI ke aplikasi eksternal Anda.
  4. Verifikasi detail otorisasi.
  5. 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:

  1. Klik koneksi yang diperlukan di halaman Koneksi.

    Tindakan ini akan membuka halaman detail koneksi.

  2. Klik Edit untuk mengedit detail koneksi.
  3. Verifikasi detail OAuth 2.0 - Authorization code di bagian Authentication.

    Jika diperlukan, buat perubahan yang diperlukan.

  4. Klik Simpan. Tindakan ini akan mengarahkan Anda ke halaman detail koneksi.
  5. Klik Edit authorization di bagian Authentication. Tindakan ini akan menampilkan panel Authorize.
  6. 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:
  • WRITE_TRUNCATE
  • WRITE_APPEND
  • WRITE_EMPTY
Nilai defaultnya adalah WRITE_TRUNCATE.
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:
  • AVRO
  • NEWLINE_DELIMITED_JSON
  • DATASTORE_BACKUP
  • PARQUET
  • ORC
  • CSV
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:
  • CREATE_IF_NEEDED
  • CREATE_NEVER
Nilai defaultnya adalah CREATE_IF_NEEDED.
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:
  • WRITE_TRUNCATE
  • WRITE_APPEND
  • WRITE_EMPTY
Nilai defaultnya adalah WRITE_APPEND.
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:
  • ISO-8859-1
  • UTF-8
Nilai defaultnya adalah UTF-8.
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:

  1. Ikuti petunjuk mendetail untuk menambahkan tugas konektor.
  2. Saat Anda mengonfigurasi tugas konektor, pilih Tindakan pada jenis tindakan yang ingin Anda lakukan.
  3. Dalam daftar Action, pilih Execute custom query, lalu klik Done.

    gambar yang menampilkan execute-custom-query-action gambar yang menampilkan execute-custom-query-action

  4. Luaskan bagian Task input, lalu lakukan hal berikut:
    1. Di kolom Waktu tunggu setelah, masukkan jumlah detik untuk menunggu hingga kueri dieksekusi.

      Nilai default: 180 detik.

    2. Di kolom Jumlah baris maksimum, masukkan jumlah baris maksimum yang akan ditampilkan dari database.

      Nilai default: 25.

    3. Untuk memperbarui kueri kustom, klik Edit Skrip Kustom. Dialog Script editor akan terbuka.

      gambar yang menampilkan custom-sql-query gambar yang menampilkan custom-sql-query

    4. 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 kolom LastName:

      SELECT * FROM Employees where LastName=?

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

      gambar yang menampilkan add-query-param gambar yang menampilkan add-query-param

      Untuk menambahkan parameter kueri, lakukan tindakan berikut:

      1. Dari daftar Type, pilih jenis data parameter.
      2. Di kolom Value, masukkan nilai parameter.
      3. Untuk menambahkan beberapa parameter, klik + Tambahkan Parameter Kueri.

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