Database MySQL sumber

Bagian ini berisi informasi tentang:

  • Perilaku cara Datastream menangani data yang ditarik 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 memproses data dari database MySQL, Anda dapat menggunakan replikasi berbasis binlog atau replikasi berbasis ID transaksi global (GTID). Anda memilih metode CDC saat membuat aliran data.

Replikasi berbasis binlog

Datastream dapat menggunakan file log biner untuk mencatat perubahan data dalam database MySQL. Informasi yang ada 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, 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 di sumber MySQL. ID ini tidak hanya unik untuk sumber tempat ID tersebut berasal, tetapi juga di semua server dalam topologi replikasi tertentu, berbeda dengan replikasi berbasis log biner di mana setiap node dalam cluster database mempertahankan file binlog-nya sendiri, dengan penomorannya sendiri. Mempertahankan file binlog terpisah dan penomoran dapat menjadi masalah jika terjadi kegagalan atau periode nonaktif yang direncanakan, karena kelangsungan binlog terganggu dan replikasi berbasis binlog gagal.

Replikasi berbasis GTID mendukung failover, cluster database yang dikelola sendiri, dan terus berfungsi terlepas dari perubahan dalam 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, direplikasi.
  • Hanya perubahan yang di-commit yang direplikasi.
  • Dukungan yang lancar untuk pengalihan.

Beralih dari replikasi berbasis binlog ke replikasi berbasis GTID

Jika Anda ingin memperbarui aliran dan beralih dari replikasi berbasis binlog ke berbasis GTID tanpa perlu melakukan pengisian ulang, lakukan langkah-langkah berikut:

  1. Pastikan semua persyaratan untuk replikasi berbasis GTID terpenuhi. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi database MySQL sumber.
  2. Jika ingin, buat dan jalankan streaming berbasis GTID pengujian. Untuk mengetahui informasi selengkapnya, lihat Membuat streaming.
  3. Buat aliran berbasis GTID. Jangan mulai dulu.
  4. Hentikan traffic aplikasi ke database sumber.
  5. Jeda aliran berbasis binlog yang ada. Untuk mengetahui informasi selengkapnya, lihat Menjeda streaming.
  6. Tunggu beberapa menit untuk memastikan Datastream telah menyusul database. Anda dapat memeriksanya menggunakan metrik di tab Monitoring, di halaman Detail aliran data untuk aliran data Anda. Nilai untuk Keaktualan data dan Throughput harus 0.
  7. Mulai aliran berbasis GTID. Untuk mengetahui informasi selengkapnya, lihat Mulai streaming.
  8. Lanjutkan traffic ke database sumber.

Jika pengisian ulang tidak menjadi masalah, Anda dapat memangkas tabel di BigQuery, menghapus aliran lama, dan memulai aliran baru dengan pengisian ulang. Untuk informasi selengkapnya tentang mengelola pengisian ulang, lihat Mengelola pengisian ulang untuk objek streaming.

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:

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:
    1. Tabel memiliki indeks unik.
    2. Tidak ada kolom indeks yang boleh bernilai null.
    3. Indeks tidak menurun.
    4. Semua kolom indeks disertakan dalam aliran.
  • 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, sehingga dapat menyebabkan kerusakan data. Perubahan skema berikut dapat menyebabkan kerusakan data atau kegagalan memproses peristiwa di hilir:
    • Melepas 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)
    • Memangkas 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 data DATETIME, DATE, atau TIMESTAMP. Nilai nol diganti dengan nilai NULL.
  • Datastream tidak mendukung replikasi baris yang menyertakan nilai berikut di kolom JSON: DECIMAL, NEWDECIMAL, TIME, TIME2 DATETIME, DATETIME2, DATE, TIMESTAMP, atau TIMESTAMP2. Peristiwa yang berisi nilai tersebut akan dibuang.
  • Datastream tidak mendukung kompresi transaksi log biner.
  • Datastream tidak mendukung rangkaian sertifikat SSL di profil koneksi MySQL sumber. Hanya sertifikat tunggal berenkode PEM x509 yang didukung.
  • Aliran data tidak mendukung penghapusan bertingkat. Peristiwa tersebut tidak ditulis ke log biner, dan akibatnya, tidak disebarkan ke tujuan.
  • Datastream tidak mendukung operasi DROP PARTITION. Operasi tersebut hanya merupakan operasi metadata dan tidak direplikasi. Peristiwa lain tidak terpengaruh dan streaming berjalan dengan lancar.
  • Karena Datastream tidak mendukung failover ke replika saat menggunakan replikasi berbasis log biner, sebaiknya gunakan replikasi berbasis GTID untuk sumber Cloud SQL for MySQL Enterprise Plus. Instance Cloud SQL Enterprise Plus tunduk pada pemeliharaan dengan periode nonaktif nyaris nol dan melakukan failover ke replika selama pemeliharaan.

Batasan tambahan untuk replikasi berbasis GTID

  • Memulihkan aliran yang menggunakan replikasi berbasis GTID hanya tersedia saat menggunakan Datastream API.
  • Membuat tabel dari tabel lain menggunakan pernyataan CREATE TABLE ... SELECT tidak didukung.
  • Datastream tidak mendukung GTID yang diberi tag.
  • Untuk mengetahui batasan MySQL yang berlaku untuk replikasi berbasis GTID, lihat dokumentasi MySQL.

Langkah berikutnya