Database PostgreSQL sumber

Bagian ini berisi informasi tentang:

  • Perilaku cara Datastream menangani data yang diambil dari database PostgreSQL sumber
  • Versi database PostgreSQL yang didukung Datastream
  • Ringkasan cara menyiapkan database PostgreSQL sumber agar data dapat di-streaming dari database tersebut ke tujuan
  • Batasan yang diketahui untuk menggunakan database PostgreSQL sebagai sumber

Perilaku

Database PostgreSQL sumber mengandalkan fitur decoding logis. Decoding logis mengekspos semua perubahan yang di-commit ke database dan memungkinkan penggunaan serta pemrosesan perubahan ini dalam format yang mudah digunakan menggunakan plugin output. Datastream menggunakan plugin pgoutput, yang merupakan plugin decoding logis PostgreSQL standar untuk PostgreSQL 10 dan yang lebih baru.

  • Semua skema atau skema tertentu dari sumber PostgreSQL tertentu, serta semua tabel dari skema atau tabel tertentu, dapat dipilih.
  • Semua data historis direplikasi.
  • Semua perubahan bahasa manipulasi data (DML), seperti penyisipan, pembaruan, dan penghapusan dari database dan tabel yang ditentukan, direplikasi.
  • Hanya perubahan yang di-commit yang direplikasi.
  • Jika Anda menentukan REPLICA IDENTITY pada tabel, Datastream akan memperlakukan kolom yang ditentukan sebagai kunci utama.

Versi

Datastream mendukung PostgreSQL versi 10 dan yang lebih baru.

Datastream mendukung jenis database PostgreSQL berikut:

  • PostgreSQL yang dihosting sendiri
  • Cloud SQL untuk PostgreSQL
  • AlloyDB untuk PostgreSQL
  • AlloyDB Omni
  • Amazon RDS for PostgreSQL
  • Amazon Aurora PostgreSQL

Batasan umum

Batasan yang diketahui untuk menggunakan Datastream dengan database PostgreSQL sebagai sumber meliputi:

  • Aliran data dibatasi hingga 10.000 tabel.
  • Tabel yang memiliki lebih dari 500 juta baris tidak dapat diisi ulang kecuali jika kondisi berikut terpenuhi:
    1. Tabel memiliki indeks B-tree yang unik.
    2. Indeks tidak menyertakan kolom dari jenis berikut: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML, jenis data komposit atau jenis data geometris.
    3. Tidak ada kolom indeks yang nullable.
    4. Semua kolom indeks dalam urutan menaik, atau semua kolom indeks dalam urutan menurun.
    5. Semua kolom indeks disertakan dalam aliran data.
  • Tabel tanpa kunci utama harus memiliki REPLICA IDENTITY. Jika tidak, hanya peristiwa INSERT yang direplikasi ke tujuan.
  • Datastream tidak dapat direplikasi dari instance replika baca, karena PostgreSQL tidak mendukung decoding logis dalam replika baca.
  • Tidak semua perubahan pada skema sumber dapat dideteksi secara otomatis. Jika demikian, kerusakan data dapat terjadi. Perubahan skema berikut dapat menyebabkan kerusakan data atau kegagalan untuk memproses peristiwa di downstream:
    • Menghapus kolom.
    • Menambahkan kolom ke tengah tabel.
    • Mengubah jenis data kolom.
    • Mengurutkan ulang kolom.
    • Menghapus tabel (relevan jika tabel yang sama kemudian dibuat ulang dengan data baru yang ditambahkan).
  • Datastream tidak mendukung kolom jenis data geometric.
  • Datastream tidak mendukung kolom jenis data range.
  • Datastream tidak mendukung array jenis data yang tidak didukung, array jenis data yang ditentukan pengguna (termasuk ENUM) atau array jenis data DATE, TIMESTAMP, atau TIMESTAMP WITH TIME ZONE. Kolom tersebut akan diabaikan.
  • Datastream tidak mendukung replikasi peristiwa UPDATE untuk baris yang menyertakan nilai TOAST di kolom yang merupakan bagian dari identitas replika tabel. Peristiwa tersebut akan dihapus.
  • Datastream tidak mendukung replikasi baris yang menyertakan nilai JSON atau JSONB dengan lebih dari 2.950 objek bertingkat. Peristiwa yang berisi nilai JSON atau JSONB tersebut tidak direplikasi ke database tujuan.
  • Datastream tidak mendukung replikasi baris yang menyertakan nilai NaN di kolom NUMERIC (precision, scale). Nilai dalam kolom tersebut diganti dengan nilai NULL.
  • Datastream tidak mendukung replikasi kolom jenis data hstore. Nilai dalam kolom tersebut diganti dengan nilai NULL.
  • Datastream tidak mendukung koneksi SSL/TLS yang memerlukan sertifikat klien.
  • Datastream tidak mendukung replikasi data non-ASCII dari database sumber yang dienkode SQL_ASCII. Data tersebut akan dihapus.
  • Datastream tidak mendukung replikasi tabel dengan kebijakan Keamanan Tingkat Baris (RLS) yang ditentukan. Untuk mengetahui informasi tentang cara mengabaikan batasan ini, lihat Perilaku dan batasan sumber PostgreSQL.
  • Datastream tidak merekam perubahan yang dilakukan pada kolom yang dihasilkan.

Langkah selanjutnya