Mendapatkan database PostgreSQL

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 sehingga data dapat di-streaming dari database tersebut ke tujuan
  • Batasan umum untuk menggunakan database PostgreSQL sebagai sumber

Perilaku

Database PostgreSQL sumber mengandalkan fitur dekode logis. Dekoder logis mengekspos semua perubahan yang dilakukan ke database dan memungkinkan penggunaan dan 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 IDENTITAS RELICA di 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 umum untuk menggunakan Datastream dengan database PostgreSQL sebagai sumber meliputi:

  • Streaming dibatasi hingga 10.000 tabel.
  • Tabel yang memiliki lebih dari 500 juta baris tidak dapat diisi ulang kecuali jika kondisi berikut terpenuhi:
    1. Tabel ini memiliki indeks pohon B yang unik.
    2. Indeks tidak mencakup kolom dengan jenis berikut: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML 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 IDENTITAS RELICA. Jika tidak, hanya INSERT peristiwa yang direplikasi ke tujuan.
  • Datastream tidak dapat mereplikasi dari instance replika baca, karena PostgreSQL tidak mendukung decoding logis dalam replika baca.
  • Tidak semua perubahan pada skema sumber dapat dideteksi secara otomatis, dalam hal ini kerusakan data dapat terjadi. Perubahan skema berikut dapat menyebabkan kerusakan data atau kegagalan untuk memproses downstream peristiwa:
    • Melepaskan kolom.
    • Menambahkan kolom ke tengah tabel.
    • Mengubah tipe data kolom.
    • Menyusun ulang kolom.
    • Melepaskan tabel (relevan jika tabel yang sama kemudian dibuat ulang dengan data baru 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 seperti itu akan diabaikan.
  • Datastream tidak mendukung replikasi peristiwa UPDATE untuk baris yang menyertakan nilai TOAST di kolom yang merupakan bagian dari identitas replika tabel. Acara 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 dalam kolom NUMERIC (precision, scale). Nilai dalam kolom tersebut akan diganti dengan nilai NULL.
  • Datastream tidak mendukung replikasi kolom jenis data hstore. Nilai dalam kolom tersebut akan diganti dengan nilai NULL.
  • Datastream tidak mendukung koneksi SSL/TLS yang memerlukan sertifikat klien.
  • Datastream tidak mendukung replikasi catatan non-ASCII dari database sumber yang dienkode SQL_ASCII. Catatan 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 menangkap perubahan yang dilakukan pada kolom yang dibuat.