MariaDB veri kaynağı, DataWorks ile MariaDB arasında çift yönlü çevrimdışı senkronizasyon kurar; bu sayede MariaDB veritabanlarından ve görünümlerinden (view) veri okunabilir ve yazılabilir. Bu sayfada desteklenen sürümler, alan türleri, hesap kurulumu ve çevrimdışı senkronizasyon görevleri için betik parametreleri açıklanmaktadır.
Başlamadan önce
DataWorks'ü bir MariaDB veritabanına bağlamak için aşağıdaki adımları sırayla tamamlayın:
Desteklenen MariaDB sürümleri
Desteklenen sürümler: 5,5.x, 10,0.x, 10,1.x, 10,2.x ve 10,3.x.
Çevrimdışı senkronizasyon ayrıca görünümlerden (view) veri okumayı da destekler.
Desteklenen alan türleri
Aşağıdaki tabloda MariaDB 10,3.x için desteklenen alan türleri listelenmiştir. Diğer sürümler için resmi MariaDB belgelerine bakın.
| Alan türü | Çevrimdışı okuma (MariaDB Reader) | Çevrimdışı yazma (MariaDB Writer) |
|---|---|---|
| TINYINT | Desteklenir | Desteklenir |
| SMALLINT | Desteklenir | Desteklenir |
| INTEGER | Desteklenir | Desteklenir |
| BIGINT | Desteklenir | Desteklenir |
| FLOAT | Desteklenir | Desteklenir |
| DOUBLE | Desteklenir | Desteklenir |
| DECIMAL/NUMERIC | Desteklenir | Desteklenir |
| REAL | Desteklenmez | Desteklenmez |
| VARCHAR | Desteklenir | Desteklenir |
| JSON | Desteklenir | Desteklenir |
| TEXT | Desteklenir | Desteklenir |
| MEDIUMTEXT | Desteklenir | Desteklenir |
| LONGTEXT | Desteklenir | Desteklenir |
| VARBINARY | Desteklenir | Desteklenir |
| BINARY | Desteklenir | Desteklenir |
| TINYBLOB | Desteklenir | Desteklenir |
| MEDIUMBLOB | Desteklenir | Desteklenir |
| LONGBLOB | Desteklenir | Desteklenir |
| ENUM | Desteklenir | Desteklenir |
| SET | Desteklenir | Desteklenir |
| BOOLEAN | Desteklenir | Desteklenir |
| BIT | Desteklenir | Desteklenir |
| DATE | Desteklenir | Desteklenir |
| DATETIME | Desteklenir | Desteklenir |
| TIMESTAMP | Desteklenir | Desteklenir |
| TIME | Desteklenir | Desteklenir |
| YEAR | Desteklenir | Desteklenir |
| LINESTRING | Desteklenmez | Desteklenmez |
| POLYGON | Desteklenmez | Desteklenmez |
| MULTIPOINT | Desteklenmez | Desteklenmez |
| MULTILINESTRING | Desteklenmez | Desteklenmez |
| MULTIPOLYGON | Desteklenmez | Desteklenmez |
| GEOMETRYCOLLECTION | Desteklenmez | Desteklenmez |
Hesap izinlerini yapılandırma
DataWorks'ün veri kaynağına erişmesi için özel bir MariaDB hesabı oluşturun.
-
MariaDB sürümünü kontrol etmek için aşağıdaki deyimi çalıştırın:
SELECT VERSION(); (İsteğe bağlı) Bir senkronizasyon hesabı oluşturun. Bkz. MariaDB kullanıcısı oluşturma.
-
Senkronizasyon yönüne göre gerekli izinleri verin:
Çevrimdışı okuma: Hesabın, senkronize edilecek tablolar üzerinde SELECT iznine sahip olması gerekir.
Çevrimdışı yazma: Hesabın, senkronize edilecek tablolar üzerinde INSERT, DELETE ve UPDATE izinlerine sahip olması gerekir.
-
İzinleri vermek için aşağıdaki komutu çalıştırın.
sync_accountifadesini kendi hesap adınızla değiştirin.-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, DELETE, UPDATE ON *.* TO 'sync_account'@'%';Alternatif olarak, doğrudan SUPER izni verebilirsiniz.
Veri kaynağı ekleme
Bir senkronizasyon görevi geliştirmeden önce MariaDB veri kaynağını DataWorks'e ekleyin. Veri kaynağı yönetimi bölümündeki talimatları izleyin. Veri kaynağını eklerken parametre açıklamaları DataWorks konsolunda mevcuttur.
Veri senkronizasyon görevi geliştirme
Tek tablo için çevrimdışı senkronizasyon
Görevi kod düzenleyicide yapılandırmak için bkz. Kod düzenleyicide görev yapılandırma (1695606). Tüm betik parametreleri ve örnekler için Betik parametreleri ve örnekler bölümüne bakın.
Betik parametreleri ve örnekler
Tüm örnekler, "version": "2.0" içeren kod düzenleyici formatını kullanır. Betiği, Kod düzenleyicide görev yapılandırma (1695606) bölümünde açıklanan birleşik format gereksinimlerine göre yapılandırın.
Reader
Betik örneği
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "mariadb",
"parameter": {
"column": [
"id"
],
"connection": [
{
"querySql": ["select a,b from join1 c join join2 d on c.id = d.id;"],
"datasource": "",
"table": [
"xxx"
]
}
],
"where": "",
"splitPk": "",
"encoding": "UTF-8"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Reader parametreleri
| Parametre | Açıklama | Zorunlu | Varsayılan |
|---|---|---|---|
datasource |
Veri kaynağı adı. DataWorks'e eklenen veri kaynağının adıyla eşleşmelidir. | Evet | Yok |
table |
Okunacak tablo. Parçalanmış tablolar için aralık sözdizimini destekler; örneğin, table_[0-99] ifadesi table_0 ile table_99 arasındaki tüm tabloları okur. Sabit uzunluklu sayısal son ekler için ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"] formatını kullanın. Görev, eşleşen tüm tablolardan okuma yapar ve bir tablo veya belirtilen sütun yoksa başarısız olur. |
Evet | Yok |
column |
Senkronize edilecek sütunlar, JSON dizisi olarak. Varsayılan olarak tüm sütunlardır (["*"]). MariaDB SQL sözdizimine uygun olarak sütun budama, sütun yeniden sıralama ve sabit değerleri destekler. Boş bırakılmamalıdır. |
Evet | Yok |
splitPk |
Eşzamanlı okumalar için verileri bölmek üzere kullanılan sütun. Dengeli dağıtım için birincil anahtarı kullanın. Yalnızca tamsayı türleri desteklenir; desteklenmeyen türler tek kanallı senkronizasyona geri döner. Tek kanal kullanmak için boş bırakın. | Hayır | Yok |
where |
Bir SQL WHERE filtre koşulu, örneğin günlük artımlı senkronizasyon için gmt_create>$bizdate gibi. Tüm verileri senkronize etmek için parametreyi atlayın veya boş bırakın. LIMIT yan tümceleri desteklenmez. |
Hayır | Yok |
querySql |
table, column, where ve splitPk parametrelerinin üzerine yazan özel bir SQL sorgusu. Çoklu tablo birleştirmeleri için bunu kullanın, örneğin select a,b from table_a join table_b on table_a.id = table_b.id gibi. Kimlik bilgileri için yine de datasource parametresi kullanılır. Bu parametre büyük/küçük harfe duyarlıdır (querySql, querysql değil) ve kod içermeyen kullanıcı arayüzünde desteklenmez. |
Hayır | Yok |
Writer
Betik örneği
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "mariadb",
"parameter": {
"postSql": [],
"datasource": "",
"column": [
"id",
"value"
],
"writeMode": "insert",
"batchSize": 1024,
"table": "",
"preSql": [
"delete from XXX;"
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Writer parametreleri
| Parametre | Açıklama | Zorunlu | Varsayılan |
|---|---|---|---|
datasource |
Veri kaynağı adı. DataWorks'e eklenen veri kaynağının adıyla eşleşmelidir. | Evet | Yok |
table |
Verilerin yazılacağı hedef tablo. | Evet | Yok |
column |
Verilerin yazılacağı hedef sütunlar, JSON dizisi olarak; örneğin, ["id", "name", "age"] gibi. Tüm sütunlara sırayla yazmak için ["*"] kullanın. |
Evet | Yok |
writeMode |
Yazma modu. Üç mod desteklenir: insert (INSERT INTO—çakışmalar kirli veri olarak işlenir), update (ON DUPLICATE KEY UPDATE—çakışmalar, updateColumn içinde belirtilen alanları günceller) ve replace (REPLACE INTO—çakışmalar mevcut satırı siler ve yeni satırı ekler). |
Hayır | insert into |
updateColumn |
Birincil anahtar veya benzersiz dizin çakışması oluştuğunda güncellenecek sütunlar. Bu parametre, writeMode değeri update olarak ayarlandığında kullanılır. Sütunları virgülle ayırın; örneğin, ["name", "age"] gibi. |
Hayır | Yok |
preSql |
Senkronizasyon görevinden önce çalıştırılacak SQL deyimi. Kod içermeyen kullanıcı arayüzü tek bir deyimi destekler; kod düzenleyici birden çok deyimi destekler. Örnek: truncate table tablename. Birden çok deyim için işlem (transaction) desteği yoktur. |
Hayır | Yok |
postSql |
Senkronizasyon görevinden sonra çalıştırılacak SQL deyimi. Kod içermeyen kullanıcı arayüzü tek bir deyimi destekler; kod düzenleyici birden çok deyimi destekler. Örnek: ALTER TABLE tablename ADD colname TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. Birden çok deyim için işlem (transaction) desteği yoktur. |
Hayır | Yok |
batchSize |
Her partide gönderilen kayıt sayısı. Daha büyük değerler ağ gidiş-dönüşlerini azaltır ve aktarım hızını artırır, ancak çok büyük değerler bellek yetersizliği (OOM) hatalarına neden olabilir. | Hayır | 256 |