Memuat data Microsoft SQL Server ke BigQuery
Anda dapat memuat data dari Microsoft SQL Server ke BigQuery menggunakan konektor BigQuery Data Transfer Service untuk Microsoft SQL Server. Konektor Microsoft SQL Server mendukung pemuatan data dari instance Microsoft SQL Server yang dihosting di lingkungan lokal dan penyedia cloud lainnya, seperti Cloud SQL, Amazon Web Services (AWS), atau Microsoft Azure. Dengan BigQuery Data Transfer Service, Anda dapat membuat tugas transfer data sesuai permintaan dan berulang untuk mentransfer data dari instance Microsoft SQL Server ke BigQuery.
Batasan
Tugas transfer data Microsoft SQL Server tunduk pada batasan berikut:
- Ada sejumlah koneksi serentak yang terbatas ke database Microsoft SQL Server. Oleh karena itu, jumlah transfer serentak ke satu database Microsoft SQL Server juga terbatas. Pastikan jumlah tugas transfer serentak kurang dari jumlah maksimum koneksi serentak yang didukung oleh database Microsoft SQL Server.
- Beberapa jenis data Microsoft SQL Server mungkin dipetakan ke jenis
STRINGdi BigQuery untuk menghindari kehilangan data. Misalnya, jenis numerik tertentu di Microsoft SQL Server yang tidak memiliki presisi dan skala yang ditentukan dapat dipetakan keSTRINGdi BigQuery. Untuk mengetahui informasi selengkapnya, lihat Pemetaan jenis data.
Opsi penyerapan data
Bagian berikut memberikan informasi tentang opsi penyerapan data saat Anda menyiapkan transfer data Microsoft SQL Server.
Konfigurasi TLS
Konektor Microsoft SQL Server mendukung konfigurasi untuk keamanan tingkat transport (TLS) guna mengenkripsi transfer data Anda ke BigQuery. Konektor Microsoft SQL Server mendukung konfigurasi TLS berikut:
- Enkripsi data, dan verifikasi CA dan nama host: Mode ini melakukan validasi server secara penuh menggunakan TLS melalui protokol TCPS. Fitur ini mengenkripsi semua
data dalam pengiriman dan memverifikasi bahwa sertifikat server database ditandatangani
oleh Certificate Authority (CA) tepercaya. Mode ini juga memeriksa apakah
nama host yang Anda hubungkan sama persis dengan Nama Umum (CN) atau
Nama Alternatif Subjek (SAN) pada sertifikat server. Mode ini mencegah penyerang menggunakan sertifikat yang valid untuk domain lain guna meniru server database Anda.
- Jika nama host Anda tidak cocok dengan CN atau SAN sertifikat, koneksi akan gagal. Anda harus mengonfigurasi resolusi DNS agar cocok dengan sertifikat atau menggunakan mode keamanan yang berbeda.
- Gunakan mode ini untuk opsi paling aman guna mencegah serangan person-in-the-middle (PITM).
- Enkripsi data, dan hanya verifikasi CA: Mode ini mengenkripsi semua data menggunakan TLS melalui protokol TCPS dan memverifikasi bahwa sertifikat server ditandatangani oleh CA yang dipercaya klien. Namun, mode ini tidak memverifikasi nama host
server. Mode ini berhasil terhubung selama sertifikat valid dan dikeluarkan oleh VA tepercaya, terlepas dari apakah nama host dalam sertifikat cocok dengan nama host yang Anda hubungi.
- Gunakan mode ini jika Anda ingin memastikan bahwa Anda terhubung ke server yang sertifikatnya ditandatangani oleh CA tepercaya, tetapi nama host tidak dapat diverifikasi atau Anda tidak memiliki kontrol atas konfigurasi nama host.
- Hanya enkripsi: Mode ini mengenkripsi semua data yang ditransfer antara klien dan server. Tidak melakukan validasi sertifikat atau nama host apa pun.
- Mode ini memberikan tingkat keamanan tertentu dengan melindungi data dalam pengiriman, tetapi dapat rentan terhadap serangan PITM.
- Gunakan mode ini jika Anda perlu memastikan semua data dienkripsi, tetapi tidak dapat atau tidak ingin memverifikasi identitas server. Sebaiknya gunakan mode ini saat bekerja dengan VPC pribadi.
- Tidak ada enkripsi atau verifikasi: Mode ini tidak mengenkripsi data apa pun dan
tidak melakukan verifikasi sertifikat atau nama host. Semua data dikirim sebagai
teks biasa.
- Sebaiknya jangan gunakan mode ini di lingkungan tempat data sensitif ditangani.
- Sebaiknya gunakan mode ini hanya untuk tujuan pengujian di jaringan terisolasi yang tidak mengkhawatirkan keamanan.
Sertifikat Server Tepercaya (PEM)
Jika Anda menggunakan mode Enkripsi data, dan verifikasi CA serta nama host atau mode Enkripsi data, dan verifikasi CA, Anda juga dapat memberikan satu atau beberapa sertifikat yang dienkode PEM. Sertifikat ini diperlukan dalam beberapa skenario saat BigQuery Data Transfer Service perlu memverifikasi identitas server database Anda selama koneksi TLS:
- Jika Anda menggunakan sertifikat yang ditandatangani oleh CA pribadi dalam organisasi Anda atau sertifikat yang ditandatangani sendiri, Anda harus memberikan rantai sertifikat lengkap atau satu sertifikat yang ditandatangani sendiri. Hal ini diperlukan untuk sertifikat yang dikeluarkan oleh CA internal layanan penyedia cloud terkelola, seperti Amazon Relational Database Service (RDS).
- Jika sertifikat server database Anda ditandatangani oleh CA publik (misalnya, Let's Encrypt, DigiCert, atau GlobalSign), Anda tidak perlu memberikan sertifikat. Sertifikat root untuk CA publik ini telah diinstal sebelumnya dan dipercaya oleh BigQuery Data Transfer Service.
Anda dapat memberikan sertifikat berenkode PEM di kolom Sertifikat PEM Tepercaya saat membuat konfigurasi transfer Microsoft SQL Server, dengan persyaratan berikut:
- Sertifikat harus berupa rantai sertifikat berenkode PEM yang valid.
- Sertifikat harus benar sepenuhnya. Sertifikat yang tidak ada dalam rantai atau konten yang salah menyebabkan koneksi TLS gagal.
- Untuk satu sertifikat, Anda dapat memberikan satu sertifikat yang ditandatangani sendiri dari server database.
- Untuk rantai sertifikat lengkap yang diterbitkan oleh CA pribadi, Anda harus memberikan rantai kepercayaan lengkap. Hal ini mencakup sertifikat dari server database dan sertifikat CA perantara dan root.
Sebelum memulai
Sebelum dapat menjadwalkan transfer data Microsoft SQL Server, Anda harus memenuhi prasyarat berikut.
Prasyarat Microsoft SQL Server
Anda harus membuat akun pengguna di database Microsoft SQL Server. Untuk mengetahui informasi selengkapnya, lihat Membuat pengguna dengan login.
Prasyarat BigQuery
- Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.
- Buat set data BigQuery untuk menyimpan data Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat transfer data Microsoft SQL Server, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat transfer data Microsoft SQL Server. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat transfer data Microsoft SQL Server:
-
bigquery.transfers.update -
bigquery.datasets.get
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Konfigurasi jaringan
Anda harus menyiapkan konfigurasi jaringan tertentu jika alamat IP publik tidak tersedia untuk koneksi database Microsoft SQL Server. Untuk informasi selengkapnya, lihat bagian berikut:
- Mengonfigurasi koneksi ke instance Google Cloud
- Mengonfigurasi koneksi ke AWS
- Mengonfigurasi koneksi ke Azure
Menyiapkan transfer data Microsoft SQL Server
Pilih salah satu opsi berikut:
Konsol
Buka halaman Data transfers.
Klik Create transfer.
Di bagian Source type, untuk Source, pilih Microsoft SQL Server.
Di bagian Detail sumber data, lakukan hal berikut:
- Untuk Network attachment, pilih lampiran jaringan yang ada atau klik Create Network Attachment.
- Untuk Host, masukkan nama host atau alamat IP database Microsoft SQL Server.
- Untuk Nomor port, masukkan nomor port untuk database Microsoft SQL Server.
- Untuk Nama database, masukkan nama database Microsoft SQL Server.
- Untuk Nama Pengguna, masukkan nama pengguna Microsoft SQL Server yang memulai koneksi database Microsoft SQL Server.
- Untuk Password, masukkan sandi pengguna Microsoft SQL Server yang memulai koneksi database Microsoft SQL Server.
- Untuk TLS Mode, pilih opsi dari menu. Untuk mengetahui informasi selengkapnya tentang mode TLS, lihat Konfigurasi TLS.
- Untuk Sertifikat PEM Tepercaya, masukkan sertifikat publik certificate authority (CA) yang menerbitkan sertifikat TLS server database. Untuk mengetahui informasi selengkapnya, lihat Sertifikat Server Tepercaya (PEM).
- Untuk objek Microsoft SQL Server yang akan ditransfer, jelajahi tabel Microsoft SQL Server atau masukkan secara manual nama tabel yang diperlukan untuk transfer.
Di bagian Destination settings, untuk Dataset, pilih set data yang Anda buat untuk menyimpan data Anda, atau klik Create new dataset dan buat set data yang akan digunakan sebagai set data tujuan.
Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
Di bagian Opsi jadwal, lakukan tindakan berikut:
- Pilih frekuensi pengulangan. Jika memilih opsi Jam, Hari (default), Minggu, atau Bulan, Anda juga harus menentukan frekuensinya. Anda juga dapat memilih opsi Custom untuk membuat frekuensi pengulangan yang lebih spesifik. Jika Anda memilih opsi On-demand, transfer data ini hanya berjalan saat Anda memicu transfer secara manual.
- Jika berlaku, pilih opsi Start now atau Start at a set time dan masukkan tanggal mulai dan waktu proses.
Opsional: Di bagian Opsi notifikasi, lakukan hal berikut:
- Untuk mengaktifkan notifikasi email, klik tombol Notifikasi email ke posisi aktif. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
- Untuk mengonfigurasi notifikasi operasi Pub/Sub untuk transfer Anda, klik tombol Notifikasi Pub/Sub ke posisi aktif. Anda dapat memilih nama topik atau mengklik Buat topik untuk membuatnya.
Opsional: Di bagian Opsi lanjutan, pilih jenis enkripsi untuk transfer ini. Anda dapat memilih kunci Cloud Key Management Service yang dimiliki pelanggan atau Google-owned and Google-managed encryption key. Untuk mengetahui informasi selengkapnya tentang kunci enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Klik Simpan.
bq
Masukkan perintah bq mk
dan berikan flag pembuatan transfer --transfer_config:
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --data_source=DATA_SOURCE \ --display_name=DISPLAY_NAME \ --target_dataset=DATASET \ --params='PARAMETERS'
Ganti kode berikut:
PROJECT_ID(opsional): Google Cloud project ID Anda. Jika tanda--project_idtidak diberikan untuk menentukan project tertentu, project default akan digunakan.DATA_SOURCE: sumber data, yaitusqlserver.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.PARAMETERS: parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Contoh:--params='{"param":"param_value"}'. Berikut adalah parameter untuk transfer Microsoft SQL Server:connector.networkAttachment(opsional): nama lampiran jaringan yang akan dihubungkan ke database Microsoft SQL Server.connector.database: nama database Microsoft SQL Server.connector.endpoint.host: nama host atau alamat IP database.connector.endpoint.port: nomor port database.connector.authentication.username: nama pengguna pengguna database.connector.authentication.password: sandi pengguna database.connector.tls.mode: tentukan konfigurasi TLS yang akan digunakan dengan transfer ini:ENCRYPT_VERIFY_CA_AND_HOSTuntuk mengenkripsi data, dan memverifikasi CA dan nama hostENCRYPT_VERIFY_CAuntuk mengenkripsi data, dan hanya memverifikasi CAENCRYPT_VERIFY_NONEhanya untuk enkripsi dataDISABLEuntuk tidak ada enkripsi atau verifikasi
connector.tls.trustedServerCertificate: (opsional) berikan satu atau beberapa sertifikat yang dienkode PEM. Wajib diisi hanya jika nilaiconnector.tls.modeadalahENCRYPT_VERIFY_CA_AND_HOSTatauENCRYPT_VERIFY_CA.assets: daftar nama tabel Microsoft SQL Server yang akan ditransfer dari database Microsoft SQL Server sebagai bagian dari transfer.
Misalnya, perintah berikut akan membuat transfer Microsoft SQL Server bernama My Transfer:
bq mk \ --transfer_config --target_dataset=mydataset --data_source=sqlserver --display_name='My Transfer' --params='{"assets":["db1/dbo/Department","db1/dbo/Employees"], "connector.authentication.username": "User1", "connector.authentication.password":"ABC12345", "connector.database":"DB1", "connector.endpoint.host":"192.168.0.1", "connector.endpoint.port":"1520", "connector.networkAttachment":"projects/dev-project1/regions/us-central1/networkattachments/na1", "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST", "connector.tls.trustedServerCertificate": "PEM-encoded certificate"}'
Untuk menjalankan transfer data secara manual di luar jadwal reguler, Anda dapat memulai operasi pengisian ulang.
Pemetaan jenis data
Tabel berikut memetakan jenis data Microsoft SQL Server ke jenis data BigQuery yang sesuai:
| Jenis data Microsoft SQL Server | Jenis data BigQuery |
|---|---|
tinyint |
INTEGER |
smallint |
INTEGER |
int |
INTEGER |
bigint |
BIGNUMERIC |
bit |
BOOLEAN |
decimal |
BIGNUMERIC |
numeric |
NUMERIC |
money |
BIGNUMERIC |
smallmoney |
BIGNUMERIC |
float |
FLOAT |
real |
FLOAT |
date |
DATE |
time |
TIME |
datetime2 |
TIMESTAMP |
datetimeoffset |
TIMESTAMP |
datetime |
TIMESTAMP |
smalldatetime |
TIMESTAMP |
char |
STRING |
varchar |
STRING |
text |
STRING |
nchar |
STRING |
nvarchar |
STRING |
ntext |
STRING |
binary |
BYTES |
varbinary |
BYTES |
image |
BYTES |
geography |
STRING |
geometry |
STRING |
hierarchyid |
BYTES |
rowversion |
BYTES |
sql_variant |
BYTES |
uniqueidentifier |
STRING |
xml |
STRING |
json |
STRING |
vector |
STRING |
Jenis data json dan vector hanya didukung di Azure.
Jenis data JSON didukung di database Azure SQL dan instance terkelola Azure SQL yang dikonfigurasi dengan kebijakan update yang selalu terbaru. Jenis data JSON tidak didukung di instance terkelola Azure SQL yang dikonfigurasi dengan kebijakan update Microsoft SQL Server 2022.
Microsoft SQL Server menyimpan JSON sebagai NVARCHAR(MAX), dan bukan sebagai jenis
JSON. Sebaiknya gunakan CHECK (ISJSON(json_col) = 1) untuk validasi,
dan JSON_VALUE() untuk membuat kueri.
Microsoft SQL Server tidak memiliki dukungan vektor untuk jenis data vector. Sebaiknya simpan vektor sebagai array JSON di
NVARCHAR(MAX) dan gunakan JSON_VALUE() untuk ekstraksi, dengan FLOAT perhitungan
manual untuk kesamaan.
Memecahkan masalah
Untuk memecahkan masalah transfer data, lihat Masalah transfer Microsoft SQL Server.
Harga
Tidak ada biaya untuk mentransfer data Microsoft SQL Server ke BigQuery selama fitur ini dalam status Pratinjau.
Langkah berikutnya
- Untuk ringkasan BigQuery Data Transfer Service, lihat Apa yang dimaksud dengan BigQuery Data Transfer Service?.
- Untuk mengetahui informasi tentang cara menggunakan transfer, termasuk mendapatkan informasi tentang konfigurasi transfer, membuat listingan konfigurasi transfer, dan melihat histori pelaksanaan transfer, lihat Mengelola transfer.