Tüm Ürünler
Search
Belge Merkezi

DataWorks:SQL Server veri kaynağı

Son Güncelleme:Oct 09, 2026

SQL Server veri kaynağı, çift yönlü bir kanal üzerinden SQL Server'dan veri okumanıza ve SQL Server'a veri yazmanıza olanak tanır. Bu konu, DataWorks tarafından desteklenen SQL Server veri senkronizasyonu yeteneklerini açıklar.

Desteklenen sürümler

SQL Server Reader, com.microsoft.sqlserver sqljdbc4 4,0 sürücüsünü kullanır. Sürücü yetenekleri hakkında bilgi için resmi belgelere bakın. Bu sürücü aşağıdaki SQL Server sürümlerini destekler:


Sürüm


Destekleniyor (evet/hayır)


SQL Server 2016


Evet


SQL Server 2014


Evet


SQL Server 2012


Evet


PDW 2008R2 AU34


Evet


SQL Server 2008 R2


Evet


SQL Server 2008


Evet


SQL Server 2019


Hayır


SQL Server 2018


Hayır


Azure SQL Managed Instance


Hayır


Azure Synapse Analytics


Hayır


Azure SQL Database


Evet

Sınırlamalar

Toplu iş senkronizasyonu görünümleri okuyabilir.

Desteklenen alan türleri

SQL Server alan türlerinin tam listesi için SQL Server belgelerine bakın. Aşağıdaki tabloda, yaygın türler ve destek durumları SQL Server 2016 örneği üzerinden gösterilmiştir.


SQL Server 2016 alan türü


SQL Server Reader


SQL Server Writer


bigint


Desteklenir


Desteklenir


bit


Desteklenir


Desteklenir


decimal


Desteklenir


Desteklenir


int


Desteklenir


Desteklenir


money


Desteklenir


Desteklenir


numeric


Desteklenir


Desteklenir


smallint


Desteklenir


Desteklenir


smallmoney


Desteklenir


Desteklenir


tinyint


Desteklenir


Desteklenir


float


Desteklenir


Desteklenir


real


Desteklenir


Desteklenir


date


Desteklenir


Desteklenir


datetime2


Desteklenir


Desteklenir


datetime


Desteklenir


Desteklenir


datetimeoffset


Desteklenmez


Desteklenmez


smalldatetime


Desteklenir


Desteklenir


time


Desteklenir


Desteklenir


char


Desteklenir


Desteklenir


text


Desteklenir


Desteklenir


varchar


Desteklenir


Desteklenir


nchar


Desteklenir


Desteklenir


ntext


Desteklenir


Desteklenir


nvarchar


Desteklenir


Desteklenir


binary


Desteklenir


Desteklenir


image


Desteklenir


Desteklenir


varbinary


Desteklenir


Desteklenir


cursor


Desteklenmez


Desteklenmez


hierarchyid


Desteklenmez


Desteklenmez


sql_variant


Desteklenir


Desteklenir


Spatial Geometry Types


Desteklenmez


Desteklenmez


table


Desteklenmez


Desteklenmez


rowversion


Desteklenmez


Desteklenmez


uniqueidentifier


Desteklenir


Desteklenir


xml


Desteklenir


Desteklenir


Spatial Geography Types


Desteklenmez


Desteklenmez

Aşağıdaki tabloda SQL Server Reader ve SQL Server Writer için SQL Server tür eşlemeleri listelenmiştir.


Tür kategorisi


SQL Server veri türü


Tamsayı


BIGINT, INT, SMALLINT ve TINYINT


Kayan nokta


FLOAT, DECIMAL, REAL ve NUMERIC


Dize


CHAR, NCHAR, NTEXT, NVARCHAR, TEXT, VARCHAR, NVARCHAR (MAX) ve VARCHAR (MAX)


Tarih ve saat


DATE, DATETIME ve TIME


Boole


BIT


İkili


BINARY, VARBINARY, VARBINARY (MAX) ve TIMESTAMP

Veri kaynağı ekleme

DataWorks'te bir senkronizasyon görevi geliştirmeden önce, gerekli veri kaynağını Veri kaynağı yapılandırması bölümündeki talimatları izleyerek DataWorks'e eklemeniz gerekir. Bir veri kaynağı eklerken parametrelerin anlamlarını anlamak için DataWorks konsolunda parametre açıklamalarını görüntüleyebilirsiniz.

Veri senkronizasyonu görevlerini geliştirme

Senkronizasyon görevini yapılandırmaya giriş noktası ve yordamı hakkında bilgi için aşağıdaki yapılandırma kılavuzlarına bakın.

Tek tablo toplu iş senkronizasyonu görevini yapılandırma

Tam veritabanı toplu okuma senkronizasyonu görevini yapılandırma

Yordam için Gerçek zamanlı tam veritabanı senkronizasyonu görevlerini yapılandırma bölümüne bakın.

SSS

  • Birincil-çoğaltma kurulumunda veri kurtarma

    Birincil-çoğaltma olağanüstü durum kurtarma kurulumunda, çoğaltma binloglar aracılığıyla birincilden sürekli olarak verileri kurtarır. Özellikle ağ gecikmeleri nedeniyle çoğaltma gecikebilir. Bu nedenle, çoğaltmadaki veriler birinciden önemli ölçüde farklı olabilir ve çoğaltmadan senkronize edilen veriler mevcut zamandaki eksiksiz bir anlık görüntü olmayabilir.

  • Tutarlılık kısıtlamaları

    SQL Server bir RDBMS'dir ve güçlü tutarlı sorgu arabirimleri sağlayabilir. Örneğin, bir senkronizasyon görevi başladıktan sonra başka bir yazar veritabanını güncellerse, SQL Server Reader veritabanı anlık görüntü davranışı nedeniyle bu güncellenen verileri yakalamaz.

    Bu durum, SQL Server Reader tek iş parçacıklı model altındaki tutarlılığı açıklar. SQL Server Reader yapılandırmanıza göre verileri eşzamanlı olarak çıkarabildiğinden, sıkı tutarlılık her zaman garanti edilemez.

    SQL Server Reader verileri splitPk ile böldüğünde, birden çok eşzamanlı görev başlatır. Bu görevler tek bir okuma işlemi paylaşmaz ve farklı zamanlarda başladığından, elde edilen veriler eksiksiz ve tutarlı bir anlık görüntü değildir.

    Birden çok iş parçacığında tutarlı bir anlık görüntü şu anda teknik olarak mümkün değildir. Aşağıdaki mühendislik yaklaşımlarının ödünleşimleri vardır; ihtiyaçlarınıza göre seçim yapın.

    • Verileri bölmeden tek iş parçacıklı senkronizasyon kullanın. Daha yavaştır ancak iyi tutarlılık sağlar.

    • Tabloyu kilitleyerek veya çoğaltma senkronizasyonunu durdurarak verilerin statik kalmasını sağlayın. Bu durum çevrimiçi işlerinizi etkileyebilir.

  • Veritabanı kodlaması

    SQL Server Reader verileri JDBC kullanarak çıkarır. JDBC farklı kodlamaları işler ve bunları dahili olarak dönüştürür, bu nedenle SQL Server Reader için kodlama belirtmeniz gerekmez.

  • Artımlı veri senkronizasyonu

    SQL Server Reader verileri JDBC SELECT deyimleriyle çıkarır. Artımlı çıkarma için aşağıdaki şekillerde SELECT…WHERE… kullanın:

    • Çevrimiçi bir uygulama veri yazdığında, ekleme, güncelleme ve mantıksal silme işlemleri için değiştirme alanını değişiklik zaman damgasıyla doldurur. SQL Server Reader, önceki senkronizasyon zaman damgasından sonra bir WHERE koşulu kullanabilir.

    • Yalnızca ekleme yapılan kayıtlar için, önceki aşamadaki en büyük otomatik artan ID'ye dayalı bir WHERE koşulu ayarlayın.

    Ekleme veya değiştirme yapan kayıtları tanımlayan hiçbir iş alanı yoksa, SQL Server Reader artımlı olarak senkronize edemez ve tüm verileri senkronize etmesi gerekir.

  • SQL güvenliği

    SQL Server Reader, bir SELECT çıkarma sorgusu yazmanıza olanak tanıyan querySql sağlar, ancak querySql'i güvenlik açısından doğrulamaz.

Ek: Örnek komut dosyaları ve parametreler

Kod düzenleyicisini kullanarak toplu iş senkronizasyonu görevini yapılandırma

Toplu iş senkronizasyonu görevini kod düzenleyicisini kullanarak yapılandırmak istiyorsanız, ilgili parametreleri komut dosyasında birleşik komut dosyası biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için Komut dosyası modu yapılandırması bölümüne bakın. Aşağıdaki bilgiler, kod düzenleyicisini kullanarak toplu iş senkronizasyonu görevini yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.

Reader örnek komut dosyası

{ "type":"job", "version":"2.0",//Sürüm numarası. "steps":[ { "stepType":"sqlserver",//Eklenti adı. "parameter":{ "datasource":"",//Veri kaynağı. "column":[//Alanlar. "id", "name" ], "where":"",//Filtreleme koşulu. "splitPk":"",//splitPk belirtilirse, veriler bu alana göre bölünür. "table":""//Veri tablosu. }, "name":"Reader", "category":"reader" }, { "stepType":"stream", "parameter":{}, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"//Hatalı kayıt sayısı. }, "speed":{ "throttle":true,//Throttle false olduğunda mbps yoksayılır ve aktarım hızı sınırsızdır; true olduğunda aktarım hızı sınırlıdır. "concurrent":1 //Görev eşzamanlılığı. "mbps":"12",//Hız sınırı. Burada 1 mbps = 1 MB/s'dir. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

querySql ile sorgulamak için aşağıdaki gibi bir Reader komut dosyası kullanın. Burada SQL Server veri kaynağı sql_server_source, tablo dbo.test_table ve sütun name'dir.

{
    "stepType": "sqlserver",
    "parameter": {
        "connection": [
            {
                "querySql": ["select name from dbo.test_table"],
                "datasource": "sql_server_source"
            }
        ],
        "datasource": "sql_server_source",
        "column": ["name"],
        "where": "",
        "splitPk": "id"
    },
    "name": "Reader",
    "category": "reader"
}

Reader komut dosyası parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Veri kaynağı adı. Komut dosyası modunda bir veri kaynağı ekleyebilirsiniz. Değer, eklenen veri kaynağının adıyla eşleşmelidir.

Evet

Yok

table

Senkronize edilecek tablonun adı. Bir görev yalnızca bir tabloyu destekler.

Evet

Yok

column

Yapılandırılan tablodan senkronize edilecek sütunlar, JSON dizisi olarak açıklanır. Varsayılan olarak, [*] gibi tüm sütunlar seçilir.

  • Dışa aktarma için yalnızca bazı sütunları seçebilirsiniz.

  • Tablo şemasını takip etmek yerine dışa aktarma için sütunları yeniden sıralayabilirsiniz.

  • MySQL SQL sözdizimine göre sabitler yapılandırabilirsiniz, örneğin ["id", "table","1", "'mingya.wmy'", "'null'", "to_char(a+1)", "2,3" , "true"] .

    • id normal bir sütun adıdır.

    • table ayrılmış sözcük içeren bir sütun adıdır.

    • 1 bir tamsayı sabitidir.

    • 'mingya.wmy' bir dize sabitidir. Tek tırnak işaretlerini dahil edin.

    • 'null' bir dizedir.

    • to_char(a + 1) bir fonksiyon ifadesidir.

    • 2,3 bir kayan nokta sayıdır.

    • true bir Boole değeridir.

  • columnSenkronize edilecek boş olmayan bir sütun kümesini açıkça belirtin.

Evet

Yok

splitFactor

Veri parçalarının sayısını ayarlayan bir bölme faktörü. Birden çok eşzamanlı görevle, veriler concurrency × splitFactor parçaya bölünür. Örneğin, concurrency = 5 ve splitFactor = 5, beş eşzamanlı iş parçacığı üzerinden yürütülen 5 × 5 = 25 parça üretir.

Not

Önerilen aralık: 1 ila 100. Aşırı büyük bir değer bellek yetersizliği hatasına neden olabilir.

Hayır

5

splitPk

SQL Server Reader verileri çıkardığında, splitPk belirtmek, verilerin splitPk alanına göre bölüneceği anlamına gelir. Senkronizasyon, verimliliği artırmak için eşzamanlı görevler başlatır.

  • splitPk için tablo birincil anahtarını kullanmanızı öneririz çünkü birincil anahtar değerleri genellikle eşit dağıtılır ve veri sıcak noktalarının oluşma olasılığını azaltır.

  • splitPk şu anda yalnızca tamsayı değerlerini destekler; dizeleri, kayan nokta sayılarını, tarihleri veya diğer türleri desteklemez. Desteklenmeyen bir tür belirtirseniz SQL Server Reader hata verir.

Hayır

Yok

where

Bir filtreleme koşulu. SQL Server Reader, belirtilen column, table ve where koşullarından bir SQL deyimi oluşturur ve verileri bu deyimle çıkarır. Test amacıyla WHERE koşulu olarak limit 10 belirtebilirsiniz. Pratikte, WHERE koşulunu gmt_create > ${bizdate} olarak ayarlayarak o günün verilerini senkronize edebilirsiniz.

  • Bir WHERE koşulu artımlı senkronizasyonu etkinleştirebilir.

  • Boş bir WHERE koşulu tüm tabloyu senkronize eder.

Hayır

Yok

querySql

Biçim:"querysql" : "sorgu deyimi"Bazı senaryolarda WHERE gerekli filtreyi açıklayamaz. Özel SQL sağlamak için querySql kullanın. querySql yapılandırıldığında, Data Integration tabloları ve sütunları yoksayar ve verileri doğrudan sorguyla filtreler, örneğin select a,b from table_a join table_b on table_a.id = table_b.id ile birden çok tabloyu birleştirir. querySql yapılandırdığınızda, SQL Server Reader column, table ve where koşulunu yoksayar.

Hayır

Yok

fetchSize

Eklenti ve veritabanı sunucusu tarafından her partide alınan kayıt sayısı. Data Integration ile ağ etkileşimlerinin sayısını belirler ve çıkarma performansını artırabilir.

Not

fetchSizeAşırı büyük bir değer (> 2.048), senkronizasyon sırasında bellek yetersizliği (OOM) hatasına neden olabilir.

Hayır

1024

driverVersion

SQL Server sürücü sürümü. Varsayılan 4,0'dır. Active Directory Service Principal kimlik doğrulamasını destekleyen 12,10 sürümünü belirtebilirsiniz.

Hayır

4,0

  • SQL Server Reader, yapılandırılan table, column ve where bilgilerini bir SQL deyimine dönüştürür ve bunu SQL Server'a gönderir.

  • SQL Server Reader, yapılandırılan querySql bilgisini alır ve querySql bilgisi için bunu doğrudan SQL Server'a gönderir.

Writer örnek komut dosyası

{ "type":"job", "version":"2.0",//Sürüm numarası. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"sqlserver",//Eklenti adı. "parameter":{ "postSql":[],//Senkronizasyon görevinden sonra çalıştırılacak SQL deyimleri. "datasource":"",//Veri kaynağı. "column":[//Alanlar. "id", "name" ], "table":"",//Tablo adı. "preSql":[]//Senkronizasyon görevinden önce çalıştırılacak SQL deyimleri. }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"//Hatalı kayıt sayısı. }, "speed":{ "throttle":true,//Throttle false olduğunda mbps yoksayılır ve aktarım hızı sınırsızdır; true olduğunda aktarım hızı sınırlıdır. "concurrent":1, //Görev eşzamanlılığı. "mbps":"12"//Hız sınırı. Burada 1 mbps = 1 MB/s'dir. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Writer komut dosyası parametreleri


Parametre


Açıklama


Gerekli


Varsayılan değer


datasource


Veri kaynağı adı. Komut dosyası modunda bir veri kaynağı ekleyebilirsiniz. Değer, eklenen veri kaynağının adıyla eşleşmelidir.


Evet


Yok


table


Senkronize edilecek tablonun adı.


Evet


Yok


column


Yazılacak hedef tablo alanları, virgülle ayrılmış. Örnek:"column":["id","name","age"]. Tüm sütunları sırayla yazmak için * kullanın, örneğin "column":["*"].


Evet


Yok


preSql


Senkronizasyon görevinden önce çalıştırılacak SQL deyimleri. Sihirbaz modu bir deyime izin verirken komut dosyası modu eski verileri temizleme gibi birden çok deyimi destekler.


Hayır


Yok


postSql


Senkronizasyon görevinden sonra çalıştırılacak SQL deyimleri. Sihirbaz modu bir deyime izin verirken komut dosyası modu zaman damgası ekleme gibi birden çok deyimi destekler.


Hayır


Yok


writeMode


Bir içe aktarma modu seçin. Desteklenen: insert. Birincil anahtar veya benzersiz dizin çakışması oluşursa, Data Integration satırı kirli veri olarak kabul eder ve orijinal satırı korur.


Hayır


insert


batchSize


Tek bir partide gönderilen kayıt sayısı. Bu, Data Integration ile SQL Server arasındaki ağ etkileşimlerini büyük ölçüde azaltır ve aktarım hızını artırır. Aşırı büyük bir değer senkronizasyon sırasında bellek yetersizliği (OOM) hatasına neden olabilir.


Hayır


1.024


driverVersion


SQL Server sürücü sürümü. Varsayılan 4,0'dır. Active Directory Service Principal kimlik doğrulamasını destekleyen 12,10 sürümünü belirtebilirsiniz.


Hayır


4,0