Verilerin değeri zamana duyarlıdır. Gerçek zamanlı işleme, veriye dayalı kararları doğru ve saatler veya günler yerine saniyeler veya dakikalar içinde eyleme geçirilebilir hale getirir. Değişiklik verisi yakalama (CDC), bir veritabanındaki verilerde yapılan değişiklikleri tanımlama ve yakalama ve ardından bu değişiklikleri gerçek zamanlı olarak bir alt sisteme iletme sürecini ifade eder. Bir kaynak veritabanındaki işlemlerdeki her değişikliğin yakalanması ve bunların gerçek zamanlı olarak hedefe taşınması, sistemlerin senkronize olmasını sağlar ve gerçek zamanlı analitik kullanım durumlarına ve sıfır kesinti süreli veritabanı geçişlerine yardımcı olur. Aşağıdakiler, CDC'nin birkaç avantajıdır:
- Artımlı yüklemeyi veya veri değişikliklerinin hedef havuzunuza gerçek zamanlı akışını sağlayarak toplu yük güncelleme ihtiyacını ve uygunsuz toplu iş pencerelerini ortadan kaldırır.
- Birden fazla sistemdeki verilerin senkronize kalmasını sağlar. Bu, özellikle yüksek hızlı bir veri ortamında zamana duyarlı kararlar alıyorsanız önemlidir.
Kafka Bağlantısı veritabanları, anahtar/değer depoları, arama dizinleri ve dosya sistemleri arasında basit veri entegrasyonu için merkezi bir veri merkezi olarak çalışan Apache Kafka'nın açık kaynaklı bir bileşenidir. bu AWS Tutkal Şeması Kayıt Defteri veri akışı şemalarını merkezi olarak keşfetmenizi, kontrol etmenizi ve geliştirmenizi sağlar. Kafka Connect ve Schema Registry, bağlayıcılardan şema bilgilerini yakalamak için entegre olur. Kafka Connect, Kafka Connect tarafından kullanılan dahili veri türlerinden verileri Avro, Protobuf veya JSON Schema olarak temsil edilen veri türlerine dönüştürmek için bir mekanizma sağlar. AvroConverter, ProtobufConverter ve JsonSchemaConverter, Kafka'ya veri üreten Kafka bağlayıcıları (kaynak) tarafından oluşturulan şemaları otomatik olarak kaydeder. Kafka'dan veri tüketen bağlayıcılar (havuz), her mesaj için veriye ek olarak şema bilgisi alır. Bu, havuz bağlayıcılarının, bir veri kataloğunda bir veritabanı tablosu şemasını sürdürmek gibi yetenekler sağlamak için verilerin yapısını bilmesini sağlar.
Gönderi, kullanarak uçtan uca bir CDC'nin nasıl oluşturulacağını gösterir. Amazon MSK Bağlantısı, veri akışı şemalarını merkezi olarak keşfetmenize, kontrol etmenize ve geliştirmenize olanak tanıyan Kafka Connect uygulamalarını ve AWS Glue Schema Registry'yi dağıtmak ve çalıştırmak için AWS tarafından yönetilen bir hizmet.
Çözüme genel bakış
Üretici tarafında, bu örnek için MySQL uyumlu bir sistem seçiyoruz. Amazon Aurora'sı veri kaynağı olarak veritabanı ve elimizde bir debezyum CDC gerçekleştirmek için MySQL bağlayıcısı. Debezium bağlayıcı, veritabanlarını sürekli olarak izler ve satır düzeyindeki değişiklikleri bir Kafka konusuna gönderir. Bağlayıcı, kayıtları ikili bir biçimde seri hale getirmek için şemayı veritabanından getirir. Şema, kayıt defterinde mevcut değilse, şema kaydedilecektir. Şema varsa ancak seri hale getirici yeni bir sürüm kullanıyorsa, şema kayıt defteri uyumluluk modu şemayı güncellemeden önce şemanın. Bu çözümde kullandığımız geriye dönük uyumluluk modu. Şemanın yeni bir sürümü geriye dönük olarak uyumlu değilse, şema kaydı bir hata döndürür ve Kafka Connect'i uyumsuz mesajları atılacak iletiler kuyruğuna gönderecek şekilde yapılandırabiliriz.
Tüketici tarafında, bir Amazon Basit Depolama Hizmeti Kaydın serisini kaldırmak ve değişiklikleri Amazon S3'te depolamak için (Amazon S3) havuz bağlayıcısı. MSK Connect kullanarak Debezium bağlayıcısını ve Amazon S3 havuzu oluşturup dağıtıyoruz.
Örnek şema
Bu yazı için, tablonun ilk versiyonu olarak aşağıdaki şemayı kullanıyoruz:
Önkoşullar
MSK üretici ve tüketici bağlayıcılarını yapılandırmadan önce, bir veri kaynağı, MSK kümesi ve yeni şema kaydı oluşturmamız gerekir. Biz bir sağlamak AWS CloudFormation Çözüm için gereken destekleyici kaynakları oluşturmak için şablon:
- Veri kaynağı olarak MySQL uyumlu bir Aurora veritabanı. CDC gerçekleştirmek için ikili günlüğe kaydetmeyi açıyoruz. DB kümesi parametre grubu.
- Bir MSK kümesi. Ağ bağlantısını basitleştirmek için Aurora veritabanı ve MSK kümesi için aynı VPC'yi kullanıyoruz.
- İleti anahtarı ve ileti değeri için şemaları işlemek üzere iki şema kaydı.
- Veri havuzu olarak bir S3 klasörü.
- Bu demo için gerekli olan MSK Connect eklentileri ve çalışan yapılandırması.
- Bir Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) veritabanı komutlarını çalıştırmak için örnek.
AWS hesabınızda kaynakları ayarlamak için Amazon MSK, MSK Connect ve AWS Glue Schema Registry'yi destekleyen bir AWS Bölgesinde aşağıdaki adımları tamamlayın:
- Klinik Yığını Başlat:
- Klinik Sonraki.
- İçin Yığın adı, uygun adı girin.
- İçin Veritabanı Şifresi, veritabanı kullanıcısı için istediğiniz şifreyi girin.
- Diğer değerleri varsayılan olarak tutun.
- Klinik Sonraki.
- Bir sonraki sayfada, seçin Sonraki.
- Son sayfadaki ayrıntıları gözden geçirin ve AWS CloudFormation'ın IAM kaynakları oluşturabileceğini kabul ediyorum.
- Klinik Yığın oluştur.
Kaynak ve hedef bağlayıcı için özel eklenti
Özel bir eklenti, bir veya daha fazla bağlayıcının, dönüşümün veya dönüştürücünün uygulanmasını içeren bir dizi JAR dosyasıdır. Amazon MSK, eklentiyi bağlayıcının çalıştığı MSK Connect kümesinin çalışanlarına yükleyecektir. Bu tanıtımın bir parçası olarak, kaynak bağlayıcı için açık kaynak kullanıyoruz Debezium MySQL bağlayıcı JAR'larıve hedef bağlayıcı için lisanslı Confluent topluluğu kullanıyoruz Amazon S3 lavabo konektörü JAR'ları. Her iki eklenti de aşağıdakiler için kitaplıklarla eklenir: Avro Serileştiriciler ve Serileştiriciler AWS Glue Schema Registry. Bu özel eklentiler, önceki adımda dağıtılan CloudFormation şablonunun bir parçası olarak zaten oluşturulmuştur.
AWS Glue Schema Registry'yi MSK üreticisi olarak MSK Connect üzerinde Debezium bağlayıcısı ile kullanın
Bir kaynaktan veri akışı sağlamak için önce Debezium MySQL eklentisini kullanarak kaynak bağlayıcıyı dağıtıyoruz. Amazon Aurora MySQL-Uyumlu Sürüm veritabanını Amazon MSK'ye aktarın. Aşağıdaki adımları tamamlayın:
- Amazon MSK konsolunda, gezinti bölmesinde, altında MSK Bağlantısı, seçmek konektörler.
- Klinik Bağlayıcı oluştur.
- Klinik Mevcut özel eklentiyi kullan ve ardından adıyla başlayan özel eklentiyi seçin
msk-blog-debezium-source-plugin
. - Klinik Sonraki.
- gibi uygun bir ad girin
debezium-mysql-connector
ve isteğe bağlı bir açıklama. - İçin Apache Kafka kümesi, seçmek MSK kümesi ve CloudFormation şablonu tarafından oluşturulan kümeyi seçin.
- In Bağlayıcı yapılandırması, varsayılan değerleri silin ve aşağıdaki yapılandırma anahtar/değer çiftlerini ve uygun değerlerle kullanın:
- isim – Bağlayıcı için kullanılan ad.
- veritabanı.anasistem adı – için CloudFormation çıktısı Veritabanı Uç Noktası.
- database.user ve database.password – CloudFormation şablonunda iletilen parametreler.
- veritabanı.history.kafka.bootstrap.servers – için CloudFormation çıktısı Kafka Önyükleme.
- key.converter.region ve value.converter.region – Bölgeniz.
Bu ayarlardan bazıları geneldir ve herhangi bir bağlayıcı için belirtilmelidir. Örneğin:
- connector.class, bağlayıcının Java sınıfıdır
- task.max, bu bağlayıcı için oluşturulması gereken maksimum görev sayısıdır
Bazı ayarlar (database.*
, transforms.*
) Debezium MySQL bağlayıcısına özeldir. bakın Debezium MySQL Kaynak Bağlayıcı Yapılandırma Özellikleri daha fazla bilgi için.
Bazı ayarlar (key.converter.*
ve value.converter.*
) Şema Kaydına özeldir. biz kullanıyoruz AWSKafkaAvroConverter
itibaren AWS Tutkal Şeması Kayıt Kitaplığı biçim dönüştürücü olarak. Yapılandırmak için AWSKafkaAvroConverter
, dize sabiti özelliklerinin değerini AWSSchemaRegistrySabitleri sınıf:
key.converter
vevalue.converter
kaynak bağlayıcılar için Kafka'ya yazılacak veya havuz bağlayıcılar için Kafka'dan okunacak verilerin biçimini kontrol edin. KullanırızAWSKafkaAvroConverter
Avro formatı için.key.converter.registry.name
vevalue.converter.registry.name
hangi şema kayıt defterinin kullanılacağını tanımlayın.key.converter.compatibility
vevalue.converter.compatibility
uyumluluk modelini tanımlayın.
Bakın AWS Glue Schema Registry ile Kafka Connect'i Kullanma daha fazla bilgi için.
- Sonra, yapılandırıyoruz Bağlayıcı kapasitesi. seçebiliriz Sağlanan ve diğer özellikleri varsayılan olarak bırakın
- İçin Çalışan yapılandırması, adla başlayan özel çalışan yapılandırmasını seçin
msk-gsr-blog
CloudFormation şablonunun bir parçası olarak oluşturuldu. - İçin Erişim izinleri, kullan AWS Kimlik ve Erişim Yönetimi CloudFormation şablonu tarafından oluşturulan (IAM) rolü
MSKConnectRole
. - Klinik Sonraki.
- İçin Güvenlik, varsayılanları seçin.
- Klinik Sonraki.
- İçin Günlük teslimiseçin Amazon CloudWatch Günlüklerini Teslim Edin ve CloudFormation şablonu tarafından oluşturulan günlük grubuna göz atın (
msk-connector-logs
). - Klinik Sonraki.
- Ayarları inceleyin ve seçin Bağlayıcı oluştur.
Birkaç dakika sonra bağlayıcı çalışma durumuna geçer.
MSK tüketicisi olarak MSK Connect üzerinde çalışan Confluent S3 havuz bağlayıcısı ile AWS Glue Schema Registry'yi kullanın
Amazon MSK'den Amazon S3'e veri akışı yapmak için Confluent S3 havuz eklentisini kullanarak havuz bağlayıcısını devreye alıyoruz. Aşağıdaki adımları tamamlayın:
-
- Amazon MSK konsolunda, gezinti bölmesinde, altında MSK Bağlantısı, seçmek konektörler.
- Klinik Bağlayıcı oluştur.
- Klinik Mevcut özel eklentiyi kullan ve adıyla başlayan özel eklentiyi seçin
msk-blog-S3sink-plugin
. - Klinik Sonraki.
- gibi uygun bir ad girin
s3-sink-connector
ve isteğe bağlı bir açıklama. - İçin Apache Kafka kümesi, seçmek MSK kümesi ve CloudFormation şablonu tarafından oluşturulan kümeyi seçin.
- In Bağlayıcı yapılandırması, sağlanan varsayılan değerleri silin ve aşağıdaki yapılandırma anahtar/değer çiftlerini uygun değerlerle kullanın:
-
- isim – Konektör için kullanılanla aynı ad.
- s3.bucket.name – için CloudFormation çıktısı Kova Adı.
- s3.region, key.converter.region ve value.converter.region – Bölgeniz.
-
- Sonra, yapılandırıyoruz Bağlayıcı kapasitesi. seçebiliriz Sağlanan ve diğer özellikleri varsayılan olarak bırakın
- İçin Çalışan yapılandırması, adla başlayan özel çalışan yapılandırmasını seçin
msk-gsr-blog
CloudFormation şablonunun bir parçası olarak oluşturuldu. - İçin Erişim izinleri, CloudFormation şablonu tarafından oluşturulan IAM rolünü kullanın
MSKConnectRole
. - Klinik Sonraki.
- İçin Güvenlik, varsayılanları seçin.
- Klinik Sonraki.
- İçin Günlük teslimiseçin Amazon CloudWatch Günlüklerini Teslim Edin ve CloudFormation şablonu tarafından oluşturulan günlük grubuna göz atın
msk-connector-logs
. - Klinik Sonraki.
- Ayarları inceleyin ve seçin Bağlayıcı oluştur.
Birkaç dakika sonra konektör çalışıyor.
Uçtan uca CDC günlük akışını test edin
Artık hem Debezium hem de S3 alıcı konektörleri çalışıyor ve çalışıyor, uçtan uca CDC'yi test etmek için aşağıdaki adımları tamamlayın:
- Amazon EC2 konsolunda şuraya gidin: Güvenlik grupları gidin.
- güvenlik grubunu seçin
ClientInstanceSecurityGroup
Ve seç Gelen kuralları düzenleyin. - Yerel ağınızdan SSH bağlantısına izin veren bir gelen kuralı ekleyin.
- Üzerinde Örnekleri sayfasında, örneği seçin
ClientInstance
Ve seç Sosyal medya. - Üzerinde EC2 Bulut Sunucusu Bağlantısı sekmesini seçin Sosyal medya.
- Geçerli çalışma dizininizin şu olduğundan emin olun:
/home/ec2-user
ve dosyaları varcreate_table.sql
,alter_table.sql
,initial_insert.sql
, veinsert_data_with_new_column.sql
. - Aşağıdaki komutu çalıştırarak MySQL veritabanınızda bir tablo oluşturun (CloudFormation şablon çıktılarından veritabanı ana bilgisayar adını sağlayın):
- Parola istendiğinde, CloudFormation şablon parametrelerinden parolayı girin.
- Aşağıdaki komutla bazı örnek verileri tabloya ekleyin:
- Parola istendiğinde, CloudFormation şablon parametrelerinden parolayı girin.
- AWS Glue konsolunda seçin Şema kayıtları gezinme bölmesinde, ardından Şemalar.
- Şu yöne rotayı ayarla
db1.sampledatabase.movies
film tablosu için oluşturulan yeni şemayı kontrol etmek için sürüm 1:
Kafka konusunun her bölümü için ayrı bir S3 klasörü oluşturulur ve konuya ilişkin veriler bu klasöre yazılır.
- Amazon S3 konsolunda, Kafka konunuz için klasörde Parquet biçiminde yazılmış verileri kontrol edin.
şema evrimi
İlk şema tanımlandıktan sonra, uygulamaların onu zaman içinde geliştirmesi gerekebilir. Bu olduğunda, aşağı yöndeki tüketicilerin hem eski hem de yeni şema ile kodlanmış verileri sorunsuz bir şekilde işleyebilmesi çok önemlidir. Uyumluluk modları, şemaların zaman içinde nasıl gelişip gelişemeyeceğini kontrol etmenize olanak tanır. Bu modlar, veri üreten ve tüketen uygulamalar arasındaki sözleşmeyi oluşturur. AWS Glue Schema Registry'de bulunan farklı uyumluluk modları hakkında ayrıntılı bilgi için bkz. AWS Tutkal Şeması Kayıt Defteri. Örneğimizde, tüketicilerin hem mevcut hem de önceki şema sürümlerini okuyabilmelerini sağlamak için geriye dönük taranabilirliği kullanıyoruz. Aşağıdaki adımları tamamlayın:
- Aşağıdaki komutu çalıştırarak tabloya yeni bir sütun ekleyin:
- Aşağıdaki komutu çalıştırarak tabloya yeni veriler ekleyin:
- AWS Glue konsolunda seçin Şema kayıtları gezinme bölmesinde, ardından Şemalar.
- Şemaya git
db1.sampledatabase.movies
Sürüm 2, eklediğiniz ülke sütununu içeren filmler tablosu filmleri için oluşturulan şemanın yeni sürümünü kontrol etmek için:
- Amazon S3 konsolunda, Kafka konusuna ilişkin klasörde Parquet biçiminde yazılmış verileri kontrol edin.
Temizlemek
AWS hesabınızdan istenmeyen ücretler alınmasını önlemeye yardımcı olmak için bu gönderide kullandığınız AWS kaynaklarını silin:
- Amazon S3 konsolunda, CloudFormation şablonu tarafından oluşturulan S3 klasörüne gidin.
- Tüm dosya ve klasörleri seçin ve seçin Sil.
- Belirtildiği gibi kalıcı olarak sil'e girin ve seçin nesneleri sil.
- AWS CloudFormation konsolunda, oluşturduğunuz yığını silin.
- Yığın durumunun şu şekilde değişmesini bekleyin: DELETE_COMPLETE.
Sonuç
Bu gönderi, bir CDC günlük akışı oluşturmak ve iş gereksinimleri değiştikçe veri akışları için şemalar geliştirmek üzere Amazon MSK, MSK Connect ve AWS Glue Schema Registry'nin nasıl kullanılacağını gösterdi. Bu mimari modelini, farklı Kafka bağlayıcıları olan diğer veri kaynaklarına uygulayabilirsiniz. Daha fazla bilgi için bkz. MSK Bağlantı örnekleri.
Yazar Hakkında
Kalyan Janaki Amazon Web Services Kıdemli Büyük Veri ve Analitik Uzmanıdır. Müşterilerin AWS üzerinde yüksek düzeyde ölçeklenebilir, performanslı ve güvenli bulut tabanlı çözümler tasarlamasına ve oluşturmasına yardımcı olur.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/big-data/build-an-end-to-end-change-data-capture-with-amazon-msk-connect-and-aws-glue-schema-registry/
- :dır-dir
- $UP
- 1
- 10
- 11
- 7
- 8
- a
- Yapabilmek
- Hakkımızda
- erişim
- Hesap
- doğru
- onaylamak
- katma
- ilave
- Türkiye
- Izin
- veriyor
- zaten
- Amazon
- Amazon EC2
- Amazon Web Servisleri
- analytics
- ve
- Apache
- Apache Kafka
- uygulamaları
- Tamam
- uygun
- mimari
- ARE
- AS
- şafak
- otomatik olarak
- mevcut
- AWS
- AWS CloudFormation
- AWS Tutkal
- BE
- önce
- faydaları
- arasında
- Büyük
- büyük Veri
- Çizme atkısı
- inşa etmek
- iş
- by
- CAN
- yetenekleri
- ele geçirmek
- Yakalama
- durumlarda
- katalog
- CDC)
- merkezi
- değişiklik
- değişiklikler
- yükler
- Kontrol
- Çekler
- Klinik
- sınıf
- Küme
- Sütun
- topluluk
- uygunluk
- uyumlu
- tamamlamak
- bileşen
- hesaplamak
- yapılandırma
- Kavşak
- Sosyal medya
- bağ
- konsolos
- sabit
- tüketmek
- tüketici
- Tüketiciler
- devamlı olarak
- sözleşme
- kontrol
- ülke
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- kritik
- akım
- görenek
- Müşteriler
- veri
- veri entegrasyonu
- veri-güdümlü
- veritabanı
- veritabanları
- Günler
- kararlar
- Varsayılan
- varsayılan
- tanımlı
- teslim
- Gösteri
- gösterdi
- gösteriyor
- dağıtmak
- konuşlandırılmış
- tanım
- hedef
- detaylı
- ayrıntılar
- farklı
- yönlendirilmiş
- keşfetmek
- Değil
- Damla
- her
- ortadan kaldırır
- etkinleştirme
- son uca
- sağlamak
- olmasını sağlar
- Keşfet
- çevre
- hata
- özellikle
- Eter (ETH)
- Her
- gelişmek
- örnek
- mevcut
- var
- az
- Alanlar
- fileto
- dosyalar
- son
- Ad
- takip etme
- İçin
- Airdrop Formu
- biçim
- itibaren
- oluşturmak
- oluşturulan
- grup
- Grubun
- sap
- kullanma
- olur
- Var
- yardım et
- yardımcı olur
- büyük ölçüde
- tarih
- ev sahibi
- SAAT
- Ne kadar
- Nasıl Yapılır
- HTML
- http
- HTTPS
- merkez
- IAM
- belirlenmesi
- Kimlik
- uygulama
- önemli
- in
- Dahil olmak üzere
- indeksler
- bilgi
- ilk
- kurmak
- örnek
- yerine
- entegre
- bütünleşme
- iç
- IT
- Java
- jpg
- json
- kafka
- anahtar
- Bilmek
- Ayrılmak
- kütüphaneler
- ruhsatlı
- sevmek
- yük
- yükleme
- yerel
- Uzun
- yapılmış
- YAPAR
- Yapımı
- yönetilen
- usta
- maksimum
- maksimum
- mekanizma
- mesaj
- mesajları
- olabilir
- dakika
- model
- modları
- monitörler
- Daha
- filmler
- hareketli
- çoklu
- MySQL
- isim
- Gezin
- Navigasyon
- gerek
- gerekli
- ihtiyaçlar
- ağ
- yeni
- sonraki
- numara
- of
- Eski
- on
- ONE
- açık kaynak
- Diğer
- çıktı
- Kanal
- çiftleri
- bölmesi
- parametre
- parametreler
- Bölüm
- geçti
- Şifre
- model
- yapmak
- kalıcı olarak
- seçmek
- Platon
- Plato Veri Zekası
- PlatoVeri
- fişe takmak
- eklentileri
- Çivi
- önlemek
- önceki
- süreç
- işleme
- üretmek
- üretici
- özellikleri
- sağlamak
- sağlanan
- sağlar
- Okumak
- gerçek
- gerçek zaman
- teslim almak
- kayıt
- kayıtlar
- ifade eder
- bölge
- kayıt olmak
- kayıtlı
- kayıt
- Depo
- temsil
- Kaynaklar
- İade
- Rol
- Kural
- koşmak
- koşu
- aynı
- ölçeklenebilir
- sorunsuz
- Ara
- saniye
- güvenli
- güvenlik
- kıdemli
- hassas
- ayrı
- hizmet
- Hizmetler
- set
- ayarlar
- meli
- Basit
- basitleştirmek
- çözüm
- Çözümler
- biraz
- Kaynak
- kaynaklar
- uzman
- özel
- Belirtilen
- yığın
- XNUMX dakika içinde!
- Durum
- adım
- Basamaklar
- hafızası
- mağaza
- mağaza
- dere
- akış
- dere
- yapı
- uygun
- Destek
- Destekler
- senkron.
- sistem
- Sistemler
- tablo
- Hedef
- görevleri
- şablon
- test
- o
- The
- Kaynak
- Onları
- Bunlar
- zaman
- zamana duyarlı
- Başlık
- için
- konu
- işlemler
- DÖNÜŞ
- türleri
- altında
- istenmeyen
- güncellenmesi
- kullanım
- kullanıcı
- değer
- Değerler
- versiyon
- ağ
- web hizmetleri
- hangi
- irade
- pencereler
- ile
- işçi
- işçiler
- çalışma
- çalışır
- yazılı
- zefirnet