Tüm Ürünler
Search
Belge Merkezi

DataWorks:DRDS (PolarDB-X 1.0)

Son Güncelleme:Oct 05, 2026

DRDS (PolarDB-X 1.0) veri kaynağı, verileri DRDS (PolarDB-X 1.0) üzerinden okumanıza ve yazmanıza olanak tanır. Bu konu, bu veri kaynağı için DataWorks'ün veri senkronizasyonu yeteneklerini açıklar.

Başlangıç

DRDS (PolarDB-X 1.0) ile veri senkronizasyonunu başlatmak için aşağıdaki adımları sırasıyla tamamlayın:

  1. replace into iznine sahip bir veritabanı hesabı oluşturun. Bkz. Önkoşullar.

  2. DRDS (PolarDB-X 1.0)'yi DataWorks'e veri kaynağı olarak ekleyin. Bkz. Veri kaynağı ekleme.

  3. Bir senkronizasyon görevini yapılandırın ve çalıştırın. Bkz. Veri senkronizasyon görevi geliştirme.

Önkoşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • replace into iznine sahip bir DRDS (PolarDB-X 1.0) veritabanı hesabı. Kurulum talimatları için bkz. Hesap oluşturma.

Sınırlamalar

Çevrimdışı okuma ve yazma

  • DRDS (PolarDB-X 1.0) eklentisi yalnızca MySQL motoruyla uyumludur. DRDS (PolarDB-X 1.0) dağıtılmış bir MySQL veritabanıdır ve iletişim protokollerinin çoğu MySQL standartlarını takip eder.

  • DRDS (PolarDB-X 1.0) içindeki MySQL 8.0, Serverless kaynak grupları (önerilen) ve Data Integration için özel kaynak grupları desteği sunar.

  • DRDS (PolarDB-X 1.0) Writer, Java Database Connectivity (JDBC) aracılığıyla uzak bir DRDS (PolarDB-X 1.0) veritabanının proxy sunucusuna bağlanır ve verileri yazmak için replace into deyimlerini kullanır. Yinelenen yazmaları önlemek için hedef tablonun bir birincil anahtarı veya benzersiz dizini olmalıdır.

  • DRDS (PolarDB-X 1.0) Writer, verileri veri senkronizasyonu çerçevesi aracılığıyla Reader'dan alır ve ardından replace into deyimlerini kullanarak yazar: Writer verileri biriktirir ve DRDS (PolarDB-X 1.0) proxy sunucusuna gönderir; proxy sunucusu verilerin bir veya daha fazla tabloya yönlendirilip yönlendirilmeyeceğini belirler.

    • Birincil anahtar veya benzersiz dizin çakışması oluşmazsa davranış, insert into deyimine eşdeğerdir.

    • Çakışma oluşursa yeni satır, mevcut satırın tüm alanlarının yerine geçer.

    Not

    Görev en az replace into izni gerektirir. Ek izinler, preSql ve postSql içinde belirtilen SQL deyimlerine bağlıdır.

  • Görünümlerden okuma desteklenir.

Desteklenen alan türleri

DRDS (PolarDB-X 1.0) Reader ve Writer çoğu veri türünü destekler. Bir senkronizasyon görevini yapılandırmadan önce veri türlerinizin aşağıdaki listede yer aldığını doğrulayın.

Tür kategorisi DRDS (PolarDB-X 1.0) veri türleri
Tamsayı türleri INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT
Kayan nokta türleri FLOAT, DOUBLE, DECIMAL
Dize türleri VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
Tarih ve saat türleri DATE, DATETIME, TIMESTAMP, TIME, YEAR
Boole türleri BIT, BOOL
İkili türler TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY

Veri kaynağı ekleme

DataWorks'te bir senkronizasyon görevi geliştirmeden önce DRDS (PolarDB-X 1.0)'yi veri kaynağı olarak ekleyin. Talimatlar için bkz. Veri kaynağı yönetimi. Parametre açıklamaları, veri kaynağını eklerken DataWorks konsolunda mevcuttur.

Veri senkronizasyon görevi geliştirme

Tek bir tablo için çevrimdışı senkronizasyon görevi yapılandırma

Tüm bir veritabanı için çevrimdışı senkronizasyon görevi yapılandırma

Bkz. Tüm bir veritabanı için çevrimdışı senkronizasyon görevi yapılandırma.

SSS

DRDS (PolarDB-X 1.0) Reader neden parçalar arasında veri tutarlılığını garanti edemez?

DRDS (PolarDB-X 1.0) dağıtılmış bir veritabanıdır. Reader farklı temel parçalı tablolardan veri çıkardığında anlık görüntüleri tek bir tutarlı zaman diliminden değil farklı zaman noktalarında yakalar. Parçalı veritabanları ve tablolar arasında güçlü tutarlılık garanti edilemez.

Kodlama veri senkronizasyonunu nasıl etkiler?

DRDS (PolarDB-X 1.0), alan, tablo, veritabanı ve örnek düzeylerinde kodlama ayarlarını destekler. Kodlama ayarlarının önceliği, en yüksekte en düşüğe doğru şu şekildedir: alan, tablo, veritabanı ve ardından örnek. Sorunlardan kaçınmak için kodlamayı veritabanı düzeyinde UTF-8 olarak ayarlayın.

DRDS (PolarDB-X 1.0) Reader, veri çıkarma için JDBC kullanır ve kodlama dönüştürmeyi otomatik olarak gerçekleştirir. Ancak alt katmana veri yazılırken kullanılan kodlama bildirilen kodlamadan farklıysa Reader bu uyumsuzluğu algılayamaz ve senkronizasyon sonucu bozuk karakterler içerebilir.

Artımlı veri senkronizasyonunu nasıl yapılandırırım?

DRDS (PolarDB-X 1.0) Reader, veri çıkarma için JDBC SELECT deyimlerini kullanır. Yalnızca son senkronizasyondan bu yana eklenen veya değiştirilen kayıtları filtrelemek için bir WHERE yan tümcesi kullanın:

  • Zaman damgası tabanlı: Uygulamanız her kayıt için bir değişiklik zaman damgasıyla bir modify alanı yazıyorsa (eklemeler, güncellemeler veya mantıksal silmeleri kapsar), son senkronizasyon çalışmasının zaman damgasını kullanan bir WHERE yan tümcesi ekleyin.

  • Otomatik artan kimlik tabanlı: Yalnızca ekleme yapılan veri akışları için önceki senkronizasyondaki maksimum otomatik artan kimliği kullanan bir WHERE yan tümcesi ekleyin.

Verilerinizde yeni veya değiştirilen kayıtları mevcut olanlardan ayıran bir alan yoksa Reader artımlı çıkarmayı destekleyemez; yalnızca tam veri senkronizasyonu kullanılabilir.

Not

Fiziksel tablo adlarına dayalı filtre koşulları WHERE yan tümcesinde desteklenmez.

Ek: Betik demosu ve parametreler

Kod düzenleyicisini kullanarak toplu iş senkronizasyon görevi yapılandırmak için Kod düzenleyicide görev yapılandırma bölümünde açıklanan birleşik betik biçimini izleyin. Aşağıdaki bölümlerde parametreler açıklanmış ve betik örnekleri sunulmuştur.

Reader betik demosu

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "drds",
            "parameter": {
                "datasource": "",
                "column": [
                    "id",
                    "name"
                ],
                "where": "",
                "table": "",
                "splitPk": ""
            },
            "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 betik parametreleri

Parametre Açıklama Gerekli Varsayılan değer
datasource Veri kaynağının adı. Değer, DataWorks'te eklenen veri kaynağının adıyla eşleşmelidir. Evet Yok
table Verilerin senkronize edileceği tablo. Evet Yok
column JSON dizisi olarak belirtilen senkronize edilecek sütunlar. Tüm sütunları seçmek için ["*"] kullanın. Sütun budama, yeniden sıralama, sabitler ve MySQL işlev ifadelerini destekler. Örnek: ["id", " table ", "1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3", "true"]. Evet Yok
where SELECT deyimi oluşturmak için kullanılan filtre koşulu. Boş bırakılırsa tüm tablo senkronize edilir. Tarih veya kimlik koşulları aracılığıyla artımlı senkronizasyonu destekler. Örnek: STRTODATE('${bdp.system.bizdate}','%Y%m%d') <= today AND today < DATEADD(STRTODATE('${bdp.system.bizdate}', '%Y%m%d'), interval 1 day). Hayır Yok
splitPk Paralel okumalar için kullanılan parça anahtarı. Hayır Yok

Writer betik demosu

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "drds",
            "parameter": {
                "postSql": [],
                "datasource": "",
                "column": [
                    "id"
                ],
                "writeMode": "insert ignore",
                "batchSize": "1024",
                "table": "test",
                "preSql": []
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Writer betik parametreleri

Parametre Açıklama Gerekli Varsayılan değer
datasource Veri kaynağının adı. Değer, DataWorks'te eklenen veri kaynağının adıyla eşleşmelidir. Evet Yok
table Verilerin yazılacağı hedef tablo. Evet Yok
writeMode Yazma modu. Geçerli değerler: insert ignore (birincil anahtar veya kısıtlama kurallarını ihlal eden satırları yoksayar) ve replace into (çakışma durumunda mevcut satırların yerine geçer). Hayır insert ignore
column Virgülle ayrılmış liste olarak belirtilen verilerin yazılacağı hedef sütunlar. Örnek: ["id", "name", "age"]. Tüm sütunlara sırayla yazmak için ["*"] kullanın. Evet Yok
preSql Senkronizasyon görevi başlamadan önce çalıştırılacak SQL deyimleri. Kodsuz kullanıcı arabiriminde yalnızca bir deyim desteklenir. Kod düzenleyicisinde birden çok deyim desteklenir. Örnek: delete * from table xxx;. Hayır Yok
postSql Senkronizasyon görevi tamamlandıktan sonra çalıştırılacak SQL deyimleri. Kodsuz kullanıcı arabiriminde yalnızca bir deyim desteklenir. Kod düzenleyicisinde birden çok deyim desteklenir. Örnek: delete * from table xxx where xx=xx;. Hayır Yok
batchSize Parti başına 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