MySQL kaynak bağlayıcısı, ApsaraDB RDS for MySQL veritabanındaki satır düzeyindeki değişiklikleri ApsaraMQ for Kafka örneğinizdeki konularla senkronize eder. Bağlayıcı; INSERT, UPDATE ve DELETE işlemleri dahil olmak üzere değişen veri yakalama (CDC) olaylarını kaydetmek için DataWorks hizmetini kullanır ve bu olayları Kafka konularına iletir.
Çalışma mantığı
ApsaraMQ for Kafka konsolu üzerinden bir MySQL kaynak bağlayıcısı oluşturduğunuzda sistem aşağıdaki işlemleri otomatik olarak gerçekleştirir:
DataWorks Basic Edition'ı (ücretsiz) etkinleştirir.
Bir DataWorks çalışma alanı ve veri entegrasyonu için özel bir kaynak grubu oluşturur.
Kafka örneğinizde hedef konular oluşturur; her kaynak tablo için bir konu oluşturulur.
Özel kaynak grubu (4 vCPU, 8 GB bellek), veri senkronizasyon görevlerini çalıştırır. Kaynak grupları aylık abonelik modeliyle sunulur ve süresi dolduğunda otomatik olarak yenilenir.
Veri entegrasyonu için özel kaynak grupları ücretli hizmetlerdir. Fiyatlandırma ayrıntıları için bkz. Faturalandırmaya genel bakış.

Konu adlandırma ve bölümler
DataWorks, aşağıdaki adlandırma desenini kullanarak her kaynak tablo için bir hedef konu oluşturur:
<topic-prefix>_<source-table-name>
Alt çizgi otomatik olarak eklenir. Örneğin, ön ek mysql ise ve kaynak tablolar table_1, table_2 ve table_n ise oluşturulan konular mysql_table_1, mysql_table_2 ve mysql_table_n olur.

Bölüm sayısı, kaynak tablonun birincil anahtara sahip olup olmadığına bağlıdır:
| Kaynak tablo türü | Konu başına bölüm sayısı |
|---|---|
| Birincil anahtar var | 6 |
| Birincil anahtar yok | 1 |
Kafka örneğinizde yeterli sayıda kullanılabilir konu ve bölüm bulunduğundan emin olun. Örneklerde konu veya bölüm kotası dolarsa konu oluşturma işlemi başarısız olur ve bağlayıcı dağıtılamaz.
Bölge ve ağ yapılandırması
Aynı bölge -- Hem RDS MySQL örneği hem de Kafka örneği aynı bölgede bulunuyorsa sistem, ilgili sanal özel cloud (VPC) içinde otomatik olarak bir esnek ağ arabirimi (ENI) oluşturur ve bunu özel kaynak grubunun Elastic Compute Service (ECS) örneğine bağlar. Manuel ağ kurulumu gerekmez.
Farklı bölgeler -- Örnekler farklı bölgelerde bulunuyorsa aşağıdaki koşulların sağlandığından emin olun:
Aynı Alibaba Cloud hesabı altında bir Cloud Enterprise Network (CEN) örneği mevcuttur.
Hem RDS MySQL örneğinin hem de Kafka örneğinin VPC'leri CEN örneğine eklenmiştir.
CEN örneği için bölge üstü bant genişliği yapılandırılmıştır.
Doğru CEN yapılandırması olmadan sistem otomatik olarak bir CEN örneği oluşturabilir ancak bant genişliği çok düşük olabilir. Bu durum, bağlayıcı oluşturma sırasında veya çalışma zamanında bağlantı hatalarına neden olabilir.
Özel kaynak grubu sınırlamaları
| Sınır | Değer |
|---|---|
| Kaynak grubu başına maksimum bağlayıcı sayısı | 3 |
| Kaynak grubu başına maksimum VPC ENI ilişkisi | 2 |
Mevcut bir kaynak grubunda üçten az bağlayıcı varsa DataWorks yeni bağlayıcılar için bu grubu yeniden kullanır. Ancak CIDR bloğu çakışmaları veya diğer teknik kısıtlamalar yeniden kullanımı engellerse DataWorks bunun yerine yeni bir kaynak grubu oluşturur.
Ön koşullar
Başlamadan önce aşağıdaki koşulların sağlandığından emin olun:
Bağlayıcı özelliği etkin bir ApsaraMQ for Kafka örneği. Örnek şu bölgelerden birinde dağıtılmalıdır: Çin (Shenzhen), Çin (Chengdu), Çin (Pekin), Çin (Zhangjiakou), Çin (Hangzhou), Çin (Şanghay) veya Singapur.
Bir ApsaraDB RDS for MySQL örneği, bir veritabanı, veritabanı hesabı ve en az bir tablo. SQL referansı için bkz. MySQL için sık kullanılan SQL deyimleri
RDS MySQL örneğinizin VPC'si ile Kafka örneğinizin VPC'si arasında örtüşmeyen CIDR blokları
DataWorks'ün ENI'lerinize erişmesi için Cloud Resource Access Authorization sayfasında yetkilendirme yapılması
Hem veri kaynağının (ApsaraDB RDS for MySQL örneği) hem de veri hedefinin (ApsaraMQ for Kafka örneği) aynı Alibaba Cloud hesabı altında oluşturulmuş olması
Veritabanı hesabı izinleri
MySQL veritabanı hesabında en azından aşağıdaki izinler bulunmalıdır:
| İzin | Amaç |
|---|---|
SELECT |
Kaynak tablolardan satırları okuma |
REPLICATION SLAVE |
MySQL ikili günlüğüne bağlanma ve okuma |
REPLICATION CLIENT |
İkili günlük durumunu sorgulama |
Bu izinleri aşağıdaki ifadeyle verin:
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '<your-username>'@'%';
<your-username> ifadesini gerçek veritabanı hesabı kullanıcı adıyla değiştirin.
RAM kullanıcı izinleri
Alibaba Cloud hesabı yerine bir Resource Access Management (RAM) kullanıcısı kullanıyorsanız aşağıdaki ilkeleri RAM kullanıcısına ekleyin:
| İlke | Açıklama |
|---|---|
AliyunDataWorksFullAccess |
Alibaba Cloud hesabı içindeki tüm DataWorks kaynaklarını yönetme |
AliyunBSSOrderAccess |
Alibaba Cloud hizmetlerini satın alma |
Talimatlar için bkz. RAM kullanıcılarına izin verme.
Bağlayıcıyı oluşturma ve dağıtma
ApsaraMQ for Kafka konsoluna giriş yapın.
Overview sayfasının Resource Distribution bölümünde örneğinizin bulunduğu bölgeyi seçin.
Sol gezinme bölmesinde Connectors öğesine tıklayın.
Connectors sayfasında Select Instance açılır listesinden örneğinizi seçin ve Create Connector düğmesine tıklayın.
-
Üç adımlı sihirbazı tamamlayın:
Step 1: Configure basic information
Parametre Açıklama Örnek Name Örnek içinde benzersiz bir bağlayıcı adı. 1–48 karakter; rakamlar, küçük harfler ve tire ( -) karakterlerine izin verilir. Tire ile başlayamaz. Sistem otomatik olarakconnect-<connector-name>adlı bir tüketici grubu oluşturur.kafka-source-mysqlInstance Seçilen Kafka örneğinin adını ve kimliğini görüntüler. demo alikafka_post-cn-st21p8vj****Step 2: Configure source service Kaynak hizmet olarak ApsaraDB RDS for MySQL seçeneğini belirleyin ve aşağıdaki parametreleri yapılandırın:
Parametre Açıklama Örnek Region of ApsaraDB RDS for MySQL Instance Kaynak RDS MySQL örneğinin bulunduğu bölge. China (Shenzhen) ApsaraDB RDS for MySQL Instance ID Kaynak veritabanının örnek kimliği. rm-wz91w3vk6owmz****Database Name Senkronize edilecek veritabanının adı. mysql-to-kafkaDatabase Account Veritabanı bağlantısı için kullanıcı adı. mysql_to_kafkaPassword of Database Account Veritabanı bağlantısı için parola. -- Database Table Virgülle ( ,) ayrılmış bir veya daha fazla tablo adı. Her tablo bir konuyla eşleşir.mysql_tblTables to Automatically Add Yeni tabloları otomatik olarak algılayıp senkronize etmek için kullanılan normal ifade. Tüm tablolar için .*kullanın..*Topic Prefix Otomatik oluşturulan konu adları için ön ek. Genel olarak benzersiz olmalıdır. mysqlStep 3: Configure destination service Hedef Kafka örneğini onaylayın ve Create düğmesine tıklayın. Adımlar arasında ilerlemek için Next ve Next düğmelerine tıklayın.
Connectors sayfasında bağlayıcıyı bulun ve Actions sütunundaki Deploy düğmesine tıklayın. Status sütununda Running durumu göründüğünde bağlayıcı etkin hale gelir ve verileri senkronize etmeye başlar.
Bağlayıcı dağıtılamazsa tüm ön koşulların karşılandığını doğrulayın. Dağıtımdan sonra bağlayıcı ayarlarını değiştirmek için Actions sütunundaki
Task Configurations
öğesine tıklayarak DataWorks konsolunu açın.
Veri senkronizasyonunu doğrulama
-
Kaynak tabloya bir test satırı ekleyin. Daha fazla SQL örneği için bkz. MySQL için sık kullanılan SQL deyimleri.
INSERT INTO mysql_tbl (mysql_title, mysql_author, submission_date) VALUES ("mysql2kafka", "tester", NOW()); -
ApsaraMQ for Kafka'daki mesaj sorgulama özelliğini kullanarak verilerin ilgili konuya ulaştığını onaylayın. Talimatlar için bkz. Mesajları sorgulama. Başarıyla senkronize edilen bir INSERT olayı aşağıdaki gibi görünür:
{ "schema": { "dataColumn": [ { "name": "mysql_id", "type": "LONG" }, { "name": "mysql_title", "type": "STRING" }, { "name": "mysql_author", "type": "STRING" }, { "name": "submission_date", "type": "DATE" } ], "primaryKey": [ "mysql_id" ], "source": { "dbType": "MySQL", "dbName": "mysql_to_kafka", "tableName": "mysql_tbl" } }, "payload": { "before": null, "after": { "dataColumn": { "mysql_title": "mysql2kafka", "mysql_author": "tester", "submission_date": 1614700800000 } }, "sequenceId": "1614748790461000000", "timestamp": { "eventTime": 1614748870000, "systemTime": 1614748870925, "checkpointTime": 1614748870000 }, "op": "INSERT", "ddl": null }, "version": "0.0.1" }
Mesaj alanları
| Alan | Açıklama |
|---|---|
schema.dataColumn |
Kaynak tablodaki sütun adları ve veri türleri |
schema.primaryKey |
Kaynak tablonun birincil anahtar sütunları |
schema.source |
Kaynak veritabanı türü, veritabanı adı ve tablo adı |
payload.before |
Değişiklik öncesi satır durumu (INSERT işlemleri için null) |
payload.after |
Değişiklik sonrası satır durumu (DELETE işlemleri için null) |
payload.op |
İşlem türü: INSERT, UPDATE veya DELETE |
payload.timestamp |
Olay, sistem ve kontrol noktası zaman damgaları |
Tam mesaj biçimi özellikleri için bkz. Mesaj biçimleri.
Sonraki adımlar
Kafka konularınızdaki mesajları sorgulayın
Ek örnekler için bağlayıcı özelliğini etkinleştirin