Memuat data Oracle ke BigQuery
Untuk menjadwalkan transfer data berulang dari database Oracle ke BigQuery, Anda membuat konfigurasi transfer untuk menentukan objek data yang akan ditransfer, dan seberapa sering transfer data akan dijadwalkan. Setelah Anda set up konfigurasi transfer, BigQuery Data Transfer Service akan mentransfer data terbaru ke tabel BigQuery sesuai jadwal yang ditentukan.
Untuk mempelajari cara kerja transfer Oracle, lihat Pengantar transfer data Oracle.
Batasan
Transfer Oracle tunduk pada batasan berikut:
- Jumlah maksimum koneksi serentak ke database Oracle dibatasi, dan akibatnya, jumlah operasi transfer serentak ke satu database Oracle dibatasi hingga jumlah maksimum tersebut.
- Anda harus menyiapkan lampiran jaringan jika
IP publik tidak tersedia untuk koneksi database Oracle,
dengan persyaratan berikut:
- Sumber data harus dapat diakses dari subnet tempat lampiran jaringan berada.
- Lampiran jaringan tidak boleh berada di subnet dalam rentang
240.0.0.0/24. - Lampiran jaringan tidak dapat dihapus jika ada koneksi aktif ke lampiran tersebut. Untuk menghapus lampiran jaringan, hubungi Cloud Customer Care.
- Untuk multi-region
us, lampiran jaringan harus berada dius-central1region. Untuk multi-regioneu, lampiran jaringan harus berada dieurope-west4region.
- Waktu interval minimum antar-transfer Oracle berulang adalah 15 menit. Interval default untuk transfer berulang adalah 24 jam.
- Satu konfigurasi transfer hanya dapat mendukung satu operasi transfer data pada waktu tertentu. Jika transfer data kedua dijadwalkan untuk berjalan sebelum transfer pertama selesai, hanya transfer data pertama yang akan selesai, sedangkan transfer data lainnya yang tumpang tindih dengan transfer pertama akan dilewati.
- Untuk menghindari transfer yang dilewati dalam satu konfigurasi transfer, sebaiknya tingkatkan durasi waktu antara transfer data besar dengan mengonfigurasi Repeat frequency.
- Selama transfer data, konektor Oracle mengidentifikasi kolom kunci yang diindeks dan dipartisi untuk mentransfer data Anda dalam batch paralel. Oleh karena itu, sebaiknya tentukan kolom kunci utama atau gunakan kolom yang diindeks dalam tabel Anda untuk meningkatkan performa dan mengurangi tingkat error dalam transfer data Anda.
- Jika Anda memiliki batasan kunci utama atau yang diindeks, hanya jenis kolom berikut yang didukung untuk membuat batch paralel:
INTEGERTINYINTSMALLINTFLOATREALDOUBLENUMERICBIGINTDECIMALDATE
- Transfer data Oracle yang tidak menggunakan kolom kunci utama atau yang diindeks tidak dapat mendukung lebih dari 2.000.000 data per tabel.
- Jika Anda memiliki batasan kunci utama atau yang diindeks, hanya jenis kolom berikut yang didukung untuk membuat batch paralel:
- Jika network attachment dan instance virtual machine (VM) yang dikonfigurasi berada di region yang berbeda, mungkin ada pergerakan data lintas-region saat Anda mentransfer data dari Oracle.
Batasan transfer inkremental
Transfer Oracle inkremental tunduk pada batasan berikut:- Anda hanya dapat memilih kolom
TIMESTAMPsebagai kolom watermark. - Penyerapan inkremental hanya didukung untuk aset dengan kolom watermark yang valid.
- Nilai dalam kolom watermark harus meningkat secara monoton.
- Transfer inkremental tidak dapat menyinkronkan operasi penghapusan dalam tabel sumber.
- Satu konfigurasi transfer hanya dapat mendukung penyerapan inkremental atau penuh.
- Anda tidak dapat memperbarui objek dalam daftar
assetsetelah operasi penyerapan inkremental pertama. - Anda tidak dapat mengubah mode tulis dalam konfigurasi transfer setelah operasi penyerapan inkremental pertama.
- Anda tidak dapat mengubah kolom watermark atau kunci utama setelah operasi penyerapan inkremental pertama.
- Tabel BigQuery tujuan dikelompokkan menggunakan kunci utama yang disediakan dan tunduk pada batasan tabel pengelompokan.
- Saat Anda memperbarui konfigurasi transfer yang ada ke mode penyerapan inkremental untuk pertama kalinya, transfer data pertama setelah pembaruan tersebut akan mentransfer semua data yang tersedia dari sumber data Anda. Setiap transfer data inkremental berikutnya hanya akan mentransfer baris baru dan yang diperbarui dari sumber data Anda.
Untuk mempelajari cara kerja transfer inkremental, lihat Transfer penuh atau inkremental.
Sebelum memulai
Bagian berikut menjelaskan langkah-langkah yang perlu Anda lakukan sebelum membuat transfer Oracle.
Prasyarat Oracle
- Buat Kredensial pengguna di database Oracle.
- Berikan hak istimewa sistem
Create Sessionkepada pengguna untuk mengizinkan pembuatan sesi. - Tetapkan tablespace ke akun pengguna.
Anda juga harus memiliki informasi database Oracle berikut saat membuat transfer Oracle.
| Nama Parameter | Deskripsi |
|---|---|
database |
Nama database. |
host |
Nama host atau alamat IP database. |
port |
Nomor port database. |
username |
Nama pengguna untuk mengakses database. |
password |
Sandi untuk mengakses database. |
Prasyarat BigQuery
- Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.
- Buat set data BigQuery untuk menyimpan data Anda.
- Jika Anda ingin menyiapkan notifikasi operasi transfer untuk Pub/Sub, pastikan Anda memiliki izin IAM (Identity and Access Management)
pubsub.topics.setIamPolicy. Izin Pub/Sub tidak diperlukan jika Anda hanya menyiapkan notifikasi email. Untuk mengetahui informasi selengkapnya, lihat Notifikasi operasi BigQuery Data Transfer Service.
Peran BigQuery yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat transfer data BigQuery Data Transfer Service, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) pada 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 BigQuery Data Transfer Service. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat transfer data BigQuery Data Transfer Service:
-
Izin BigQuery Data Transfer Service:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
Izin BigQuery:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya, lihat Memberikan akses bigquery.admin.
Memuat data Oracle ke BigQuery
Tambahkan data Oracle ke BigQuery dengan menyiapkan konfigurasi transfer menggunakan salah satu opsi berikut:
Konsol
Buka halaman Data transfers di Google Cloud konsol.
Klik Create transfer.
Di bagian Source type, untuk Source, pilih Oracle.
Di bagian Data source details, lakukan hal berikut:
- Untuk Network attachment, pilih lampiran jaringan yang ada atau klik Create Network Attachment.
- Untuk Host, masukkan nama host atau IP database.
- Untuk Port, masukkan nomor port yang digunakan database Oracle
untuk koneksi masuk, seperti
1521. - Untuk Database name, masukkan nama database Oracle.
- Untuk Connection type, masukkan jenis URL koneksi, baik
SERVICE,SID, atauTNS. - Untuk Username, masukkan nama pengguna yang memulai koneksi database Oracle.
- Untuk Password, masukkan sandi pengguna yang memulai koneksi database Oracle.
- Untuk TLS Mode, pilih opsi dari menu drop-down. Untuk mengetahui informasi selengkapnya tentang mode TLS, lihat Konfigurasi TLS.
- Untuk Trusted PEM Certificate, masukkan sertifikat publik dari otoritas sertifikat (CA) yang menerbitkan sertifikat TLS server database. Untuk mengetahui informasi selengkapnya, lihat Sertifikat Server Tepercaya (PEM).
- Untuk Ingestion type, pilih Full atau Incremental.
- Jika Anda memilih Incremental (Pratinjau), untuk Write mode, pilih Append atau Upsert. Untuk mengetahui informasi selengkapnya tentang berbagai mode tulis, lihat Transfer penuh atau inkremental.
- Untuk Oracle objects to transfer, klik Browse:
- Pilih objek apa pun yang akan ditransfer ke set data tujuan BigQuery. Anda juga dapat memasukkan objek secara manual untuk disertakan dalam transfer data di kolom ini.
- Jika Anda telah memilih Append sebagai mode tulis inkremental, Anda harus memilih kolom sebagai kolom watermark.
- Jika Anda telah memilih Upsert sebagai mode tulis inkremental, Anda harus memilih kolom sebagai kolom watermark, lalu memilih satu atau beberapa kolom sebagai kunci utama.
Di bagian Destination settings, untuk Dataset, pilih set data yang Anda buat untuk menyimpan data Anda.
Di bagian Transfer config name, untuk Display name, masukkan a nama untuk transfer data.
Di bagian Schedule options:
- Di daftar Repeat frequency, pilih opsi untuk menentukan seberapa sering transfer data ini berjalan. Untuk menentukan frekuensi pengulangan kustom, pilih Custom. Jika Anda memilih On-demand, transfer ini akan berjalan saat Anda memicu transfer secara manual.
- Jika berlaku, pilih Start now atau Start at set time, lalu berikan tanggal mulai dan waktu operasi.
Opsional: Di bagian Notification options, lakukan hal berikut:
- Untuk mengaktifkan notifikasi email, klik tombol Email notification. Jika Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat operasi transfer gagal.
- Untuk mengaktifkan notifikasi operasi transfer Pub/Sub untuk transfer ini, klik tombol Pub/Sub notifications. Anda dapat memilih nama topik, atau dapat mengklik Create a topic untuk membuatnya.
Klik Save.
bq
Masukkan perintah bq mk command
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'
Dengan:
- PROJECT_ID (opsional): project ID Google Cloud Anda.
Jika
--project_idtidak diberikan untuk menentukan project tertentu, project default akan digunakan. - DATA_SOURCE: sumber data —
oracle. - DISPLAY_NAME: nama tampilan untuk konfigurasi transfer. Nama transfer data dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
- DATASET: set data target untuk konfigurasi transfer.
PARAMETERS: parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Contoh:
--params='{"param":"param_value"}'. Berikut adalah parameter untuk transfer data Oracle:connector.networkAttachment(opsional): nama network attachment untuk terhubung ke database Oracle.connector.authentication.Username: nama pengguna akun Oracle.connector.authentication.Password: sandi akun Oracle.connector.database: nama database Oracle.connector.endpoint.host: nama host atau IP database.connector.endpoint.port: nomor port yang digunakan database Oracle untuk koneksi masuk, seperti1520.connector.connectionType: jenis URL koneksi, baikSERVICE,SID, atauTNS.connector.tls.mode: tentukan konfigurasi TLS yang akan digunakan dengan transfer ini:ENCRYPT_VERIFY_CA_AND_HOSTuntuk mengenkripsi data, dan memverifikasi CA serta 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. Hanya diperlukan jikaconnector.tls.modeadalahENCRYPT_VERIFY_CA_AND_HOSTatauENCRYPT_VERIFY_CA.ingestionType: tentukanfullatauincremental. Transfer inkremental didukung dalam pratinjau. Untuk mengetahui informasi selengkapnya, lihat Transfer penuh atau inkremental.writeMode: tentukanWRITE_MODE_APPENDatauWRITE_MODE_UPSERT.watermarkColumns: tentukan kolom dalam tabel Anda sebagai kolom watermark. Kolom ini diperlukan untuk transfer inkremental.primaryKeys: tentukan kolom dalam tabel Anda sebagai kunci utama. Kolom ini diperlukan untuk transfer inkremental.assets: jalur ke objek Oracle yang akan ditransfer ke BigQuery, menggunakan format:DATABASE_NAME/SCHEMA_NAME/TABLE_NAME
Saat menentukan beberapa aset selama transfer inkremental, nilai kolom watermarkColumns dan primaryKeys sesuai dengan posisi nilai di kolom assets. Pada contoh berikut, dep_id sesuai dengan tabel DB1/USER1/DEPARTMENT, sedangkan report_by dan report_title sesuai dengan tabel DB1/USER1/EMPLOYEES.
"primaryKeys":[['dep_id'], ['report_by','report_title']], "assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
Misalnya, perintah berikut membuat transfer data Oracle di project default dengan semua parameter yang diperlukan:
bq mk --transfer_config --target_dataset=mydataset --data_source=oracle --display_name='My Transfer' --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"], "connector.authentication.username": "User1", "connector.authentication.password":"ABC12345", "connector.database":"DB1", "connector.endpoint.host":"192.168.0.1", "connector.endpoint.port":1520, "connector.connectionType":"SERVICE", "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST", "connector.tls.trustedServerCertificate": "PEM-encoded certificate", "connector.networkAttachment": "projects/dev-project1/regions/us-central1/networkattachments/na1" "ingestionType":"incremental", "writeMode":"WRITE_MODE_APPEND", "watermarkColumns":["createdAt","createdAt"], "primaryKeys":[['dep_id'], ['report_by','report_title']]}'
API
Gunakan projects.locations.transferConfigs.create
metode dan berikan instance TransferConfig
resource.
Untuk menjalankan transfer data secara manual di luar jadwal reguler, Anda dapat memulai operasi pengisian ulang.
Memecahkan masalah penyiapan transfer
Jika Anda mengalami masalah saat menyiapkan transfer data, lihat Masalah transfer Oracle.
Langkah berikutnya
- Untuk mempelajari BigQuery Data Transfer Service lebih lanjut, lihat Apa yang dimaksud dengan BigQuery Data Transfer Service.
- Untuk mempelajari cara menggunakan transfer, termasuk mendapatkan informasi tentang konfigurasi transfer, membuat listingan konfigurasi transfer, dan melihat histori operasi transfer, lihat Mengelola transfer.
- Untuk mempelajari cara memuat data dengan operasi BigQuery Omni, lihat Memuat data dengan operasi BigQuery Omni.