Terhubung ke MySQL
Sebagai administrator BigQuery, Anda dapat membuat koneksi untuk mengakses data MySQL. Koneksi ini memungkinkan analis data untuk membuat kueri data di MySQL.
Lingkungan dan versi MySQL yang didukung
Federasi BigQuery mendukung lingkungan deployment MySQL berikut:
- Instance MySQL lokal yang terhubung ke Google Cloud melalui Cloud VPN atau Cloud Interconnect
- Instance MySQL yang dikelola sendiri di Compute Engine
- Instance MySQL yang dihosting di cloud dan dapat diakses melalui alamat IP publik atau lampiran jaringan
Federasi BigQuery mendukung versi MySQL berikut:
- MySQL 8.4 LTS
- MySQL 8.0
Sebelum memulai
Aktifkan API yang diperlukan, konfigurasi database MySQL Anda, dan berikan peran Identity and Access Management yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.
Mengaktifkan BigQuery Connection API.
Jika Anda berencana merutekan traffic melalui jaringan pribadi menggunakan lampiran jaringan, aktifkan juga Compute Engine API.
Di database MySQL, buat pengguna database khusus dengan hak istimewa
SELECTpada tabel atau database yang ingin Anda kueri:CREATE USER 'USER_NAME'@'%' IDENTIFIED BY 'PASSWORD'; GRANT SELECT ON DATABASE_NAME.* TO 'USER_NAME'@'%'; FLUSH PRIVILEGES;
Ganti kode berikut:
USER_NAME: nama pengguna untuk pengguna database.PASSWORD: sandi pengguna database.DATABASE_NAME: nama database MySQL default.
Konfigurasikan konektivitas jaringan ke instance database MySQL Anda dengan melakukan salah satu hal berikut:
- Jika Anda merutekan traffic melalui jaringan pribadi, buat lampiran jaringan di region yang sama dengan koneksi BigQuery Anda. Peering DNS tidak didukung; hubungkan menggunakan alamat IP atau nama host yang dapat di-resolve dalam jaringan VPC Anda.
- Jika Anda terhubung melalui internet publik, tambahkan semua rentang alamat IP Google ke aturan firewall database MySQL Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk terhubung ke MySQL, minta administrator untuk memberi Anda peran IAM berikut:
-
Untuk membuat koneksi:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) di project -
Untuk mengonfigurasi lampiran jaringan:
Compute Admin (
roles/compute.admin) pada project
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menghubungkan BigQuery ke MySQL
Anda dapat menghubungkan BigQuery ke MySQL di konsolGoogle Cloud atau alat command line bq.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel Penjelajah, klik Tambahkan data.
Halaman Add data akan terbuka.
Di panel Filter By, di bagian Data Source Type, pilih Databases.
Atau, di kolom Search for data sources, masukkan
mysql.Di bagian Sumber data unggulan, klik MySQL.
Di bagian Access external data in place, klik kartu solusi BigQuery Federation dengan deskripsi Federated queries to MySQL (bukan kartu Cloud SQL).
Panel External data source akan terbuka.
Di panel External data source, konfigurasikan hal berikut:
- Di kolom Connection ID, masukkan ID koneksi unik (misalnya,
mysql_prod_conn). - Di bagian Location type, pilih Region, lalu pilih region tempat set data BigQuery Anda berada. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
- (Opsional) Di kolom Friendly name, masukkan nama deskriptif untuk koneksi.
- (Opsional) Di kolom Description, masukkan deskripsi untuk resource koneksi ini.
- Di bagian Encryption, pilih Google-managed encryption key, atau pilih Cloud KMS key untuk menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
- Di kolom Host:port, masukkan host dan port server database MySQL dalam format
HOST:PORT(misalnya,10.10.0.2:3306). - Di kolom Username, masukkan pengguna database yang Anda buat di prasyarat.
- Di kolom Password, masukkan sandi pengguna database.
- Di kolom Database, masukkan nama database MySQL default.
- (Opsional) Di kolom Network attachment, jika Anda menggunakan konektivitas pribadi, masukkan jalur resource lampiran jaringan dalam format
projects/PROJECT_ID/regions/NA_REGION/networkAttachments/ATTACHMENT_NAME. - Dalam daftar TLS mode, pilih salah satu mode TLS yang didukung (misalnya, Encrypt data, verify CA and host name (recommended)).
- Dalam daftar Certificate authority (CA), pilih Public CA (Web PKI), atau pilih CA kustom dan tempel sertifikat berformat PEM.
- Di kolom Connection ID, masukkan ID koneksi unik (misalnya,
Klik Create connection.
bq
Gunakan perintah bq mk
dengan flag --connection:
bq mk --connection \ --location=LOCATION \ --project_id=PROJECT_ID \ --connector_configuration '{ "connector_id": "mysql", "endpoint": { "host_port": "HOST_PORT" }, "asset": { "database": "DATABASE" }, "authentication": { "username_password": { "username": "USERNAME", "password": { "plaintext": "PASSWORD" } } }, "tls": { "mode": "TLS_MODE" }, "network": { "private_service_connect": { "network_attachment": "projects/PROJECT_ID/regions/NA_REGION/networkAttachments/ATTACHMENT_NAME" } } }' \ CONNECTION_ID
Ganti kode berikut:
LOCATION: region BigQuery (misalnya,us-central1) yang cocok dengan set data yang ingin Anda kueri bersama dengan MySQL. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.PROJECT_ID: Project ID Google Cloud Anda.HOST_PORT: host dan port server database MySQL Anda dalam formatHOST:PORT(misalnya,10.10.0.2:3306).DATABASE: nama database MySQL default.USERNAME: pengguna database MySQL.PASSWORD: sandi pengguna database.TLS_MODE: mode enkripsi TLS (ENCRYPT_VERIFY_CA_AND_HOST,ENCRYPT_VERIFY_CA,ENCRYPT_VERIFY_NONE, atauDISABLE). Jika Anda menggunakan sertifikat CA kustom denganENCRYPT_VERIFY_CA_AND_HOSTatauENCRYPT_VERIFY_CA, sertakan objek"private_pki": { "trusted_certificates_pem": "CERT_CONTENT" }di bagian"tls".NA_REGION: region tempat lampiran jaringan Anda berada.ATTACHMENT_NAME: nama lampiran jaringan Anda. Jika terhubung melalui IP publik, hapus objek"network".CONNECTION_ID: ID unik untuk koneksi ini.- (Opsional)
--kms_key_name=KMS_KEY_NAME: kunci enkripsi yang dikelola pelanggan (CMEK). Jika dihilangkan, kredensial akan dilindungi oleh Google-owned and Google-managed encryption keydefault.
Konfigurasi Transport Layer Security (TLS)
Konektor MySQL mendukung Transport Layer Security (TLS) untuk mengenkripsi traffic kueri dalam pengiriman antara BigQuery dan database MySQL Anda.Saat Anda menghubungkan BigQuery ke MySQL, pilih salah satu mode TLS berikut:
Mengenkripsi data, serta memverifikasi Certificate Authority (CA) dan nama host (mode
ENCRYPT_VERIFY_CA_AND_HOST). Melakukan validasi server penuh menggunakan TLS. Mengenkripsi semua data dalam pengiriman, memverifikasi bahwa sertifikat server database ditandatangani oleh CA tepercaya, dan memeriksa apakah nama host yang Anda hubungkan cocok dengan Nama Umum (CN) atau Nama Alternatif Subjek (SAN) dalam sertifikat. Wajib untuk koneksi melalui IP publik.Mengenkripsi data, dan hanya memverifikasi CA (mode
ENCRYPT_VERIFY_CA). Mengenkripsi semua data dalam pengiriman dan memverifikasi bahwa sertifikat server ditandatangani oleh CA tepercaya, tetapi tidak memverifikasi nama host server. Gunakan mode ini jika sertifikat server ditandatangani oleh CA tepercaya, tetapi Anda terhubung menggunakan alamat IP atau nama host yang tidak cocok dengan CN atau SAN sertifikat.Hanya enkripsi (mode
ENCRYPT_VERIFY_NONE). Mengenkripsi semua data yang ditransfer antara BigQuery dan server. Tidak melakukan verifikasi sertifikat atau nama host. Hanya direkomendasikan dalam VPC pribadi.Tidak ada enkripsi atau verifikasi (mode
DISABLE). Tidak mengenkripsi data dan tidak melakukan verifikasi sertifikat atau nama host. Hanya diizinkan saat terhubung melalui lampiran jaringan pribadi dalam jaringan VPC yang dilindungi.
Sertifikat server tepercaya dalam format PEM
Jika Anda menggunakan mode ENCRYPT_VERIFY_CA_AND_HOST atau
mode ENCRYPT_VERIFY_CA, lakukan hal berikut:
- Jika sertifikat server database Anda ditandatangani oleh CA publik (seperti yang disertakan dalam Program Root CA Mozilla, termasuk Let's Encrypt, DigiCert, atau Layanan Kepercayaan Google), Anda tidak perlu memberikan sertifikat. Root certificate untuk CA publik dipercaya secara default.
- Jika Anda menggunakan sertifikat yang ditandatangani oleh CA internal atau pribadi dalam organisasi, atau sertifikat yang ditandatangani sendiri, Anda harus memberikan rantai sertifikat lengkap dalam format Privacy-Enhanced Mail (PEM) di kolom Trusted PEM certificate selama penyiapan koneksi.
Berbagi koneksi dengan pengguna
Anda dapat memberikan peran berikut untuk mengizinkan pengguna membuat kueri data dan mengelola koneksi:
roles/bigquery.connectionUser: memungkinkan pengguna menggunakan koneksi untuk terhubung dengan sumber data eksternal dan menjalankan kueri pada sumber data tersebut.roles/bigquery.connectionAdmin: memungkinkan pengguna mengelola koneksi.
Untuk informasi selengkapnya tentang peran dan izin IAM di BigQuery, baca Peran dan izin bawaan.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Koneksi dicantumkan dalam project Anda, dalam grup yang disebut Connections.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Klik project Anda, klik Connections, lalu pilih koneksi.
Di panel Detail, klik Bagikan untuk membagikan koneksi. Kemudian, lakukan hal berikut:
Dalam dialog Izin koneksi, bagikan koneksi dengan akun utama lain dengan menambahkan atau mengedit akun utama.
Klik Simpan.
bq
Anda tidak dapat berbagi koneksi dengan alat command line bq. Untuk berbagi koneksi, gunakan konsol Google Cloud atau metode BigQuery Connections API untuk melakukannya.
API
Gunakan
metode projects.locations.connections.setIAM
di bagian referensi REST API Koneksi BigQuery, dan
berikan instance resource policy.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Harga
Kueri dan koneksi gabungan dikenai biaya berikut:
- Harga kueri gabungan standar berlaku.
- Penggunaan VPC tunduk pada harga Virtual Private Cloud.
- Penggunaan Cloud VPN tunduk pada harga Cloud VPN.
- Penggunaan Cloud NAT tunduk pada harga Cloud NAT.
Langkah berikutnya
- Pelajari berbagai jenis koneksi.
- Pelajari cara mengelola koneksi.
- Pelajari cara membuat kueri data MySQL.