MySQL veri kaynağı, Veri Entegrasyonu aracılığıyla MySQL veritabanlarıyla veri senkronize etmek için çift yönlü okuma ve yazma kanalları sağlar.
Desteklenen MySQL sürümleri
-
Çevrimdışı okuma ve yazma:
MySQL 5.5.x, 5.6.x, 5.7.x ve 8.0.x sürümlerini destekler. Amazon RDS for MySQL, Azure Database for MySQL ve Amazon Aurora MySQL ile uyumludur.
Çevrimdışı senkronizasyon görünümlerden (views) veri okuyabilir.
-
Gerçek zamanlı okuma:
Veri Entegrasyonu, MySQL'den veri okumak için gerçek zamanlı abonelik kullanır. MySQL 5.5.x, 5.6.x, 5.7.x ve 8.0.x sürümlerinin gerçek zamanlı senkronizasyonunu destekler ancak işlevsel dizin gibi yeni MySQL 8.0 özelliklerini desteklemez. Bu özellik ayrıca Amazon RDS for MySQL, Azure Database for MySQL ve Amazon Aurora MySQL ile de uyumludur.
ÖnemliDRDS'den veri senkronize etmeniz gerekiyorsa, bunu MySQL veri kaynağı olarak yapılandırmayın. Bunun yerine doğrudan DRDS veri kaynağı olarak yapılandırın. Talimatlar için bkz. DRDS veri kaynağı yapılandırma.
Sınırlamalar
Gerçek zamanlı senkronizasyon
Sürümü 5.6.x'ten eski olan MySQL salt okunur örneklerinden veri senkronize edemezsiniz.
İşlevsel dizinler içeren tabloların senkronizasyonu desteklenmez.
-
XA ROLLBACK işlemi desteklenmez.
XA PREPARE durumunda olan işlemler için gerçek zamanlı senkronizasyon verileri hedefe yazar. Bir XA ROLLBACK komutu verilirse, gerçek zamanlı senkronizasyon hazırlanan verileri geri almaz. Bu senaryoyu yönetmek için tabloyu gerçek zamanlı senkronizasyon görevinden manuel olarak kaldırıp yeniden ekleyerek senkronizasyonu tekrar başlatmanız gerekir.
MySQL sunucusunun ikili günlük (binary log) biçimi ROW olarak ayarlanmalıdır.
Gerçek zamanlı senkronizasyon, ilişkili tablolardaki basamaklı silme (cascading delete) işlemlerini senkronize etmez.
Amazon Aurora MySQL veritabanları için birincil/yazar örneğinize bağlanmanız gerekir. Aurora MySQL salt okunur çoğaltmalarında Binlog özelliğini etkinleştiremezsiniz ve gerçek zamanlı senkronizasyon görevleri artımlı güncellemeler için Binlog gerektirir.
MySQL tablolarındaki çevrimiçi DDL değişiklikleri için gerçek zamanlı senkronizasyon, yalnızca Veri Yönetim Hizmeti (DMS) aracılığıyla sütun ekleme (Add Column) işlemini destekler.
MySQL'den saklı yordamların (stored procedures) okunması desteklenmez.
Çevrimdışı senkronizasyon
Parçalanmış bir veritabanından birden çok tabloyu senkronize etmek için MySQL Reader eklentisini kullandığınızda, tablo bölünmesini etkinleştirmek amacıyla eşzamanlılığı tablo sayısından büyük bir değere ayarlamanız gerekir. Aksi takdirde sistem her tablo için ayrı bir görev oluşturur.
MySQL'den saklı yordamların (stored procedures) okunması desteklenmez.
Desteklenen veri türleri
Her sürümdeki MySQL veri türlerinin tam listesi için resmi MySQL belgelerine bakın. Aşağıdaki tabloda, MySQL 8.0.x örnek alınarak ana veri türlerinin destek durumu listelenmiştir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Veriler bir MySQL DATE sütununda depolandığında, MySQL tarih değerini otomatik olarak yyyy-aa-gg biçimine normalize eder. Örneğin, yyyyaagg biçimindeki 20260423 kaynak tarih değeri 2026-04-23'e dönüştürülür. Bu, yerleşik bir MySQL mekanizmasıdır ve DataWorks senkronizasyon görevi yapılandırmalarına bağlı değildir. Orijinal biçimi korumanız gerekiyorsa, hedef tablodaki alan türünü VARCHAR olarak değiştirin.
Önkoşullar
Veri senkronizasyon görevlerinin doğru çalışmasını sağlamak için MySQL'i DataWorks'te veri kaynağı olarak eklemeden önce MySQL ortamınızı hazırlayın.
Aşağıdaki önkoşulları tamamlayın.
MySQL sürümünü doğrulayın
Veri Entegrasyonu yalnızca belirli MySQL sürümlerini destekler. Daha fazla bilgi için bkz. Desteklenen MySQL sürümleri bölümü. MySQL sürümünüzü aşağıdaki komutu çalıştırarak kontrol edin:
SELECT version();
Hesap izinlerini yapılandırın
DataWorks veri kaynağı erişimi için ayrı bir MySQL hesabı oluşturmanızı öneririz.
-
İsteğe bağlı: Bir hesap oluşturun.
Ayrıntılı talimatlar için bkz. MySQL hesabı oluşturma.
-
İzinleri verin.
-
Toplu iş
Toplu senkronizasyon senaryolarında:
MySQL'den veri okumak için hesabın, senkronize etmek istediğiniz tablolar üzerinde okuma (
SELECT) iznine sahip olması gerekir.MySQL'e veri yazmak için hesabın, senkronize etmek istediğiniz tablolar üzerinde yazma (
INSERT,DELETEveUPDATE) izinlerine sahip olması gerekir.
NotSenkronizasyon için MySQL'den yalnızca veri okumanız ve veriyi geri yazmanız gerekmiyorsa hesaba yalnızca
SELECTizni vermeniz yeterlidir. Salt okunur senkronizasyon içinINSERT,DELETEveUPDATEizinleri gerekli değildir. -
Gerçek zamanlı
Gerçek zamanlı senkronizasyon senaryolarında hesabın veritabanı üzerinde
SELECT,REPLICATION SLAVEveREPLICATION CLIENTizinlerine sahip olması gerekir.
Gerekli izinleri vermek için aşağıdaki komutları çalıştırabilirsiniz. Alternatif olarak hesaba
SUPERizni verebilirsiniz. Aşağıdaki komutta'sync_account'ifadesini oluşturduğunuz hesabın adıyla değiştirin.-- Optional: Create a synchronization account that can connect from any host ('%'). -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'your_password'; -- Grant the required permissions to the synchronization account. GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%';*.*sözdizimi, tüm veritabanlarındaki tüm tablolar üzerindeki izinleri verir. Belirli bir veritabanındaki belirli bir tablo üzerindeki izinleri de verebilirsiniz. Örneğin,testveritabanındakiusertablosu üzerindeki izinleri vermek için aşağıdaki komutu çalıştırın:GRANT SELECT, REPLICATION CLIENT ON test.user TO 'sync_account'@'%';.NotREPLICATION SLAVEizni genel bir izindir ve belirli bir veritabanı veya tablo için verilemez. -
MySQL binlog'u etkinleştirin (yalnızca gerçek zamanlı senkronizasyon için)
Data Integration, MySQL binlog'larına abone olarak gerçek zamanlı artımlı veri senkronizasyonu gerçekleştirir. DataWorks'te bir senkronizasyon görevini yapılandırmadan önce MySQL binlog'unu etkinleştirmeniz gerekir.
Bir binlog kullanılıyorken veritabanı bunu silemez. Gerçek zamanlı bir senkronizasyon görevindeki yüksek gecikme süresi, binlog silmeyi geciktirebilir ve bu durum disk alanının tükenmesine neden olabilir. Göreviniz için gecikme süresi uyarıları yapılandırmanızı ve veritabanı disk alanını izlemenizi öneririz.
Binlog'ları en az 72 saat boyunca saklayın. Bir görev başarısız olursa ve binlog'lar artık kullanılabilir değilse, denetim noktasını arızadan önceki bir konuma sıfırlayamazsınız; bu durum veri kaybına neden olabilir. Bu durumda verileri doldurmak için toplu iş senkronizasyonunu kullanmanız gerekir.
-
Binlog'un etkin olup olmadığını kontrol edin.
-
Binlog'un etkin olup olmadığını kontrol etmek için aşağıdaki ifadeyi çalıştırın.
SHOW variables LIKE "log_bin";Dönen değer
ONise binlog etkindir. -
Çoğaltma veritabanındaki binlog durumunu kontrol etmek için aşağıdaki ifadeyi çalıştırın.
SHOW variables LIKE "log_slave_updates";Dönen değer
ONise çoğaltma veritabanında binlog etkindir.
Dönen değer beklendiği gibi değilse:
Açık kaynaklı MySQL için binlog'u etkinleştirme talimatları için MySQL resmi belgelerine bakın.
RDS for MySQL için binlog'u etkinleştirme talimatları için bkz. ApsaraDB RDS for MySQL örneğini yedekleme.
PolarDB for MySQL için binlog'u etkinleştirme talimatları için bkz. Binary logging'i etkinleştirme veya devre dışı bırakma.
-
-
Binlog biçimini kontrol edin.
Binlog biçimini kontrol etmek için aşağıdaki ifadeyi çalıştırın.
SHOW variables LIKE "binlog_format";Olası dönen değerler:
ROW dönüş değeri, etkin binlog biçiminin
ROWolduğunu gösterir.STATEMENT: Binlog biçimi
STATEMENTşeklindedir.MIXED: Binlog biçimi
MIXEDşeklindedir.
ÖnemliDataWorks gerçek zamanlı senkronizasyonu yalnızca ROW biçimini destekler. Dönen değer ROW değilse
binlog_formatayarını değiştirmeniz gerekir. -
Tam satır görüntülerinin günlüğe kaydedilip kaydedilmediğini kontrol edin.
Satır görüntüsü ayarını kontrol etmek için aşağıdaki ifadeyi çalıştırın.
SHOW variables LIKE "binlog_row_image";Olası dönen değerler:
FULL: Tam satır görüntüleri günlüğe kaydedilir.
MINIMAL: Tam satır görüntüleri yerine minimal satır görüntüleri günlüğe kaydedilir.
ÖnemliDataWorks gerçek zamanlı senkronizasyonu, binlog için tam satır görüntüleri etkinleştirilmiş MySQL sunucularını yalnızca destekler. Dönen değer FULL değilse binlog_row_image ayarını değiştirmeniz gerekir.
OSS binlog okuma izinlerini yapılandırın
Bir MySQL veri kaynağı eklerken Configuration Mode seçeneğini ApsaraDB for RDS olarak ayarlarsanız ve RDS for MySQL örneğiniz DataWorks çalışma alanınızla aynı bölgede bulunuyorsa Read binlogs from OSS seçeneğini etkinleştirebilirsiniz. Bu durumda DataWorks, RDS for MySQL binlog'larına doğrudan erişim başarısız olduğunda binlog'ları OSS'den alır ve gerçek zamanlı senkronizasyon görevlerinin kesintiye uğramasını önler.
OSS binlog access identity için bir Alibaba Cloud RAM User veya bir Alibaba Cloud RAM Role kullanıyorsanız gerekli izinleri de vermeniz gerekir.
-
RAM kullanıcısı
Resource Access Management (RAM) konsolunda oturum açın, Users sayfasına gidin ve hedef RAM kullanıcısını bulun.
Operations sütununda Attach Policy seçeneğine tıklayın.
-
Aşağıdaki parametreleri yapılandırın ve OK seçeneğine tıklayın.
Scope: Alibaba Cloud account
Permission Policy: system policy
Policy Name:
AliyunDataWorksAccessingRdsOSSBinlogPolicy
-
RAM rolü
-
Resource Access Management (RAM) konsolunda oturum açın ve bir RAM rolü oluşturun. Daha fazla bilgi için bkz. Güvenilen bir Alibaba Cloud hesabı için RAM rolü oluşturma.
Anahtar parametreler:
Select trusted entity: Alibaba Cloud account
Select account: Other Alibaba Cloud account. DataWorks çalışma alanına sahip olan Alibaba Cloud hesabının ID'sini girin.
Role name: Özel bir ad girin.
-
RAM rolüne izinler verin. Daha fazla bilgi için bkz. RAM rolüne izin verme.
Anahtar parametreler:
Permission Policy: system policy
Policy Name:
AliyunDataWorksAccessingRdsOSSBinlogPolicy
-
RAM rolünün güven ilkesini değiştirin. Daha fazla bilgi için bkz. RAM rolünün güven ilkesini düzenleme.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
-
Veri kaynağı ekleme
Alibaba Cloud örnek modu
MySQL veritabanınız bir Alibaba Cloud RDS örneğinde çalışıyorsa, veri kaynağını Alibaba Cloud örnek modunda oluşturmanızı öneririz. Parametreleri aşağıdaki gibi yapılandırın:
|
Parametre |
Açıklama |
|
Data Source Name |
Veri kaynağı adı, çalışma alanı içinde benzersiz olmalıdır. İş ve ortamı net bir şekilde tanımlayan bir ad kullanmanızı öneririz; örneğin, |
|
Connection Mode |
Alibaba Cloud örnek modunu seçin. Bağlantı modları hakkında daha fazla bilgi için bkz. Senaryo 1: Örnek Modu (Geçerli Cloud Hesabı) ve Senaryo 2: Örnek Modu (Diğer Cloud Hesabı). |
|
Alibaba Cloud Account |
Örneğin ait olduğu cloud hesabını seçin. Another Alibaba Cloud Account seçeneğini belirlerseniz, hesaplar arası izinleri yapılandırmanız gerekir. Daha fazla bilgi için bkz. Hesaplar Arası Yetkilendirme (RDS, Hive veya Kafka). Farklı bir cloud hesabı seçerseniz aşağıdaki bilgileri sağlamanız gerekir:
|
|
Region |
Örneğin bulunduğu bölge. |
|
Instance |
Bağlanılacak örneğin adını seçin. |
|
Standby library settings |
RDS örneğinizde bir salt okunur örnek (bekleme örneği) varsa, görevleri bu örnekten veri okuyacak şekilde yapılandırabilirsiniz. Bu sayede okuma işlemleri birincil örneğin performansını etkilemez. |
|
Instance Address |
Doğru örneği seçtikten sonra, genel/özel adres, VPC ve vSwitch gibi bilgileri görüntülemek için Get Latest Address düğmesini tıklayın. |
|
Database |
Veri kaynağının bağlandığı veritabanının adı. Belirtilen kullanıcının bu veritabanına erişmek için gerekli izinlere sahip olduğundan emin olun. |
|
Corresponding access identity |
DataWorks'ün MySQL'e erişmek için kullandığı kimlik bilgisi kaynağını seçin. Aşağıdaki seçenekler desteklenir:
|
|
OSS binlog okumayı destekle |
Etkinleştirildiğinde, DataWorks RDS binlog'larına erişilemediğinde OSS'den binlog almaya çalışır. Bu durum, gerçek zamanlı senkronizasyon görevlerinin kesintiye uğramasını önler. Daha fazla bilgi için bkz. OSS binlog okuma için yetkilendirmeyi yapılandırma. Yetkilendirme yapılandırmanıza göre OSS binlog access identity değerini ayarlayın. |
|
Authentication Method |
Kimlik doğrulama yok veya SSL kimlik doğrulaması seçeneklerinden birini seçin. SSL kimlik doğrulamasını seçerseniz, bunun örnekte de etkinleştirildiğinden emin olun. Sertifika dosyasını hazırlayın ve Authentication File Management bölümüne yükleyin. |
|
Version |
MySQL sunucusunda oturum açın ve sürüm numarasını kontrol etmek için |
Bağlantı dizesi modu
Daha fazla esneklik sağlamak amacıyla bağlantı dizesi modunu kullanarak da bir veri kaynağı oluşturabilirsiniz. Parametreleri aşağıdaki gibi yapılandırın:
|
Parametre |
Açıklama |
|
Data Source Name |
Veri kaynağı adı, çalışma alanı içinde benzersiz olmalıdır. İş ve ortamı net bir şekilde tanımlayan bir ad kullanmanızı öneririz; örneğin, |
|
Connection Mode |
User-created Data Store with Public IP Addresses seçeneğini belirleyin. Bu modda, veritabanına bağlanmak için bir JDBC URL'si kullanılır. |
|
Bağlantı dizesi ön izlemesi |
Bağlantı adresini ve veritabanı adını girdikten sonra, DataWorks otomatik olarak bir JDBC URL ön izlemesi oluşturur. |
|
Connection Address |
Ana bilgisayar adresi: Veritabanı sunucusunun gerçek erişim adresini girin. Adresin, DataWorks kaynak grubundan ağ üzerinden erişilebilir olduğundan emin olun. Yaygın senaryolar şunlardır:
Veritabanı bir Alibaba Cloud RDS örneği ise, adresi örnek ayrıntılarındaki Database Connection sayfasında bulabilirsiniz. Bağlantı noktası numarası: Veritabanı bağlantı noktası. Varsayılan değer 3306'dır. |
|
Database Name |
Veri kaynağının bağlandığı veritabanının adı. Belirtilen kullanıcının bu veritabanına erişmek için gerekli izinlere sahip olduğundan emin olun. |
|
Corresponding access identity |
DataWorks'ün MySQL'e erişmek için kullandığı kimlik bilgisi kaynağını seçin. Aşağıdaki seçenekler desteklenir:
|
|
Version |
MySQL sunucusunda oturum açın ve sürüm numarasını kontrol etmek için |
|
Authentication Method |
Kimlik doğrulama yok veya SSL kimlik doğrulaması seçeneklerinden birini seçin. SSL kimlik doğrulamasını seçerseniz, bunun örnekte de etkinleştirildiğinden emin olun. Sertifika dosyasını hazırlayın ve Authentication File Management bölümüne yükleyin. |
|
Advanced Parameters |
Parametre: Açılır listeden desteklenen bir parametre seçin; örneğin, Değer: Seçilen parametre için uygun bir değer girin; örneğin, Bunun üzerine JDBC URL'si otomatik olarak şu şekilde güncellenir: Örneğin, saat dilimiyle ilgili hatalarla karşılaşırsanız veya bir saat dilimi belirtmeniz gerekirse Add Property düğmesini tıklayın, parametre olarak |
DataWorks kaynak grubunun veritabanına bağlanabildiğinden emin olun. Aksi takdirde, sonraki görevler başarısız olur. Ağ yapılandırması, veritabanı ortamına ve veri kaynağı bağlantı moduna bağlıdır. Daha fazla bilgi için bkz. Bağlantıyı test etme.
MySQL senkronizasyon iş akışı
Bir senkronizasyon görevini yapılandırmak için giriş noktası ve yordam hakkında bilgi edinmek üzere aşağıdaki yapılandırma kılavuzlarına bakın.
Tek tablo çevrimdışı senkronizasyonu yapılandırma
Yordam için Sihirbaz modu yapılandırması ve Komut dosyası modu yapılandırması konularına bakın.
Tüm komut dosyası modu parametreleri ve örnek bir komut dosyası için Ek: MySQL örnek komut dosyası ve parametre referansı bölümüne bakın.
Tek tablo gerçek zamanlı senkronizasyonu yapılandırma
Yordam için Gerçek zamanlı senkronizasyon görevi yapılandırması (Eski) konusuna bakın.
Tam veritabanı senkronizasyonu yapılandırma
Yordam için Tam veritabanı gerçek zamanlı senkronizasyon görevi yapılandırması konusuna bakın.
SSS
Bir MySQL veri kaynağından gerçek zamanlı senkronizasyon sırasında hata oluşması
Bir MySQL veri kaynağı için gerçek zamanlı senkronizasyon neden yavaşlıyor?
Diğer yaygın Data Integration sorunları için bkz. Data Integration SSS.
Ek: MySQL komut dosyası örnekleri ve parametreler
Kod düzenleyiciyi kullanarak toplu senkronizasyon görevi yapılandırma
Kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırmak istiyorsanız, komut dosyasındaki ilgili parametreleri birleşik komut dosyası biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Komut dosyası modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.
Okuyucu komut dosyası örnekleri
Aşağıdaki örnekler, tek bir veritabanındaki tek bir tablo ve parçalı tablolar için yapılandırmaları gösterir.
Aşağıdaki JSON örneklerindeki yorumlar yalnızca gösterim amaçlıdır. Komut dosyasını çalıştırmadan önce yorumları kaldırın.
-
Tek bir veritabanındaki tek tablo
{ "type": "job", "version": "2.0",// The version number. "steps": [ { "stepType": "mysql",// The connector name. "parameter": { "column": [// The columns to read. "id" ], "connection": [ { "querySql": [ "select a,b from join1 c join join2 d on c.id = d.id;" ], "datasource": ""// The data source name. } ], "where": "",// The filter condition. "splitPk": "",// The shard key. "encoding": "UTF-8"// The encoding format. }, "name": "Reader", "category": "reader" }, { "stepType": "stream", "parameter": {}, "name": "Writer", "category": "writer" } ], "setting": { "errorLimit": { "record": "0"// The maximum number of allowed dirty data records. }, "speed": { "throttle": true,// Set to true to enable rate limiting. If false, rate limiting is disabled and the 'mbps' parameter is ignored. "concurrent": 1,// The number of concurrent threads. "mbps": "12"// The rate limit. 1 mbps = 1 MB/s. } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Parçalı tablolar
NotMySQL Reader, şeması aynı olan birden çok MySQL tablosundan veri okuyabilir. Bu bağlamda "parçalı tablolar", birden çok kaynak tablosundaki verilerin tek bir hedef tabloya yazıldığı bir senaryoyu ifade eder. Veritabanı düzeyinde parçalı tabloları senkronize etmek için Data Integration'da bir görev oluşturun ve tam veritabanı parçalama özelliğini seçin.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "indexes": [ { "type": "unique", "column": [ "id" ] } ], "envType": 0, "useSpecialSecret": false, "column": [ "id", "buyer_name", "seller_name", "item_id", "city", "zone" ], "tableComment": "Test order table", "connection": [ { "datasource": "rds_dataservice", "table": [ "rds_table" ] }, { "datasource": "rds_workshop_log", "table": [ "rds_table" ] } ], "where": "", "splitPk": "id", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": {}, "name": "Writer", "category": "writer" }, { "name": "Processor", "stepType": null, "category": "processor", "copies": 1, "parameter": { "nodes": [], "edges": [], "groups": [], "version": "2.0" } } ], "setting": { "executeMode": null, "errorLimit": { "record": "" }, "speed": { "concurrent": 2, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Okuyucu parametreleri
|
Parameter |
Description |
Required |
Default |
|
datasource |
Okunacak veri kaynağının adıdır. Bu ad, kod düzenleyicide yapılandırılmış bir veri kaynağıyla eşleşmelidir. |
Evet |
Yok |
|
table |
Senkronize edilecek kaynak tablonun adıdır. Bir Data Integration görevi yalnızca bir mantıksal tablodan veri okuyabilir. Aşağıdaki örnekler,
Not
Görev, desene uyan tüm tablolardan |
Evet |
Yok |
|
column |
Kaynak tablodan okunacak sütunları belirten bir JSON dizisidir. Tüm sütunları seçmek için
|
Evet |
Yok |
|
splitPk |
MySQL Reader veri çıkardığında,
|
Hayır |
Yok |
|
splitFactor |
Parçalama faktörüdür. Bu parametre kaç parça oluşturulacağını kontrol eder. Eşzamanlılık etkinleştirilirse veriler Not
Önerilen aralık: 1 ila 100. Çok büyük bir değer bellek yetersizliği (OOM) hatasına neden olabilir. |
Hayır |
5 |
|
where |
Bir filtre koşuludur. Tipik bir senaryoda, yalnızca günün verilerini senkronize etmek için
|
Hayır |
Yok |
|
querySql (Yalnızca kod düzenleyicide kullanılabilir; kodsuz UI'da desteklenmez.) |
Bazı kullanım durumlarında Not
|
Hayır |
Yok |
|
useSpecialSecret |
Birden fazla kaynak veri kaynağı yapılandırıldığında her bir veri kaynağının şifresinin kullanılıp kullanılmayacağını belirtir. Geçerli değerler:
Birden fazla kaynak veri kaynağının farklı kullanıcı adları ve şifreleri varsa, her bir veri kaynağının kimlik bilgilerini kullanmak için bu parametreyi true olarak ayarlayın. |
Hayır |
false |
Writer betiği örneği
{
"type": "job",
"version": "2.0",// The version number.
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "mysql",// The connector name.
"parameter": {
"postSql": [],// The SQL statements to run after the task.
"datasource": "",// The data source name.
"column": [// The columns to write to.
"id",
"value"
],
"writeMode": "insert",// The write mode. Valid values: insert, replace, and update.
"batchSize": 1024,// The number of records per batch.
"table": "",// The destination table name.
"nullMode": "skipNull",// The policy for handling NULL values.
"skipNullColumn": [// The columns for which to skip NULL values.
"id",
"value"
],
"preSql": [
"delete from XXX;"// The SQL statements to run before the task.
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {// The maximum number of allowed dirty data records.
"record": "0"
},
"speed": {
"throttle": true,// Set to true to enable rate limiting. If false, rate limiting is disabled and the 'mbps' parameter is ignored.
"concurrent": 1,// The number of concurrent threads.
"mbps": "12"// The rate limit in MB/s to prevent excessive I/O pressure on the databases. 1 mbps = 1 MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Writer parametreleri
|
Parameter |
Description |
Required |
Default |
|
datasource |
Hedef veri kaynağının adıdır. Bu ad, kod düzenleyicide yapılandırılmış bir veri kaynağıyla eşleşmelidir. |
Evet |
Yok |
|
table |
Hedef tablonun adıdır. |
Evet |
Yok |
|
writeMode |
Yazma modudur. Desteklenen seçenekler MySQL
|
Hayır |
insert |
|
nullMode |
Kaynaktan gelen NULL değerlerin işlenme ilkesini belirtir. Geçerli değerler:
Önemli
skipNull olarak yapılandırıldığında görev, hedefteki varsayılan değerleri desteklemek için veri yazmaya yönelik SQL deyimlerini dinamik olarak oluşturur. Bu durum FLUSH işlemi sayısını artırır ve senkronizasyon hızını düşürür. En kötü durumda görev her veri kaydı için bir kez FLUSH işlemi gerçekleştirir. |
Hayır |
writeNull |
|
skipNullColumn |
nullMode değeri skipNull olarak ayarlandığında bu parametreyle belirtilen sütunlar zorla Biçim: |
Hayır |
Görev için yapılandırılan tüm sütunlar. |
|
column |
Yazılacak hedef sütunlardır; dize içeren bir JSON dizisi olarak belirtilir. Örnek: |
Evet |
Yok |
|
preSql |
Senkronizasyon görevi başlamadan önce yürütülecek bir veya daha fazla SQL deyimidir. Kodsuz UI yalnızca bir deyimi desteklerken kod düzenleyici birden çok deyimi destekler. Örneğin, bir tablodaki mevcut verileri temizleyebilirsiniz: Not
Birden fazla SQL deyimi için işlem (transaction) desteği yoktur. |
Hayır |
Yok |
|
postSql |
Senkronizasyon görevi tamamlandıktan sonra yürütülecek bir veya daha fazla SQL deyimidir. Kodsuz UI yalnızca bir deyimi desteklerken kod düzenleyici birden çok deyimi destekler. Örneğin, aşağıdaki deyimi kullanarak bir zaman damgası sütunu ekleyebilirsiniz: Not
Birden fazla SQL deyimi için işlem (transaction) desteği yoktur. |
Hayır |
Yok |
|
batchSize |
Yazma başına düşen kayıt sayısıdır. Daha büyük değerler ağ gidiş-dönüşlerini azaltır ve aktarım hızını artırabilir ancak değerin çok yüksek ayarlanması bellek yetersizliği (OOM) hatasına neden olabilir. |
Hayır |
256 |
|
updateColumn |
|
Hayır |
Yok |