BigQuery

Gunakan konektor BigQuery untuk melakukan operasi penyisipan, penghapusan, pembaruan, dan pembacaan pada data Google BigQuery. Anda juga dapat menjalankan kueri SQL kustom terhadap data BigQuery. Anda dapat menggunakan konektor BigQuery untuk mengintegrasikan data dari beberapa layanan Google Cloud atau layanan pihak ketiga lainnya, seperti Cloud Storage atau Amazon S3.

Sebelum memulai

Di project Google Cloud Anda, lakukan tugas berikut:

  • Pastikan konektivitas jaringan telah disiapkan. Untuk mengetahui informasi tentang pola jaringan, lihat Konektivitas jaringan.
  • Berikan peran IAM roles/connectors.admin kepada pengguna yang mengonfigurasi konektor.
  • Berikan peran IAM roles/bigquery.dataEditor ke akun layanan yang ingin Anda gunakan untuk konektor.
  • 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.

Membuat koneksi BigQuery

Koneksi khusus untuk sumber data. Artinya, jika Anda memiliki banyak sumber data, Anda harus membuat koneksi terpisah untuk setiap sumber data. Untuk membuat koneksi, lakukan hal berikut:

  1. Di Konsol Cloud, buka halaman Integration Connectors > Connections lalu pilih atau buat project Google Cloud.

    Buka halaman Koneksi

  2. Klik + BUAT BARU untuk membuka halaman Buat Koneksi.
  3. Di bagian Location, pilih lokasi dari daftar Region, lalu klik NEXT.

    Untuk mengetahui daftar semua region yang didukung, lihat Lokasi.

  4. Di bagian Detail Koneksi, lakukan hal berikut:
    1. Pilih BigQuery dari daftar Konektor.
    2. Pilih versi konektor dari daftar Versi konektor.
    3. Di kolom Connection Name, masukkan nama untuk instance koneksi. Nama koneksi dapat berisi huruf kecil, angka, atau tanda hubung. Nama harus diawali dengan huruf dan diakhiri dengan huruf atau angka, dan nama tidak boleh lebih dari 49 karakter.
    4. Secara opsional, aktifkan Cloud Logging, lalu pilih level log. Secara default, level log ditetapkan ke Error.
    5. Akun Layanan: Pilih akun layanan yang memiliki peran yang diperlukan.
    6. (Opsional) Konfigurasi setelan node Koneksi.
      • Jumlah minimum node: Masukkan jumlah minimum node koneksi.
      • Jumlah node maksimum: Masukkan jumlah maksimum node koneksi.

      Node adalah unit (atau replika) koneksi yang memproses transaksi. Jumlah node yang diperlukan untuk memproses lebih banyak transaksi untuk suatu koneksi akan bertambah dan sebaliknya, jumlah node yang diperlukan untuk memproses lebih sedikit transaksi akan berkurang. 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.

    7. Project ID: ID project Google Cloud tempat data berada.
    8. ID Set Data: ID Set Data BigQuery.
    9. Untuk mendukung jenis data Array BigQuery, pilih Support Native Data Types. Jenis array berikut didukung: Varchar, Int64, Float64, Long, Double, Bool, dan Timestamp. Array bertingkat tidak didukung.
    10. (Opsional) Untuk mengonfigurasi server proxy untuk koneksi, pilih Gunakan proxy dan masukkan detail proxy.
      • Proxy Auth Scheme: Pilih jenis autentikasi untuk mengautentikasi dengan server proxy. Jenis autentikasi berikut didukung:
        • Dasar: Autentikasi HTTP dasar.
        • Digest: Autentikasi HTTP Digest.
      • Pengguna Proxy: Nama pengguna yang akan digunakan untuk melakukan autentikasi dengan server proxy.
      • Sandi Proxy: Secret Manager secret dari sandi pengguna.
      • Jenis SSL Proxy: 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 JANGAN PERNAH akan digunakan.
        • Selalu: Koneksi selalu diaktifkan SSL.
        • Tidak Pernah: Koneksi tidak diaktifkan untuk SSL.
        • Tunnel: Koneksi dilakukan melalui proxy tunneling. Server proxy membuka koneksi ke host jarak jauh dan traffic mengalir dua arah 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:

    11. 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 detail koneksi dan autentikasi Anda, lalu klik Buat.

Mengonfigurasi autentikasi

Masukkan detail berdasarkan autentikasi yang ingin Anda gunakan.

  • Tanpa 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, dipisahkan koma. Untuk melihat semua cakupan OAuth 2.0 yang didukung untuk layanan Google yang Anda perlukan, lihat bagian yang relevan di halaman Cakupan OAuth 2.0 untuk Google API.
    • Client secret: Pilih Secret Manager secret. Anda harus membuat rahasia Secret Manager sebelum mengonfigurasi otorisasi ini.
    • Versi secret: Versi secret Secret Manager untuk secret klien.

    Untuk jenis autentikasi Authorization code, setelah membuat koneksi, Anda harus mengizinkan koneksi.

Mengizinkan koneksi

Jika Anda menggunakan kode otorisasi OAuth 2.0 untuk mengautentikasi koneksi, selesaikan tugas berikut setelah Anda membuat koneksi.

  1. Di halaman Koneksi, temukan 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 Anda menggunakan jenis autentikasi Authorization code dan telah melakukan perubahan konfigurasi di BigQuery, Anda harus mengotorisasi ulang koneksi BigQuery. Untuk memberikan kembali otorisasi 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, lakukan perubahan yang diperlukan.

  4. Klik Simpan. Tindakan ini akan mengarahkan Anda ke halaman detail koneksi.
  5. Klik Edit otorisasi di bagian Autentikasi. Tindakan ini akan menampilkan panel Authorize.
  6. Klik Otorisasi.

    Jika otorisasi berhasil, status koneksi akan disetel ke Aktif di halaman Koneksi.

Menggunakan koneksi BigQuery dalam integrasi

Setelah Anda membuat koneksi, koneksi tersebut akan tersedia di Apigee Integration dan Application Integration. 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.

Tindakan

Bagian ini menjelaskan tindakan yang tersedia di konektor BigQuery.

Hasil semua operasi dan tindakan entitas akan tersedia sebagai respons JSON dalam parameter respons tugas Connectors connectorOutputPayload setelah Anda menjalankan integrasi.

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 region 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 region AS atau Uni Eropa.

Tindakan InsertJob

Tindakan ini memungkinkan Anda menyisipkan tugas BigQuery, yang kemudian dapat dipilih untuk mengambil hasil kueri.

Tabel berikut menjelaskan parameter input tindakan InsertJob.

Nama parameter Jenis data Deskripsi
Kueri String Kueri yang akan dikirimkan ke BigQuery. Kolom ini wajib diisi.
IsDML String Harus disetel ke true jika kuerinya 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 memangkas hasil yang ada, menambahkan hasil yang ada, atau menulis hanya jika tabel kosong. Berikut adalah nilai yang didukung:
  • WRITE_TRUNCATE
  • WRITE_APPEND
  • WRITE_EMPTY
Nilai defaultnya adalah WRITE_TRUNCATE.
DryRun String Menentukan apakah eksekusi tugas merupakan uji coba.
MaximumBytesBilled String Menentukan byte maksimum yang dapat diproses oleh tugas. BigQuery 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 dalam 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 dipahami 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 dan bucket partisi rentang.
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; memangkas hasil yang ada, menambahkan hasil yang ada, atau menulis hanya jika 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 merupakan uji coba. Nilai defaultnya adalah false.
MaximumBadRecords String Menentukan jumlah data yang dapat tidak valid sebelum seluruh tugas dibatalkan. Secara default, semua data harus valid. Nilai defaultnya adalah 0.
IgnoreUnknownValues String Menentukan apakah kolom yang tidak diketahui harus diabaikan dalam file input atau diperlakukan sebagai error. Secara default, pelanggaran ini dianggap 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. 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 diberikan, 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 dikutip dalam file CSV. Dapat disetel ke kosong untuk menonaktifkan pengutipan. 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, di jenis tindakan yang ingin Anda lakukan, pilih Tindakan.
  3. Dalam daftar Tindakan, pilih Jalankan kueri kustom, lalu klik Selesai.

    Gambar yang menampilkan tindakan execute-custom-query Gambar yang menampilkan tindakan execute-custom-query

  4. Luaskan bagian Input tugas, 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. Dalam dialog Editor skrip, masukkan kueri SQL, lalu klik Simpan.

      Anda dapat menggunakan tanda tanya (?) dalam pernyataan SQL untuk merepresentasikan 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 Anda 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 menggantikan tanda tanya (?) dalam kueri SQL secara berurutan. Misalnya, jika Anda telah menambahkan tiga tanda tanya (?), maka Anda harus menambahkan tiga parameter sesuai urutan.

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

      Untuk menambahkan parameter kueri, lakukan hal berikut:

      1. Dari daftar Jenis, pilih jenis data parameter.
      2. Di kolom Nilai, masukkan nilai parameter.
      3. Untuk menambahkan beberapa parameter, klik + Tambahkan Parameter Kueri.
    6. Tindakan Execute custom query tidak mendukung variabel array.

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 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 melakukan autentikasi ke proxy ProxyServer. Nilai yang didukung adalah: BASIC, DIGEST, NONE
proxy_user STRING Salah Nama pengguna yang akan digunakan untuk melakukan autentikasi 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

Batasan sistem

Konektor BigQuery dapat memproses maksimum 8 transaksi per detik, per node, dan membatasi transaksi apa pun yang melebihi batas ini. Secara default, Integration Connectors mengalokasikan 2 node (untuk ketersediaan yang lebih baik) untuk koneksi.

Untuk mengetahui informasi tentang batas yang berlaku untuk Integration Connectors, 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
  • VARCHAR PANJANG
  • NCHAR
  • NUMERIC
  • NVARCHAR
  • NYATA
  • SMALL INT
  • WAKTU
  • TIMESTAMP
  • TINY INT
  • VARBINARY
  • VARCHAR

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

  • Saat mengambil data untuk pertama kalinya, Anda mungkin mengalami latensi awal sekitar 6 detik. Karena adanya caching, tidak ada latensi untuk permintaan berikutnya. Latensi ini dapat berulang saat cache berakhir.

Mendapatkan bantuan dari komunitas Google Cloud

Anda dapat memposting pertanyaan dan mendiskusikan konektor ini di komunitas Google Cloud di Forum Cloud.

Langkah berikutnya