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ı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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aşağıdaki tabloda SQL Server Reader ve SQL Server Writer için SQL Server tür eşlemeleri listelenmiştir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
Yordam için Kodsuz UI yapılandırması ve Komut dosyası modu yapılandırması bölümlerine bakın.
Tüm komut dosyası modu parametreleri ve örnek komut dosyaları için Ek: Örnek komut dosyaları ve parametreler bölümüne bakın.
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.
| Evet | Yok |
splitFactor | Veri parçalarının sayısını ayarlayan bir bölme faktörü. Birden çok eşzamanlı görevle, veriler 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,
| Hayır | Yok |
where | Bir filtreleme koşulu. SQL Server Reader, belirtilen
| Hayır | Yok |
querySql | Biçim: | 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
| 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,columnvewherebilgilerini bir SQL deyimine dönüştürür ve bunu SQL Server'a gönderir.SQL Server Reader, yapılandırılan
querySqlbilgisini 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|