Gunakan MySQL Reader untuk membaca data dari tabel dalam database MySQL secara real-time dengan berlangganan log biner. Topik ini menjelaskan cara mengonfigurasi MySQL Reader serta persyaratan lingkungan jaringan dan izin yang diperlukan.
Prasyarat
Sebelum mengonfigurasi MySQL Reader, pastikan prasyarat berikut telah terpenuhi:
Izin akun sinkronisasi telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Konfigurasi izin akun.
Node sinkronisasi real-time untuk sumber data MySQL menggunakan akun yang Anda konfigurasikan untuk sumber data MySQL di DataWorks untuk mengakses database. Pastikan akun tersebut memiliki izin berikut pada database:
SELECT,REPLICATION SLAVE, danREPLICATION CLIENT.Aktifkan fitur pencatatan biner untuk instans MySQL. Untuk informasi lebih lanjut, lihat Aktifkan pencatatan biner untuk MySQL.
Data Integration menyinkronkan data inkremental dari MySQL secara real-time dengan berlangganan log biner MySQL. Oleh karena itu, aktifkan fitur pencatatan biner untuk MySQL sebelum mengonfigurasi tugas sinkronisasi di DataWorks.
Beli grup sumber daya eksklusif untuk Data Integration sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Buat dan gunakan grup sumber daya eksklusif untuk Data Integration.
Bangun koneksi jaringan antara grup sumber daya untuk sinkronisasi data dan database. Untuk informasi lebih lanjut, lihat Solusi konektivitas jaringan.
Keterbatasan
Data Integration tidak mendukung penyinkronan data dari instansi hanya baca database MySQL.
Sinkronisasi data real-time dari MySQL didukung hanya untuk instans RDS for MySQL yang menjalankan MySQL
5.xatau8.x. Jika ingin menyinkronkan data dari database DRDS, jangan mengonfigurasinya sebagai sumber data MySQL. Sebagai gantinya, tambahkan sumber data DRDS ke DataWorks. Untuk informasi lebih lanjut, lihat Konfigurasi sumber data DRDS.Indeks fungsional tidak didukung.
Konfigurasi MySQL Reader
Buka halaman DataStudio.
Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi sisi kiri, pilih . Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Development.
Di panel Alur Kerja Terjadwal halaman DataStudio, gerakkan pointer di atas ikon
dan pilih .Atau, temukan alur kerja yang diinginkan di panel Alur Kerja Terjadwal, klik kanan nama alur kerja, dan pilih .
Di kotak dialog Create Node, atur parameter Sync Method menjadi End-to-end ETL dan konfigurasikan parameter Name dan Path.
Klik Confirm.
Pada tab konfigurasi node sinkronisasi real-time, seret ke kanvas.
Klik node MySQL. Di panel Node Configuration yang muncul, konfigurasikan parameter-parameter tersebut.

Parameter
Deskripsi
Data Source
Pilih sumber data MySQL yang telah dikonfigurasi. Hanya sumber data MySQL yang didukung.
Jika tidak ada sumber data yang tersedia, klik New Data Source di sebelah kanan untuk pergi ke halaman untuk membuat sumber data.
Table
Pilih nama tabel dari mana Anda ingin menyinkronkan data di sumber data saat ini. Anda dapat mengklik Data Preview di sebelah kanan untuk mengonfirmasi pilihan Anda.
Anda dapat menyinkronkan data dari database dan tabel bersharding. Database dan tabel yang dikonfigurasi disinkronkan secara real-time dalam tugas.
PentingUntuk mencegah kesalahan eksekusi, pastikan bahwa tabel dalam database bersharding menggunakan skema yang sama. Skema mencakup jumlah bidang, jenis bidang, nama bidang, dan urutan bidang.
Output Fields
Pilih bidang yang ingin Anda sinkronkan. Bidang-bidang tersebut meliputi Management Fields dan Data Fields.
Management Fields: bidang tambahan yang secara otomatis ditambahkan ke tujuan untuk memudahkan manajemen data, pengurutan, dan deduplikasi.
Data Fields: bidang dalam tabel sumber yang ingin Anda sinkronkan.
Untuk informasi lebih lanjut, lihat Bidang yang digunakan untuk sinkronisasi real-time.
Node MySQL mendukung sharding. Anda dapat mengklik Add Sharded Databases And Tables dan memilih Data Source dan Table yang diinginkan dari daftar drop-down untuk menambahkan beberapa sumber data untuk sinkronisasi bersamaan.
Klik ikon
di bilah alat.
FAQ
Tugas sinkronisasi real-time untuk sumber data MySQL membaca data awal tetapi kemudian berhenti. Apa yang harus saya lakukan?
Jalankan perintah berikut di database untuk melihat file log biner tempat instans database saat ini sedang menulis data.
show master statusCari entri log seperti
journalName=MySQL-bin.000001,position=50dalam log tugas. Bandingkan file log biner dalam log dengan file log biner saat ini dari database untuk memeriksa apakah data masih sedang ditulis.Jika data sedang ditulis ke database tetapi posisi log biner dalam log tugas tidak maju, hubungi administrator basis data (DBA) untuk bantuan.
Apa yang harus saya lakukan jika
Tidak dapat mereplikasi karena master telah membersihkan log biner yang diperlukan.kesalahan dilaporkan untuk tugas sinkronisasi real-time untuk MySQL?Jawaban: Pesan kesalahan lengkap adalah "
Cannot replicate because the master purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new slave from backup." Kesalahan ini terjadi karena catatan log biner pada offset konsumen tidak dapat ditemukan di MySQL. Periksa periode retensi log biner untuk database MySQL Anda. Saat Anda memulai tugas sinkronisasi, pastikan offset yang ditentukan berada dalam periode retensi. Jika Anda tidak dapat berlangganan log biner, coba atur ulang offset ke waktu saat ini.
Apa yang harus saya lakukan jika kesalahan
MySQLBinlogReaderExceptiondilaporkan untuk tugas sinkronisasi waktu nyata MySQL?Jawaban: Pesan kesalahan lengkapnya adalah "
MySQLBinlogReaderException: Database yang sedang Anda sinkronkan saat ini adalah database sekunder, tetapi nilai saat ini dari log_slave_updates adalah OFF, Anda perlu mengaktifkan pembaruan log biner dari database sekunder terlebih dahulu." Kesalahan ini terjadi karena binary logging tidak diaktifkan untuk database sekunder. Jika Anda ingin menyinkronkan data dari database sekunder, Anda harus mengaktifkan cascaded binary logging untuk itu. Hubungi DBA untuk bantuan.Untuk informasi lebih lanjut tentang cara mengaktifkan binary logging, lihat Aktifkan binary logging untuk MySQL.
Apa yang harus saya lakukan jika kesalahan
show master status' has an error!dilaporkan untuk tugas sinkronisasi waktu nyata MySQL?Jawaban: Pesan kesalahan lengkapnya adalah "
show master status' has an error!" dan informasi kesalahan detailnya adalah "Caused by: java.io.IOException: message=Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation, with command: show master status". Kesalahan ini terjadi karena akun sumber data belum diberikan izin yang diperlukan pada database.Akun yang Anda gunakan untuk mengonfigurasi sumber data harus memiliki izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database. Untuk informasi lebih lanjut tentang cara memberikan izin ke akun sumber data, lihat Langkah 2: Buat akun dan berikan izin ke akun tersebut.
Apa yang harus saya lakukan jika kesalahan
parse.exception.PositionNotFoundException: can't find start position for xxdilaporkan untuk tugas sinkronisasi waktu nyata MySQL?Jawaban: Kesalahan ini menunjukkan bahwa tugas sinkronisasi tidak dapat menemukan offset yang ditentukan. Anda harus menyetel ulang offset.
Apa yang harus saya lakukan jika kesalahan berikut dilaporkan untuk tugas sinkronisasi waktu nyata MySQL:
Offset database telah kedaluwarsa. Pilih offset lain. Offset tersedia paling awal dari database sumber adalah xxx.Setel ulang offset: Saat Anda memulai tugas sinkronisasi waktu nyata, setel ulang offset ke offset tersedia paling awal dari database sumber.
Atur periode retensi log biner: Jika offset database sering kedaluwarsa, Anda dapat meningkatkan periode retensi log biner di database MySQL. Sebagai contoh, Anda dapat mengatur periode retensi menjadi 7 hari.
Sinkronkan data: Jika data hilang, lakukan sinkronisasi data penuh lagi, atau konfigurasikan tugas sinkronisasi offline untuk menyinkronkan data yang hilang secara manual.
Apakah sinkronisasi waktu nyata mendukung penggabungan bidang berbeda dari beberapa tabel dalam satu database? Sebagai contoh, jika Tabel A berisi bidang a dan b, dan Tabel B berisi bidang a dan c, apakah data dapat disinkronkan ke tabel yang berisi bidang a, b, dan c?
Tidak, tidak mendukung. Sinkronisasi waktu nyata hanya didukung untuk beberapa tabel yang memiliki skema persis sama.