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 region us-central1. Untuk multi-region eu, lampiran jaringan harus berada di region europe-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:
      • INTEGER
      • TINYINT
      • SMALLINT
      • FLOAT
      • REAL
      • DOUBLE
      • NUMERIC
      • BIGINT
      • DECIMAL
      • DATE
    • 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 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 TIMESTAMP kolom 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 asset setelah 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

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

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

  1. Buka halaman Transfer data di konsol Google Cloud .

    Buka Data transfers

  2. Klik Create transfer.

  3. Di bagian Source type, untuk Source, pilih Oracle.

  4. 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, atau TNS.
    • 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.
  5. Di bagian Destination settings, untuk Dataset, pilih set data yang Anda buat untuk menyimpan data Anda.

  6. Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer data.

  7. 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.
  8. 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.
  9. 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_id tidak 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, seperti 1520.
    • connector.connectionType: jenis URL koneksi, yaitu SERVICE, SID, atau TNS.
    • connector.tls.mode: tentukan konfigurasi TLS yang akan digunakan dengan transfer ini:
      • ENCRYPT_VERIFY_CA_AND_HOST untuk mengenkripsi data, dan memverifikasi CA dan nama host
      • ENCRYPT_VERIFY_CA untuk mengenkripsi data, dan hanya memverifikasi CA
      • ENCRYPT_VERIFY_NONE hanya untuk enkripsi data
      • DISABLE untuk tidak ada enkripsi atau verifikasi
    • connector.tls.trustedServerCertificate: (opsional) berikan satu atau beberapa sertifikat berenkode PEM. Hanya diperlukan jika connector.tls.mode adalah ENCRYPT_VERIFY_CA_AND_HOST atau ENCRYPT_VERIFY_CA.
    • ingestionType: tentukan full atau incremental. Transfer inkremental didukung dalam pratinjau. Untuk mengetahui informasi selengkapnya, lihat Transfer penuh atau inkremental.
    • writeMode: tentukan WRITE_MODE_APPEND atau WRITE_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.

Saat Anda menyimpan konfigurasi transfer, konektor Oracle akan otomatis memicu proses transfer sesuai dengan opsi jadwal Anda. Dengan setiap operasi transfer, konektor Oracle mentransfer semua data yang tersedia dari Oracle ke BigQuery.

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