Tüm Ürünler
Search
Belge Merkezi

DataWorks:DB2

Son Güncelleme:Oct 05, 2026

DB2 veri kaynağı, DataWorks'ü IBM DB2 veritabanlarına bağlayarak çevrimdışı veri eşzamanlaması sağlar. Toplu eşzamanlama görevlerinde DB2'den veri okumak ve DB2'ye veri yazmak için bu kaynağı kullanın.

Desteklenen sürümler

DB2 Reader ve DB2 Writer, IBM Data Server Driver for JDBC and SQLJ 4.11.77 sürümünü kullanır. DB2 sürücüsü ile veritabanı hizmeti arasındaki sürüm eşleştirmesi için resmi belgelere bakın.

Desteklenen yetenekler


Yetenek


Destekleniyor mu?


Çevrimdışı okuma (tam eşzamanlama)


Evet


Çevrimdışı yazma (tam eşzamanlama)


Evet


Görünümlerden okuma


Evet


Artımlı eşzamanlama


Evet (where filtresi veya querySql aracılığıyla)


AES şifreleme


Hayır


Serverless kaynak grupları


Evet


Data Integration için özel kaynak grupları


Evet


Ortak kaynak grupları


Hayır


Özel kaynak grupları


Hayır

Desteklenen alan türleri

DB2 Reader ve DB2 Writer, çevrimdışı okuma ve yazma işlemleri için aşağıdaki DB2 veri türlerini destekler. Bir eşzamanlama görevini yapılandırmadan önce veri türlerinizi kontrol edin.


Tür kategorisi


DB2 veri türleri


Tamsayı türleri


SMALLINT


Kayan nokta türleri


DECIMAL, REAL, DOUBLE


Dize türleri


CHAR, CHARACTER, VARCHAR, GRAPHIC, VARGRAPHIC, LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB


Tarih ve saat türleri


DATE, TIME, TIMESTAMP


Boolean türleri


Yok


İkili türler


BLOB

Sınırlamalar

  • Kaynak grupları: DB2 Reader ve DB2 Writer, Serverless kaynak gruplarını ve Data Integration için özel kaynak gruplarını destekler. Ortak kaynak grupları ve özel kaynak grupları desteklenmez.

  • Yazma davranışı: DB2 Writer, verileri insert into deyimlerini kullanarak yazar. Birincil anahtar veya benzersiz dizin çakışması oluşursa, çakışan satırlar yazılmaz. Performans amacıyla DB2 Writer, PreparedStatement + Batch yapısını rewriteBatchedStatements=true parametresiyle kullanır; verileri bir iş parçacığı bağlamı arabelleğinde tutar ve arabellek yapılandırılan eşik değerine ulaştığında bir yazma isteği gönderir.

    Eşzamanlama görevi en az insert into izni gerektirir. preSql ve postSql parametrelerinde yapılandırılan SQL deyimlerine bağlı olarak ek izinler gerekebilir.
  • Şifreleme: DB2 AES şifreleme algoritması desteklenmez.

Veri kaynağı ekleme

Bir eşzamanlama görevi geliştirmeden önce DB2 veri kaynağını DataWorks'e ekleyin. Talimatlar için Veri kaynağı yönetimi bölümüne bakın. Parametre açıklamaları, veri kaynağını eklerken DataWorks konsolunda sunulur.

Veri eşzamanlama görevi geliştirme

Tek tablo için çevrimdışı eşzamanlama görevi

Tam veritabanı için çevrimdışı eşzamanlama görevi

Yapılandırma adımları için Toplu veritabanı eşzamanlama yapılandırması bölümüne bakın.

Sık Sorulan Sorular

Aktif/pasif eşzamanlama sırasında yedek veritabanında neden veri eksik olabilir?

Aktif/pasif olağanüstü durum kurtarma kurulumunda, yedek veritabanı binlog'lar aracılığıyla birincil veritabanından gelen değişiklikleri sürekli olarak uygular. Bu işlemde doğası gereği bir zaman gecikmesi bulunur ve ağ gecikmesi bu durumu daha da kötüleştirebilir. Sonuç olarak, yedek veritabanı birincil veritabanını gerçek zamanlı olarak yansıtmayabilir ve iki veritabanı arasında önemli veri tutarsızlıkları oluşabilir.

DB2 Reader, eşzamanlı çıkarma sırasında veri tutarlılığını garanti eder mi?

DB2, güçlü tutarlılık sorgu arayüzlerine sahip bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Tek iş parçacıklı modda DB2 Reader tutarlı bir anlık görüntüyü okur; görev çalışırken başka bir kaynak veri yazarsa DB2 Reader bu güncellemeleri almaz.

splitPk parametresini kullanarak eşzamanlı çıkarma yapılandırdığınızda, DB2 Reader aynı okuma işleminin parçası olmayan ve farklı zamanlarda çalışan birden çok görev başlatır. Bu durumda, eşzamanlı görevlerin okuduğu anlık görüntüler eksik veya tutarsız olabilir. İki geçici çözüm mevcuttur:

  • Tek iş parçacıklı eşzamanlama kullanın (veri bölümlendirmesi yok). Bu yaklaşım veri tutarlılığını korur ancak eşzamanlama hızını düşürür.

  • Eşzamanlama sırasında kaynağa yazmayı devre dışı bırakın; örneğin tabloları kilitleyerek veya yedek veritabanına çoğaltmayı duraklatarak bunu sağlayabilirsiniz. Bu yöntem kaynak verilerini statik tutar ancak çevrimiçi hizmetleri etkileyebilir.

DB2 Reader için kodlamayı yapılandırmam gerekir mi?

Hayır. DB2 Reader, verileri ayıklamak için Java Database Connectivity (JDBC) kullanır. JDBC, alt katmanda kodlama dönüşümünü gerçekleştirir; bu nedenle DB2 Reader kodlamayı otomatik olarak algılar ve transkode eder.

Artımlı veri eşzamanlamasını nasıl ayarlarım?

DB2 Reader, verileri JDBC SELECT deyimlerini kullanarak çıkarır; bu nedenle artımlı çıkarma için SELECT...WHERE... yapısını iki şekilde kullanabilirsiniz:

  • Kaynak uygulama, veriler değiştiğinde bir zaman damgası alanı (örneğin modify sütunu) dolduruyorsa, son eşzamanlama çalışmasındaki zaman damgasını kullanarak bir where yan tümcesi yapılandırın. Bu yaklaşım yeni, güncellenmiş ve mantıksal olarak silinmiş satırları yakalar.

  • Yalnızca eklenen veriler için, önceki eşzamanlama çalışmasındaki maksimum otomatik artış kimliğini kullanarak bir where yan tümcesi yapılandırın.

Yeni verileri mevcut verilerden ayıran hiçbir alan yoksa yalnızca tam eşzamanlama mümkündür.

**querySql** parametresi SQL enjeksiyonuna karşı güvenli midir?

DB2 Reader, querySql deyimi üzerinde güvenlik denetimi gerçekleştirmez. Bu parametreyi yapılandırmadan önce herhangi bir özel SQL'i gözden geçirin ve doğrulayın.

Ek: Betik demosu ve parametre açıklaması

Kod düzenleyicide bir toplu eşzamanlama görevi yapılandırırken aşağıdaki betikleri ve parametre referanslarını kullanın. Genel yordam için Kod düzenleyicide görev yapılandırma bölümüne bakın.

Reader betik demosu

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "db2",
            "parameter": {
                "datasource": "",
                "jdbcUrl": "",
                "username": "",
                "password": "",
                "table": "",
                "column": [
                    "id"
                ],
                "where": "",
                "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 parametreleri


Parametre


Açıklama


Zorunlu


Varsayılan


datasource


DataWorks'te yapılandırıldığı şekliyle veri kaynağının adı.


Evet


Yok


jdbcUrl


DB2 veritabanı için JDBC URL'si. Biçim: jdbc:db2://ip:port/database. Bağlantı kontrol nitelikleri ekleyebilirsiniz.


Evet


Yok


username


Veri kaynağı için kullanıcı adı.


Evet


Yok


password


Kullanıcı adına ait parola.


Evet


Yok


table


Kaynak tablo. Tek bir iş yalnızca bir tablodan okuyabilir.


Evet


Yok


column


JSON dizisi olarak belirtilen okunacak sütunlar. Tüm sütunlar için: ["*"]. Sütun budama, sütun yeniden sıralama ve sabitler desteklenir. Sabitler DB2 SQL sözdizimini takip etmelidir; örneğin: ["id", "1", "'const name'", "null", "upper('abc_lower')", "2.3", "true"]. Boş bırakılamaz.


Evet


Yok


splitPk


Eşzamanlı çıkarma için verileri bölmek üzere kullanılan alan. Eşit dağıtım sağlamak ve veri sıcak noktalarından kaçınmak için tablonun birincil anahtarını kullanın. Yalnızca tamsayı alanları desteklenir; kayan noktalı sayılar, dizeler ve tarihler desteklenmez. Desteklenmeyen bir tür belirtilirse DB2 Reader hata döndürür.


Hayır


""


where


Bir filtre koşulu. DB2 Reader, SELECT deyimini column, table ve where parametrelerinden oluşturur ve eşleşen verileri çıkarır. Örneğin, günlük artımlı eşzamanlama için where parametresini gmt_create>$bizdate olarak ayarlayın. Boş bırakılırsa tablodaki tüm satırlar eşzamanlanır.


Hayır


Yok


querySql


where parametresinin yeterli olmadığı durumlar için özel bir SELECT deyimi; örneğin, çok tablolu bir birleştirme sonucunu eşzamanlamak için: select a,b from table_a join table_b on table_a.id = table_b.id. querySql ayarlandığında table, column ve where parametreleri yoksayılır.


Hayır


Yok


fetchSize


Veritabanından her partide alınan kayıt sayısı. Daha büyük bir değer ağ gidiş-dönüşlerini azaltır ve çıkarma performansını artırır.


Hayır


1024

fetchSize değeri 2048'i aşarsa eşzamanlama sırasında bellek yetersizliği (OOM) hatası oluşabilir.

Writer betik demosu

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "db2",
            "parameter": {
                "jdbcUrl": "jdbc:db2://ip:port/database",
                "username": "",
                "password": "",
                "table": "",
                "column": [
                    "id"
                ],
                "preSql": [],
                "postSql": [],
                "batchSize": 1024
            },
            "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


jdbcUrl


DB2 veritabanı için JDBC URL'si. Biçim: jdbc:db2://ip:port/database. Bağlantı kontrol nitelikleri ekleyebilirsiniz.


Evet


Yok


username


Veri kaynağı için kullanıcı adı.


Evet


Yok


password


Kullanıcı adına ait parola.


Evet


Yok


table


Hedef tablo.


Evet


Yok


column


Veri yazılacak hedef sütunlar, JSON dizisi olarak belirtilir. Örnek: ["id", "name", "age"]. Tüm sütunlara sırayla yazmak için ["*"] kullanın.


Evet


Yok


preSql


Eşzamanlama görevi başlamadan önce yürütülecek SQL deyimi. Eski verileri temizlemek veya kurulum işlemleri gerçekleştirmek için kullanın. Yalnızca bir deyim desteklenir.


Hayır


Yok


postSql


Eşzamanlama görevi tamamlandıktan sonra yürütülecek SQL deyimi. Kodsuz kullanıcı arabiriminde yalnızca bir deyim desteklenir. Kod düzenleyicide birden çok deyim desteklenir.


Hayır


Yok


batchSize


Her partide 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. Çok yüksek ayarlanırsa OOM hatası oluşabilir.


Hayır


1024