GBase8a veri kaynağı, GBase8a'dan veri okumanıza ve GBase8a'ya veri yazmanıza olanak tanır. Bu konuda, DataWorks'teki GBase8a için veri senkronizasyon yetenekleri açıklanmaktadır.
GBase8a Reader ve GBase8a Writer şunları destekler:
Tek bir senkronizasyon görevinde birden fazla tablodan okuma
Artımlı senkronizasyon için WHERE koşullarıyla satır filtreleme
Paralel okumalar için büyük tabloları birincil anahtara göre bölümlere ayırma
Ön ve sonrası çalıştırma SQL kanca işlevleriyle veri yazma
Sınırlamalar
GBase8a Reader ve GBase8a Writer, Serverless kaynak gruplarını (önerilen) ve Veri Entegrasyonu için özel kaynak gruplarını destekler.
Bir INSERT INTO ifadesi birincil anahtar veya benzersiz dizin çakışmasıyla karşılaştığında, çakışan satırlar yazılmaz.
Veriler yalnızca birincil veritabanındaki bir hedef tabloya yazılabilir.
Görev, en az INSERT INTO izni gerektirir.
preSqlvepostSqliçinde belirtilen ifadeler için ek izinler gerekebilir.GBase8a Writer,
writeModeparametresini desteklemez.
Önkoşullar
Bir senkronizasyon görevi geliştirmeden önce GBase8a 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.
Senkronizasyon görevi ayarlama
Kodsuz kullanıcı arayüzünü veya kod düzenleyicisini kullanarak tek bir tablo için çevrimdışı bir senkronizasyon görevi yapılandırın:
Kodsuz kullanıcı arayüzü: Kodsuz kullanıcı arayüzünde yapılandırma
Kod düzenleyicisi: Kod düzenleyicisinde yapılandırma
Kod düzenleyicisi parametre açıklamaları ve betik örnekleri için bkz. Ek: Betik örnekleri ve parametre açıklamaları.
Ek: Betik örnekleri ve parametre açıklamaları
Aşağıdaki betikler ve parametre tabloları, GBase8a Reader ve GBase8a Writer'a özel ayarları kapsar. Kod düzenleyicisi tarafından gereken birleşik betik biçimi için bkz. Kod düzenleyicisinde görev yapılandırma.
Reader betik örneği
{
"type": "job",
"steps": [
{
"stepType": "gbase8a",
"parameter": {
"datasource": "",
"username": "",
"password": "",
"where": "",
"column": [
"id",
"name"
],
"splitPk": "id",
"connection": [
{
"table": [
"table"
],
"datasource": ""
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {
"print": false,
"fieldDelimiter": ","
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
}
}
Reader parametreleri
| Parametre | Açıklama | Gerekli | Varsayılan |
|---|---|---|---|
table |
Verilerin senkronize edileceği tablolar. Bir JSON dizisi olarak belirtin. Birden fazla tablo paralel olarak okunabilir ancak tüm tabloların aynı şemaya sahip olması gerekir. GBase8a Reader, tablolar arasındaki şema tutarlılığını doğrulamaz. table parametresi, connection yapılandırma bloğu içine yerleştirilmelidir. |
Evet | Yok |
column |
Senkronize edilecek sütunlar. Bir JSON dizisi olarak belirtin. Tüm sütunları seçmek için ["*"] kullanın. Sütun budamayı (belirli sütunları seçme), sütun yeniden sıralamayı (şemadan farklı bir sırada dışa aktarma), sabit değerleri (örneğin, '123') ve işlev sütunlarını (örneğin, date('now')) destekler. Boş bırakılamaz. |
Evet | Yok |
datasource |
DataWorks'e eklenen GBase8a veri kaynağının adı. | Hayır | Yok |
splitPk |
Paralel okumalar için verileri bölümlere ayırmak üzere kullanılan sütun. Düzgün veri dağıtımı sağlamak ve veri sıcak noktalarını önlemek için bir tamsayı birincil anahtar kullanın. Yalnızca tamsayı türlerini destekler; dizgeler, kayan noktalı sayılar ve tarihler desteklenmez ve bu ayarın yoksayılmasına neden olur, tek kanallı okumaya geri döner. Bölümlemeyi devre dışı bırakmak için boş bırakın. | Hayır | Boş |
where |
SQL sorgusuna eklenen bir filtre koşulu. GBase8a Reader, verileri çıkarmak için column, table ve where öğelerinden bir sorgu oluşturur. Artımlı senkronizasyon için where kullanın; örneğin, günün verilerini senkronize etmek için bunu gmt_create>$bizdate olarak ayarlayın. Boş bırakılırsa tam veri senkronizasyonu gerçekleştirilir. |
Hayır | Yok |
querySql |
table, column, where ve splitPk öğelerini geçersiz kılan özel bir SQL sorgusu. where tek başına gerekli filtre mantığını ifade edemediğinde bunu kullanın. querySql ayarlandığında, GBase8a Reader table, column, where ve splitPk parametrelerini yoksayar. |
Hayır | Yok |
fetchSize |
Her toplu işlemde veritabanından alınan kayıt sayısı. Daha büyük bir değer ağ gidiş-dönüşlerini azaltır ve okuma aktarım hızını artırır. Not
2048'den büyük değerler senkronizasyon sırasında bellek yetersizliği (OOM) hatasına neden olabilir. |
Hayır | 1.024 |
Writer betik örneği
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "gbase8a",
"parameter": {
"datasource": "Data source name",
"username": "",
"password": "",
"column": [
"id",
"name"
],
"connection": [
{
"table": [
"Gbase8a_table"
],
"datasource": ""
}
],
"preSql": [
"delete from @table where db_id = -1"
],
"postSql": [
"update @table set db_modify_time = now() where db_id = 1"
]
},
"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 | Gerekli | Varsayılan |
|---|---|---|---|
datasource |
DataWorks'e eklenen veri kaynağının adı. Eklenen veri kaynağının adıyla tam olarak eşleşmelidir. | Evet | Yok |
table |
Veri yazma işlemleri için hedef tablo. Bir JSON dizisi olarak belirtin. table parametresi, connection yapılandırma bloğu içine yerleştirilmelidir. |
Evet | Yok |
column |
Yazılacak hedef sütunlar. Birden fazla sütunu virgülle ayırın — örneğin, ["id", "name", "age"]. Boş bırakılamaz. |
Evet | Yok |
preSql |
Veri yazma işleminden önce çalıştırılacak bir SQL ifadesi. Hedef tablo adı için yer tutucu olarak @table kullanın; sistem çalışma zamanında gerçek tablo adını yerine koyar. |
Hayır | Yok |
postSql |
Veri yazma işlemi tamamlandıktan sonra çalıştırılacak bir SQL ifadesi. | Hayır | Yok |
batchSize |
Her toplu işlemde gönderilen kayıt sayısı. Daha büyük bir değer ağ gidiş-dönüşlerini azaltır ve yazma aktarım hızını artırır. Aşırı büyük değerler senkronizasyon sırasında bellek yetersizliği (OOM) hatasına neden olabilir. | Hayır | 1.024 |