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 di us-central1 region. Untuk multi-region eu, lampiran jaringan harus berada di europe-west4 region.
  • 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:
      • INTEGER
      • TINYINT
      • SMALLINT
      • FLOAT
      • REAL
      • DOUBLE
      • NUMERIC
      • BIGINT
      • DECIMAL
      • DATE
    • Transfer data Oracle yang tidak menggunakan kolom kunci utama atau yang diindeks tidak dapat mendukung lebih dari 2.000.000 data per tabel.
  • 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 TIMESTAMP sebagai 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 asset setelah 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

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) 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

  1. Buka halaman Data transfers di Google Cloud konsol.

    Buka Data transfers

  2. Klik Create transfer.

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

  4. 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, atau TNS.
    • 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.
    • 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.
  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 a nama untuk transfer data.

  7. 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.
  8. 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.
  9. 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_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 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, seperti 1520.
    • connector.connectionType: jenis URL koneksi, baik 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 serta 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 yang dienkode 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: 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.

Saat Anda menyimpan konfigurasi transfer, konektor Oracle akan otomatis memicu operasi transfer sesuai dengan opsi jadwal Anda. Dengan setiap operasi transfer, konektor Oracle akan 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