Nilai data sensitif terhadap waktu. Pemrosesan waktu nyata membuat keputusan berdasarkan data menjadi akurat dan dapat ditindaklanjuti dalam hitungan detik atau menit, bukan jam atau hari. Change data capture (CDC) mengacu pada proses mengidentifikasi dan menangkap perubahan yang dibuat pada data dalam database dan kemudian mengirimkan perubahan tersebut secara real time ke sistem hilir. Menangkap setiap perubahan dari transaksi dalam database sumber dan memindahkannya ke target secara real time membuat sistem tetap sinkron, dan membantu dengan kasus penggunaan analitik real-time dan migrasi database zero-downtime. Berikut ini adalah beberapa manfaat CDC:
- Ini meniadakan kebutuhan untuk pembaruan beban massal dan jendela batch yang tidak nyaman dengan mengaktifkan pemuatan bertahap atau streaming perubahan data secara real-time ke dalam repositori target Anda.
- Ini memastikan bahwa data dalam banyak sistem tetap sinkron. Ini sangat penting jika Anda membuat keputusan yang sensitif terhadap waktu di lingkungan data berkecepatan tinggi.
Koneksi Kafka adalah komponen sumber terbuka Apache Kafka yang berfungsi sebagai pusat data terpusat untuk integrasi data sederhana antara basis data, penyimpanan nilai kunci, indeks pencarian, dan sistem file. Itu Registri Skema Lem AWS memungkinkan Anda menemukan, mengontrol, dan mengembangkan skema aliran data secara terpusat. Kafka Connect dan Schema Registry berintegrasi untuk menangkap informasi skema dari konektor. Kafka Connect menyediakan mekanisme untuk mengonversi data dari tipe data internal yang digunakan oleh Kafka Connect ke tipe data yang direpresentasikan sebagai Skema Avro, Protobuf, atau JSON. AvroConverter, ProtobufConverter, dan JsonSchemaConverter secara otomatis mendaftarkan skema yang dihasilkan oleh konektor Kafka (sumber) yang menghasilkan data ke Kafka. Konektor (sink) yang menggunakan data dari Kafka menerima informasi skema selain data untuk setiap pesan. Hal ini memungkinkan konektor wastafel mengetahui struktur data untuk memberikan kemampuan seperti mempertahankan skema tabel database dalam katalog data.
Posting tersebut menunjukkan cara membangun CDC end-to-end menggunakan Amazon MSK Terhubung, layanan terkelola AWS untuk menerapkan dan menjalankan aplikasi Kafka Connect dan AWS Glue Schema Registry, yang memungkinkan Anda menemukan, mengontrol, dan mengembangkan skema aliran data secara terpusat.
Ikhtisar solusi
Di sisi produsen, untuk contoh ini kami memilih yang kompatibel dengan MySQL Amazon Aurora database sebagai sumber data, dan kami memiliki Debezium konektor MySQL untuk melakukan CDC. Konektor Debezium terus memantau database dan mendorong perubahan tingkat baris ke topik Kafka. Konektor mengambil skema dari database untuk membuat serial catatan menjadi bentuk biner. Jika skema belum ada di registri, skema akan didaftarkan. Jika skema ada tetapi serializer menggunakan versi baru, registri skema akan memeriksa modus kompatibilitas skema sebelum memperbarui skema. Dalam solusi ini, kami menggunakan mode kompatibilitas mundur. Registri skema mengembalikan kesalahan jika versi baru dari skema tidak kompatibel ke belakang, dan kami dapat mengonfigurasi Kafka Connect untuk mengirim pesan yang tidak kompatibel ke antrian surat mati.
Di sisi konsumen, kami menggunakan an Layanan Penyimpanan Sederhana Amazon (Amazon S3) sink connector untuk deserialize rekaman dan menyimpan perubahan ke Amazon S3. Kami membangun dan menerapkan konektor Debezium dan Amazon S3 sink menggunakan MSK Connect.
Contoh skema
Untuk posting ini, kami menggunakan skema berikut sebagai versi pertama tabel:
Prasyarat
Sebelum mengonfigurasi konektor produsen dan konsumen MSK, pertama-tama kita perlu menyiapkan sumber data, cluster MSK, dan registri skema baru. Kami menyediakan sebuah Formasi AWS Cloud template untuk menghasilkan sumber daya pendukung yang diperlukan untuk solusi:
- Database Aurora yang kompatibel dengan MySQL sebagai sumber data. Untuk melakukan CDC, kami mengaktifkan logging biner di Grup parameter cluster DB.
- Kluster MSK. Untuk menyederhanakan koneksi jaringan, kami menggunakan VPC yang sama untuk database Aurora dan cluster MSK.
- Dua pendaftar skema untuk menangani skema untuk kunci pesan dan nilai pesan.
- Satu bucket S3 sebagai tempat penyimpanan data.
- Plugin MSK Connect dan konfigurasi pekerja diperlukan untuk demo ini.
- Satu Cloud komputasi elastis Amazon (Amazon EC2) untuk menjalankan perintah database.
Untuk menyiapkan sumber daya di akun AWS Anda, selesaikan langkah-langkah berikut di Wilayah AWS yang mendukung Amazon MSK, MSK Connect, dan Registri Skema AWS Glue:
- Pilih Luncurkan Stack:
- Pilih Selanjutnya.
- Untuk Nama tumpukan, masukkan nama yang sesuai.
- Untuk Kata Sandi Basis Data, masukkan kata sandi yang Anda inginkan untuk pengguna basis data.
- Pertahankan nilai lain sebagai default.
- Pilih Selanjutnya.
- Di halaman berikutnya, pilih Selanjutnya.
- Tinjau detailnya di halaman terakhir dan pilih Saya mengakui bahwa AWS CloudFormation dapat menciptakan sumber daya IAM.
- Pilih Buat tumpukan.
Plugin khusus untuk konektor sumber dan tujuan
Plugin khusus adalah kumpulan file JAR yang berisi penerapan satu atau beberapa konektor, transformasi, atau konverter. Amazon MSK akan menginstal plugin pada pekerja klaster MSK Connect tempat konektor berjalan. Sebagai bagian dari demo ini, untuk konektor sumber kami menggunakan sumber terbuka JAR konektor Debezium MySQL, dan untuk konektor tujuan kami menggunakan lisensi Confluent community JAR konektor sink Amazon S3. Kedua plugin tersebut juga ditambahkan dengan library untuk Avro Serializers dan Deserializers Registri Skema AWS Glue. Plugin khusus ini sudah dibuat sebagai bagian dari template CloudFormation yang diterapkan pada langkah sebelumnya.
Gunakan AWS Glue Schema Registry dengan konektor Debezium di MSK Connect sebagai produsen MSK
Kami pertama-tama menerapkan konektor sumber menggunakan plugin Debezium MySQL untuk mengalirkan data dari Amazon Aurora Edisi yang Kompatibel dengan MySQL basis data ke Amazon MSK. Selesaikan langkah-langkah berikut:
- Di konsol Amazon MSK, di panel navigasi, di bawah Koneksi MSK, pilih konektor.
- Pilih Buat konektor.
- Pilih Gunakan plugin khusus yang ada lalu pilih plugin khusus dengan awalan nama
msk-blog-debezium-source-plugin
. - Pilih Selanjutnya.
- Masukkan nama yang cocok seperti
debezium-mysql-connector
dan deskripsi opsional. - Untuk Kluster Apache Kafka, pilih gugus MSK dan pilih cluster yang dibuat oleh template CloudFormation.
- In Konfigurasi konektor, hapus nilai default dan gunakan pasangan kunci-nilai konfigurasi berikut dan dengan nilai yang sesuai:
- nama – Nama yang digunakan untuk konektor.
- database.nama host – Keluaran CloudFormation untuk Titik Akhir Basis Data.
- database.user dan database.password – Parameter yang diteruskan dalam template CloudFormation.
- database.history.kafka.bootstrap.servers – Keluaran CloudFormation untuk Tali Sepatu Kafka.
- key.converter.region dan value.converter.region – Wilayah Anda.
Beberapa pengaturan ini bersifat umum dan harus ditentukan untuk konektor apa pun. Misalnya:
- connector.class adalah kelas konektor Java
- task.max adalah jumlah maksimum tugas yang harus dibuat untuk konektor ini
Beberapa pengaturan (database.*
, transforms.*
) khusus untuk konektor Debezium MySQL. Mengacu pada Properti Konfigurasi Konektor Sumber MySQL Debezium for more information.
Beberapa pengaturan (key.converter.*
dan value.converter.*
) khusus untuk Registri Skema. Kami menggunakan AWSKafkaAvroConverter
dari Perpustakaan Registri Skema AWS Glue sebagai pengubah format. Untuk mengkonfigurasi AWSKafkaAvroConverter
, kami menggunakan nilai properti konstanta string di AWSSchemaRegistryConstants kelas:
key.converter
danvalue.converter
mengontrol format data yang akan ditulis ke Kafka untuk konektor sumber atau membaca dari Kafka untuk konektor sink. Kita gunakanAWSKafkaAvroConverter
untuk format Avro.key.converter.registry.name
danvalue.converter.registry.name
tentukan registri skema mana yang akan digunakan.key.converter.compatibility
danvalue.converter.compatibility
menentukan model kompatibilitas.
Lihat Menggunakan Kafka Connect dengan AWS Glue Schema Registry for more information.
- Selanjutnya, kita mengkonfigurasi Kapasitas konektor. Kita bisa memilih Disediakan dan biarkan properti lainnya sebagai default
- Untuk Konfigurasi pekerja, pilih konfigurasi pekerja kustom dengan awalan nama
msk-gsr-blog
dibuat sebagai bagian dari template CloudFormation. - Untuk Izin akses, menggunakan Identitas AWS dan Manajemen Akses (IAM) peran yang dihasilkan oleh template CloudFormation
MSKConnectRole
. - Pilih Selanjutnya.
- Untuk Security, pilih default.
- Pilih Selanjutnya.
- Untuk Pengiriman log, pilih Kirim ke Amazon CloudWatch Logs dan telusuri grup log yang dibuat oleh template CloudFormation (
msk-connector-logs
). - Pilih Selanjutnya.
- Tinjau pengaturan dan pilih Buat konektor.
Setelah beberapa menit, konektor berubah menjadi status berjalan.
Gunakan Registri Skema AWS Glue dengan konektor wastafel Confluent S3 yang berjalan di MSK Connect sebagai konsumen MSK
Kami menerapkan konektor sink menggunakan plugin sink Confluent S3 untuk mengalirkan data dari Amazon MSK ke Amazon S3. Selesaikan langkah-langkah berikut:
-
- Di konsol Amazon MSK, di panel navigasi, di bawah Koneksi MSK, pilih konektor.
- Pilih Buat konektor.
- Pilih Gunakan plugin khusus yang ada dan pilih plugin khusus dengan awalan nama
msk-blog-S3sink-plugin
. - Pilih Selanjutnya.
- Masukkan nama yang cocok seperti
s3-sink-connector
dan deskripsi opsional. - Untuk Kluster Apache Kafka, pilih gugus MSK dan pilih cluster yang dibuat oleh template CloudFormation.
- In Konfigurasi konektor, hapus nilai default yang disediakan dan gunakan key-value pair konfigurasi berikut dengan nilai yang sesuai:
-
- nama – Nama yang sama digunakan untuk konektor.
- s3.bucket.nama – Keluaran CloudFormation untuk Nama Keranjang.
- s3.region, key.converter.region, dan value.converter.region – Wilayah Anda.
-
- Selanjutnya, kita mengkonfigurasi Kapasitas konektor. Kita bisa memilih Disediakan dan biarkan properti lainnya sebagai default
- Untuk Konfigurasi pekerja, pilih konfigurasi pekerja kustom dengan awalan nama
msk-gsr-blog
dibuat sebagai bagian dari template CloudFormation. - Untuk Izin akses, gunakan peran IAM yang dihasilkan oleh template CloudFormation
MSKConnectRole
. - Pilih Selanjutnya.
- Untuk Security, pilih default.
- Pilih Selanjutnya.
- Untuk Pengiriman log, pilih Kirim ke Amazon CloudWatch Logs dan telusuri grup log yang dibuat oleh template CloudFormation
msk-connector-logs
. - Pilih Selanjutnya.
- Tinjau pengaturan dan pilih Buat konektor.
Setelah beberapa menit, konektor berjalan.
Uji aliran log CDC end-to-end
Sekarang setelah konektor sink Debezium dan S3 aktif dan berjalan, selesaikan langkah-langkah berikut untuk menguji CDC end-to-end:
- Di konsol Amazon EC2, navigasikan ke Kelompok keamanan .
- Pilih grup keamanan
ClientInstanceSecurityGroup
Dan pilihlah Edit aturan masuk. - Tambahkan aturan masuk yang mengizinkan koneksi SSH dari jaringan lokal Anda.
- pada Contoh halaman, pilih instance
ClientInstance
Dan pilihlah Terhubung. - pada Koneksi Instans EC2 tab, pilih Terhubung.
- Pastikan direktori kerja Anda saat ini
/home/ec2-user
dan memiliki filecreate_table.sql
,alter_table.sql
,initial_insert.sql
, daninsert_data_with_new_column.sql
. - Buat tabel di database MySQL Anda dengan menjalankan perintah berikut (berikan nama host database dari output template CloudFormation):
- Saat diminta kata sandi, masukkan kata sandi dari parameter template CloudFormation.
- Masukkan beberapa contoh data ke dalam tabel dengan perintah berikut:
- Saat diminta kata sandi, masukkan kata sandi dari parameter template CloudFormation.
- Di konsol AWS Glue, pilih Registri skema di panel navigasi, lalu pilih skema.
- Navigasi ke
db1.sampledatabase.movies
versi 1 untuk memeriksa skema baru yang dibuat untuk tabel film:
Folder S3 terpisah dibuat untuk setiap partisi topik Kafka, dan data untuk topik ditulis di folder itu.
- Di konsol Amazon S3, periksa data yang ditulis dalam format Parquet di folder untuk topik Kafka Anda.
Evolusi skema
Setelah skema awal ditentukan, aplikasi mungkin perlu mengembangkannya dari waktu ke waktu. Ketika ini terjadi, sangat penting bagi konsumen hilir untuk dapat menangani data yang dikodekan dengan skema lama dan baru dengan lancar. Mode kompatibilitas memungkinkan Anda mengontrol bagaimana skema dapat atau tidak dapat berkembang dari waktu ke waktu. Mode ini membentuk kontrak antara aplikasi yang memproduksi dan mengkonsumsi data. Untuk informasi mendetail tentang berbagai mode kompatibilitas yang tersedia di AWS Glue Schema Registry, lihat Registri Skema Lem AWS. Dalam contoh kami, kami menggunakan daya gabung mundur untuk memastikan konsumen dapat membaca versi skema saat ini dan sebelumnya. Selesaikan langkah-langkah berikut:
- Tambahkan kolom baru ke tabel dengan menjalankan perintah berikut:
- Masukkan data baru ke dalam tabel dengan menjalankan perintah berikut:
- Di konsol AWS Glue, pilih Registri skema di panel navigasi, lalu pilih skema.
- Arahkan ke skema
db1.sampledatabase.movies
versi 2 untuk memeriksa versi baru skema yang dibuat untuk tabel film film termasuk kolom negara yang Anda tambahkan:
- Di konsol Amazon S3, periksa data yang ditulis dalam format Parquet di folder untuk topik Kafka.
Membersihkan
Untuk membantu mencegah tagihan yang tidak diinginkan ke akun AWS Anda, hapus sumber daya AWS yang Anda gunakan di postingan ini:
- Di konsol Amazon S3, navigasikan ke bucket S3 yang dibuat oleh template CloudFormation.
- Pilih semua file dan folder dan pilih Delete.
- Masukkan hapus secara permanen sesuai petunjuk dan pilih Hapus objek.
- Di konsol AWS CloudFormation, hapus tumpukan yang Anda buat.
- Tunggu hingga status tumpukan berubah menjadi HAPUS_SELESAI.
Kesimpulan
Posting ini menunjukkan cara menggunakan Amazon MSK, MSK Connect, dan AWS Glue Schema Registry untuk membangun aliran log CDC dan mengembangkan skema untuk aliran data saat kebutuhan bisnis berubah. Anda dapat menerapkan pola arsitektur ini ke sumber data lain dengan penghubung Kafka yang berbeda. Untuk informasi lebih lanjut, lihat Contoh MSK Connect.
tentang Penulis
Kalyan Janaki adalah Spesialis Big Data & Analitik Senior di Amazon Web Services. Dia membantu pelanggan merancang dan membangun solusi berbasis cloud yang sangat dapat diskalakan, berkinerja, dan aman di AWS.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/big-data/build-an-end-to-end-change-data-capture-with-amazon-msk-connect-and-aws-glue-schema-registry/
- :adalah
- $NAIK
- 1
- 10
- 11
- 7
- 8
- a
- Sanggup
- Tentang Kami
- mengakses
- Akun
- tepat
- mengakui
- menambahkan
- tambahan
- Semua
- Membiarkan
- memungkinkan
- sudah
- Amazon
- Amazon EC2
- Amazon Web Services
- analisis
- dan
- Apache
- Apache Kafka
- aplikasi
- Mendaftar
- sesuai
- arsitektur
- ADALAH
- AS
- Aurora
- secara otomatis
- tersedia
- AWS
- Formasi AWS Cloud
- Lem AWS
- BE
- sebelum
- Manfaat
- antara
- Besar
- Big data
- Bootstrap
- membangun
- bisnis
- by
- CAN
- kemampuan
- menangkap
- Menangkap
- kasus
- katalog
- CDC
- terpusat
- perubahan
- Perubahan
- beban
- memeriksa
- Cek
- Pilih
- kelas
- Kelompok
- Kolom
- masyarakat
- kesesuaian
- cocok
- lengkap
- komponen
- menghitung
- konfigurasi
- Anak sungai
- Terhubung
- koneksi
- konsul
- konstan
- memakan
- konsumen
- Konsumen
- terus menerus
- kontrak
- kontrol
- negara
- membuat
- dibuat
- kritis
- terbaru
- adat
- pelanggan
- data
- integrasi data
- Data-driven
- Basis Data
- database
- Hari
- keputusan
- Default
- default
- didefinisikan
- mengantarkan
- Demo
- menunjukkan
- menunjukkan
- menyebarkan
- dikerahkan
- deskripsi
- tujuan
- terperinci
- rincian
- berbeda
- menemukan
- Tidak
- Menjatuhkan
- setiap
- menghilangkan
- memungkinkan
- ujung ke ujung
- memastikan
- Memastikan
- Enter
- Lingkungan Hidup
- kesalahan
- terutama
- Eter (ETH)
- Setiap
- berkembang
- contoh
- ada
- ada
- beberapa
- Fields
- File
- File
- terakhir
- Pertama
- berikut
- Untuk
- bentuk
- format
- dari
- menghasilkan
- dihasilkan
- Kelompok
- Grup
- menangani
- Penanganan
- Terjadi
- Memiliki
- membantu
- membantu
- sangat
- sejarah
- tuan rumah
- JAM
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTML
- http
- HTTPS
- Pusat
- IAM
- mengidentifikasi
- identitas
- implementasi
- penting
- in
- Termasuk
- indeks
- informasi
- mulanya
- install
- contoh
- sebagai gantinya
- mengintegrasikan
- integrasi
- intern
- IT
- Jawa
- jpg
- json
- kafka
- kunci
- Tahu
- Meninggalkan
- perpustakaan
- Izin
- 'like'
- memuat
- pemuatan
- lokal
- Panjang
- terbuat
- MEMBUAT
- Membuat
- berhasil
- menguasai
- max
- maksimum
- mekanisme
- pesan
- pesan
- mungkin
- menit
- model
- mode
- monitor
- lebih
- bioskop
- bergerak
- beberapa
- MySQL
- nama
- Arahkan
- Navigasi
- Perlu
- dibutuhkan
- kebutuhan
- jaringan
- New
- berikutnya
- jumlah
- of
- Tua
- on
- ONE
- open source
- Lainnya
- keluaran
- halaman
- pasang
- pane
- parameter
- parameter
- bagian
- Lulus
- Kata Sandi
- pola
- melakukan
- tetap
- memilih
- plato
- Kecerdasan Data Plato
- Data Plato
- Plugin
- plugin
- Pos
- mencegah
- sebelumnya
- proses
- pengolahan
- menghasilkan
- produsen
- properties
- memberikan
- disediakan
- menyediakan
- Baca
- nyata
- real-time
- menerima
- catatan
- arsip
- mengacu
- wilayah
- daftar
- terdaftar
- pendaftaran
- gudang
- diwakili
- Sumber
- Pengembalian
- Peran
- Aturan
- Run
- berjalan
- sama
- terukur
- mulus
- Pencarian
- detik
- aman
- keamanan
- senior
- peka
- terpisah
- layanan
- Layanan
- set
- pengaturan
- harus
- Sederhana
- menyederhanakan
- larutan
- Solusi
- beberapa
- sumber
- sumber
- spesialis
- tertentu
- ditentukan
- tumpukan
- Mulai
- Status
- Langkah
- Tangga
- penyimpanan
- menyimpan
- toko
- aliran
- Streaming
- stream
- struktur
- cocok
- pendukung
- Mendukung
- sinkronisasi.
- sistem
- sistem
- tabel
- target
- tugas
- Template
- uji
- bahwa
- Grafik
- Sumber
- Mereka
- Ini
- waktu
- peka waktu
- Judul
- untuk
- tema
- Transaksi
- MENGHIDUPKAN
- jenis
- bawah
- tidak diinginkan
- memperbarui
- menggunakan
- Pengguna
- nilai
- Nilai - Nilai
- versi
- jaringan
- layanan web
- yang
- akan
- Windows
- dengan
- pekerja
- pekerja
- kerja
- bekerja
- tertulis
- Anda
- zephyrnet.dll