KingbaseES veri kaynağı, KingbaseES ile DataWorks Veri Entegrasyonu arasında çift yönlü veri senkronizasyonu sağlar. Bu kaynağı kullanarak verileri KingbaseES'ten işlem hattınıza okuyabilir veya işlenmiş verileri tekrar KingbaseES'e yazabilirsiniz.
Sınırlamalar
Desteklenen kaynak grupları: Yalnızca Serverless kaynak grupları (önerilir) ve Veri Entegrasyonu için özel kaynak grupları desteklenir.
Gerekli izinler: Senkronizasyon görevi için
insert/replace intoizni gerekir. Ek izinlerin gerekli olup olmadığını belirlemek üzerepreSqlvepostSqlparametrelerini kullanın.
Desteklenen alan türleri
Aşağıdaki tabloda KingbaseES Reader tarafından desteklenen veri türleri listelenmiştir. Listede yer almayan alan türleri desteklenmez.
| Kategori | Veri türleri | Notlar |
|---|---|---|
| Tamsayı | INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT | tinyint(1) boolean değil, tamsayı olarak değerlendirilir |
| Kayan nokta | FLOAT, DOUBLE, DECIMAL | |
| Dize | VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT | |
| Tarih ve saat | DATE, DATETIME, TIMESTAMP, TIME, YEAR | |
| Boolean | BIT, BOOL | |
| İkili | TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY |
Veri kaynağı ekleme
Bir senkronizasyon görevi geliştirmeden önce DataWorks'te KingbaseES veri kaynağını ekleyin. Talimatlar için bkz. Veri kaynağı yönetimi. Parametre açıklamaları, veri kaynağını eklerken DataWorks konsolunda mevcuttur.
Senkronizasyon görevi geliştirme
Tek tablo için çevrimdışı senkronizasyon görevini yapılandırma
Çevrimdışı bir senkronizasyon görevini yapılandırmak için aşağıdaki yöntemlerden birini kullanın:
Kodsuz kullanıcı arayüzü: Kodsuz kullanıcı arayüzünde görev yapılandırma
Kod düzenleyicisi: Kod düzenleyicisinde görev yapılandırma
Kod düzenleyicisi için tüm parametreler ve örnek bir betik için bkz. Ek: Betik demosu ve parametre açıklamaları.
Ek: Betik demosu ve parametre açıklamaları
Kod düzenleyicisini kullanarak toplu iş senkronizasyon görevi yapılandırmak için birleşik betik formatına uygun olarak betikteki gerekli parametreleri ayarlayın. Daha fazla bilgi için bkz. Kod düzenleyicisinde görev yapılandırma.
Reader betik demosu
Tek veritabanı ve tek tablo
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "kingbasees",
"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"
}
]
}
}
Parçalanmış veritabanları ve tablolar
Parçalanmış tablolar kullanılırken, seçilen tüm KingbaseES tablolarının şeması aynı olmalıdır.
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {
"plugin": "kingbasees",
"parameter": {
"connection": [
{
"table": ["tbl1", "tbl2", "tbl3"],
"datasource": "datasourceName1"
},
{
"table": ["tbl4", "tbl5", "tbl6"],
"datasource": "datasourceName2"
}
],
"singleOrMulti": "multi",
"splitPk": "db_id",
"column": ["id", "name", "age"],
"where": "1 < id and id < 100"
}
},
"writer": {}
}
}
Reader parametreleri
| Parametre | Açıklama | Zorunlu | Varsayılan |
|---|---|---|---|
username |
KingbaseES'e bağlanmak için kullanılan kullanıcı adı. | Hayır | Yok |
password |
KingbaseES'e bağlanmak için kullanılan parola. | Hayır | Yok |
column |
Senkronize edilecek alanlar. Tüm sütunları senkronize etmek için * kullanın. |
Hayır | Yok |
table |
Senkronize edilecek tablonun adı. Tek bir tablo için bile dizi formatını kullanın: ["tablename"]. |
Hayır | Yok |
jdbcUrl |
KingbaseES'e bağlanmak için Java Database Connectivity (JDBC) URL'si. Örnek: jdbc:kingbase8://127.0.0.1:30215?currentschema=TEST. |
Hayır | Yok |
querySql |
Verileri filtrelemek için kullanılan özel SQL sorgusu. Belirtildiğinde Reader, table, column ve where parametrelerini yoksayar ve doğrudan bu sorguyu kullanır. |
Hayır | Yok |
where |
Tabloya uygulanan filtre koşulu. querySql belirtildiğinde yoksayılır. |
Hayır | Yok |
splitPk |
Yüksek eşzamanlı senkronizasyonu etkinleştirmek için bölme anahtarı olarak kullanılan KingbaseES tablosundaki sayısal tamsayı alanı. Böyle bir alan yoksa boş bırakın. | Hayır | Yok |
encoding |
Verilerin kodlama formatı. | Hayır | UTF-8 |
Writer betik demosu
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "kingbasees",
"parameter": {
"postSql": [],
"datasource": "",
"column": ["id", "value"],
"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ğının adı. DataWorks'te eklenen veri kaynağının adıyla eşleşmelidir. | Evet | Yok |
table |
Hedef tablonun adı. | Evet | Yok |
column |
Verilerin yazılacağı hedef tablodaki alanlar. Birden fazla alanı virgülle ayırın. Örnek: ["id", "name", "age"]. Tüm sütunlara sırayla yazmak için ["*"] kullanın. Bir alan adı eğik çizgi (/) içeriyorsa kaçış karakteri kullanın: \"/field/name\". |
Evet | Yok |
preSql |
Senkronizasyon görevi başlamadan önce çalıştırılacak SQL ifadesi. Hedef tabloyu hazırlamak için bunu kullanın; örneğin: truncate table tablename. Kodsuz kullanıcı arayüzü tek bir ifadeyi destekler; kod düzenleyicisi birden fazla ifadeyi destekler. Birden fazla ifade işlem bütünlüğünü desteklemez. |
Hayır | Yok |
postSql |
Senkronizasyon görevi tamamlandıktan sonra çalıştırılacak SQL ifadesi. Örneğin: alter table tablename add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. Kodsuz kullanıcı arayüzü tek bir ifadeyi destekler; kod düzenleyicisi birden fazla ifadeyi destekler. |
Hayır | Yok |
batchSize |
Tek bir toplu işte gönderilecek 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 | 1024 |