Tüm Ürünler
Search
Belge Merkezi

DataWorks:GBase8a

Son Güncelleme:Oct 05, 2026

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. preSql ve postSql içinde belirtilen ifadeler için ek izinler gerekebilir.

  • GBase8a Writer, writeMode parametresini 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:

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