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 frekuensi penjadwalan transfer data. Setelah Anda menyiapkan konfigurasi transfer, BigQuery Data Transfer Service akan mentransfer data terbaru ke tabel BigQuery sesuai jadwal yang ditentukan.
Untuk mengetahui informasi umum tentang transfer Oracle, termasuk opsi konfigurasi, 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. Untuk menghapus lampiran jaringan, hubungi Cloud Customer Care.
- Untuk multi-region
us, lampiran jaringan harus berada di regionus-central1. Untuk multi-regioneu, lampiran jaringan harus berada di regioneurope-west4.
- 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 kali menjalankan transfer data dalam waktu tertentu. Jika transfer data kedua dijadwalkan untuk berjalan sebelum transfer pertama selesai, hanya transfer data pertama yang akan selesai, sedangkan transfer data lain yang tumpang-tindih dengan transfer pertama akan dilewati.
- Untuk menghindari transfer yang dilewati dalam satu konfigurasi transfer, sebaiknya Anda memperpanjang durasi waktu antara transfer data besar dengan mengonfigurasi Frekuensi pengulangan.
- Selama transfer data, konektor Oracle mengidentifikasi kolom kunci yang diindeks dan dipartisi untuk mentransfer data Anda dalam batch paralel. Oleh karena itu, sebaiknya Anda menentukan kolom kunci utama atau menggunakan kolom yang diindeks dalam tabel untuk meningkatkan performa dan mengurangi tingkat kesalahan dalam transfer data.
- Jika Anda memiliki batasan indeks atau kunci utama, hanya jenis kolom berikut yang didukung untuk membuat batch paralel:
INTEGERTINYINTSMALLINTFLOATREALDOUBLENUMERICBIGINTDECIMALDATE
- Transfer data Oracle yang tidak menggunakan kolom kunci primer atau kolom yang diindeks tidak dapat mendukung lebih dari 2.000.000 data per tabel.
- Jika Anda memiliki batasan indeks atau kunci utama, hanya jenis kolom berikut yang didukung untuk membuat batch paralel:
- Jika lampiran jaringan 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
TIMESTAMPkolom sebagai kolom tanda air. - Penyerapan inkremental hanya didukung untuk aset dengan kolom watermark yang valid.
- Nilai dalam kolom tanda air harus meningkat secara monoton.
- Transfer inkremental tidak dapat menyinkronkan operasi penghapusan di tabel sumber.
- Konfigurasi transfer tunggal hanya dapat mendukung penyerapan inkremental atau penuh.
- Anda tidak dapat memperbarui objek dalam daftar
assetsetelah menjalankan penyerapan inkremental pertama. - Anda tidak dapat mengubah mode penulisan dalam konfigurasi transfer setelah menjalankan penyerapan inkremental pertama.
- Anda tidak dapat mengubah kolom tanda air atau kunci utama setelah menjalankan penyerapan inkremental pertama.
- Tabel BigQuery tujuan dikelompokkan menggunakan kunci utama yang diberikan dan tunduk pada batasan tabel berklaster.
- 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 ingin menyiapkan notifikasi operasi transfer untuk Pub/Sub, pastikan Anda memiliki izin Identity and Access Management (IAM)
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) 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 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 Transfer data di konsol Google Cloud .
Klik Create transfer.
Di bagian Source type, untuk Source, pilih Oracle.
Di bagian Detail sumber data, lakukan hal berikut:
- Untuk Network attachment, pilih network attachment 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 Nama database, masukkan nama database Oracle.
- Untuk Connection type, masukkan jenis URL koneksi, baik
SERVICE,SID, atauTNS. - Untuk Nama pengguna, masukkan nama pengguna yang memulai koneksi database Oracle.
- Untuk Sandi, masukkan sandi pengguna yang memulai koneksi database Oracle.
- Untuk Mode TLS, pilih opsi dari menu drop-down. Untuk mengetahui informasi selengkapnya tentang mode TLS, lihat Konfigurasi TLS.
- Untuk Trusted PEM Certificate, masukkan sertifikat publik certificate authority (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 penulisan, lihat Transfer penuh atau inkremental.
- Untuk objek Oracle yang akan ditransfer, klik Browse:
- Pilih objek 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 Tambahkan sebagai mode penulisan inkremental, Anda harus memilih kolom sebagai kolom tanda air.
- Jika Anda telah memilih Upsert sebagai mode penulisan inkremental, Anda harus memilih kolom sebagai kolom tanda air, 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 nama untuk transfer data.
Di bagian Schedule options:
- Dalam daftar Frekuensi berulang, pilih opsi untuk menentukan seberapa sering transfer data ini dijalankan. Untuk menentukan frekuensi pengulangan kustom, pilih Kustom. Jika Anda memilih Sesuai permintaan, transfer ini akan berjalan saat Anda memicu transfer secara manual.
- Jika berlaku, pilih Start now atau Start at 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. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
- Untuk mengaktifkan notifikasi operasi transfer Pub/Sub untuk transfer ini, klik tombol Notifikasi Pub/Sub. Anda dapat memilih nama topik, atau Anda dapat mengklik Buat topik untuk membuatnya.
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'
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 lampiran jaringan 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, yaituSERVICE,SID, atauTNS.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 berenkode 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: menentukan kolom dalam tabel Anda sebagai kolom watermark. Kolom ini wajib diisi untuk transfer inkremental.primaryKeys: menentukan kolom dalam tabel Anda sebagai kunci utama. Kolom ini wajib diisi 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. Dalam 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 akan 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 metode projects.locations.transferConfigs.create
dan berikan instance resource
TransferConfig.
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 itu BigQuery Data Transfer Service.
- Untuk mempelajari cara menggunakan transfer, termasuk mendapatkan informasi tentang konfigurasi transfer, membuat listingan konfigurasi transfer, dan melihat histori pelaksanaan transfer, lihat Mengelola transfer.
- Untuk mempelajari cara memuat data dengan operasi BigQuery Omni, lihat Memuat data dengan operasi BigQuery Omni.