Bagian ini berisi informasi tentang:
- Perilaku cara Datastream menangani data yang diambil dari database MySQL sumber
- Versi database MySQL yang didukung Datastream
- Batasan yang diketahui untuk menggunakan database MySQL sebagai sumber
- Ringkasan cara menyiapkan database MySQL sumber agar data dapat di-streaming dari database tersebut ke tujuan
Perilaku
Bagian ini menjelaskan perilaku sumber MySQL saat Anda mereplikasi data menggunakan Datastream. Saat menyerap data dari database MySQL, Anda dapat menggunakan replikasi berbasis binlog atau replikasi berbasis ID transaksi global (GTID) (Pratinjau). Anda memilih metode CDC saat membuat streaming.
Replikasi berbasis binlog
Datastream dapat menggunakan file log biner untuk menyimpan catatan perubahan data di database MySQL. Informasi yang terdapat dalam file log ini kemudian direplikasi ke tujuan untuk mereproduksi perubahan yang dilakukan pada sumber.
Karakteristik utama replikasi berbasis binlog di Datastream adalah:
- Semua database atau database tertentu dari sumber MySQL tertentu, serta semua tabel dari database atau tabel tertentu, dapat dipilih.
- Semua data historis direplikasi.
- Semua perubahan bahasa pengolahan data (DML), seperti penyisipan, pembaruan, dan penghapusan dari database dan tabel yang ditentukan, akan direplikasi.
- Hanya perubahan yang di-commit yang direplikasi.
Replikasi berbasis ID transaksi global (GTID)
Datastream juga mendukung replikasi berbasis ID global (GTID).
ID transaksi global (GTID) adalah ID unik yang dibuat dan dikaitkan dengan setiap transaksi yang dilakukan pada sumber MySQL. ID ini unik tidak hanya untuk sumber asalnya, tetapi juga di semua server dalam topologi replikasi tertentu, berbeda dengan replikasi berbasis log biner di mana setiap node dalam cluster database mempertahankan file binlognya sendiri, dengan penomorannya sendiri. Mempertahankan file binlog dan penomoran terpisah mungkin menjadi masalah jika terjadi kegagalan atau periode nonaktif yang direncanakan, karena kontinuitas binlog rusak dan replikasi berbasis binlog gagal.
Replikasi berbasis GTID mendukung failover, cluster database yang dikelola sendiri, dan terus berfungsi terlepas dari perubahan pada cluster database.
Karakteristik utama replikasi berbasis GTID di Datastream adalah:
- Semua database atau database tertentu dari sumber MySQL tertentu, serta semua tabel dari database atau tabel tertentu, dapat dipilih.
- Semua data historis direplikasi.
- Semua perubahan bahasa pengolahan data (DML), seperti penyisipan, pembaruan, dan penghapusan dari database dan tabel yang ditentukan, akan direplikasi.
- Hanya perubahan yang di-commit yang direplikasi.
- Dukungan yang lancar untuk failover.
Versi
Datastream mendukung versi database MySQL berikut:
- MySQL 5.6
- MySQL 5.7
- MySQL 8.0
MySQL 8.4 (hanya didukung untuk replikasi berbasis GTID)
Datastream mendukung jenis database MySQL berikut:
- MySQL yang dihosting sendiri
- Cloud SQL untuk MySQL
- Amazon RDS for MySQL
- Amazon Aurora MySQL
- MariaDB
- Alibaba Cloud PolarDB
- Percona Server untuk MySQL
Batasan umum
Batasan yang diketahui untuk menggunakan database MySQL sebagai sumber meliputi:
- Aliran data dibatasi hingga 10.000 tabel.
- Tabel yang memiliki kunci utama yang ditentukan sebagai
INVISIBLE
tidak dapat diisi ulang. - Tabel yang memiliki lebih dari 500 juta baris tidak dapat diisi ulang kecuali jika kondisi berikut terpenuhi:
- Tabel memiliki indeks unik.
- Tidak ada kolom indeks yang nullable.
- Indeks tidak menurun.
- Semua kolom indeks disertakan dalam aliran data.
- Datastream secara berkala mengambil skema terbaru dari sumber saat peristiwa diproses. Jika skema berubah, Datastream akan mendeteksi perubahan skema dan memicu pengambilan skema. Namun, beberapa peristiwa mungkin diproses secara tidak benar atau dihapus di antara pengambilan skema, yang dapat menyebabkan perbedaan data.
- 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)
- Memotong tabel
- Datastream tidak mendukung replikasi tampilan.
- Datastream tidak mendukung kolom jenis data spasial. Nilai dalam kolom ini diganti dengan nilai
NULL
. - Datastream tidak mendukung nilai nol (
0000-00-00 00:00:00
) di kolom jenis dataDATETIME
,DATE
, atauTIMESTAMP
. Nilai nol diganti dengan nilaiNULL
. - Datastream tidak mendukung baris replikasi yang menyertakan nilai berikut di kolom
JSON
:DECIMAL
,NEWDECIMAL
,TIME
,TIME2
DATETIME
,DATETIME2
,DATE
,TIMESTAMP
, atauTIMESTAMP2
. Peristiwa yang berisi nilai tersebut akan dihapus. - Datastream tidak mendukung kompresi transaksi log biner.
- Datastream tidak mendukung rantai sertifikat SSL di profil koneksi MySQL sumber. Hanya satu sertifikat berenkode PEM x509 yang didukung.
- Datastream tidak mendukung penghapusan berurutan. Peristiwa tersebut tidak ditulis ke log biner, dan akibatnya, tidak disebarkan ke tujuan.
- Saat menggunakan replikasi berbasis log biner, Datastream tidak mendukung failover ke replika. Oleh karena itu, sebaiknya jangan gunakan Datastream untuk replikasi dari sumber Cloud SQL untuk MySQL Enterprise Plus. Instance edisi Cloud SQL Enterprise Plus tunduk pada pemeliharaan dengan periode nonaktif nyaris nol dan failover ke replika selama pemeliharaan. Hal ini akan mengganggu kontinuitas binlog, dan akibatnya, streaming yang terpengaruh akan gagal secara permanen.
Batasan tambahan untuk replikasi berbasis GTID
- Pemulihan streaming tidak didukung saat Anda menggunakan replikasi berbasis GTID.
- Membuat tabel dari tabel lain menggunakan pernyataan
CREATE TABLE ... SELECT
tidak didukung. - Untuk batasan MySQL yang berlaku untuk replikasi berbasis GTID, lihat dokumentasi MySQL.
Langkah selanjutnya
- Pelajari cara mengonfigurasi sumber MySQL untuk digunakan dengan Datastream.