DataWorks Veri Entegrasyonu, Lindorm Reader ve Lindorm Writer eklentileri aracılığıyla çift yönlü veri aktarımını destekler. Bu konuda, DataWorks'ün Lindorm'dan nasıl veri okuduğu ve Lindorm'a nasıl veri yazdığı açıklanmaktadır.
Kapsam
Geniş tablo motoru, Serverless kaynak gruplarını (önerilen) ve Veri Entegrasyonu için özel kaynak gruplarını destekler.
Hesaplama motoru yalnızca Serverless kaynak gruplarını destekler.
Lindorm çok modlu bir veritabanıdır. Daha fazla bilgi için Lindorm belgelerine bakın. DataWorks şu anda yalnızca geniş tablo motorunu ve hesaplama motorunu desteklemektedir.
Desteklenen alan türleri
Lindorm Reader ve Lindorm Writer, Lindorm veri türlerinin çoğunu destekler ancak bazı türler desteklenmez. Kullanmadan önce veri türlerinizi kontrol edin.
Aşağıdaki tabloda Lindorm Reader ve Lindorm Writer için Lindorm tür eşlemeleri listelenmiştir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Veri senkronizasyonu görevlerini geliştirme
Bir senkronizasyon görevinin yapılandırılmasına ilişkin 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
Desteklenen veri kaynakları: Veri Entegrasyonu modülü tarafından desteklenen tüm kaynak türleri
-
Yapılandırma kılavuzu: Çevrimdışı Senkronizasyon Yetenekleri
Tüm komut dosyası modu parametreleri ve örnek komut dosyaları için bkz. Ek: Örnek komut dosyaları ve parametreler .
Tek tablo gerçek zamanlı senkronizasyonu
Desteklenen veri kaynakları: Kafka, LogHub ve Hologres
Yapılandırma kılavuzu: Tek Tablo Gerçek Zamanlı Senkronizasyon Yetenekleri
Tam veritabanı gerçek zamanlı senkronizasyonu
Desteklenen veri kaynağı: PostgreSQL
Yapılandırma kılavuzu: Gerçek zamanlı tam veritabanı senkronizasyonu görevlerini yapılandırma
Ek: Örnek komut dosyaları ve parametreler
Kod düzenleyiciyi kullanarak toplu iş senkronizasyonu görevini yapılandırma
Kod düzenleyiciyi kullanarak bir toplu iş senkronizasyonu görevi yapılandırmak istiyorsanız, komut dosyasındaki ilgili parametreleri birleşik komut dosyası biçimi gereksinimlerine göre ayarlamanız gerekir. Daha fazla bilgi için bkz. Komut dosyası modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyiciyi kullanarak bir toplu iş senkronizasyonu görevi yapılandırırken veri kaynakları için belirtmeniz gereken parametreleri açıklamaktadır.
Reader örnek komut dosyaları
-
Geniş tablo motorundaki bir Lindorm SQL Table'dan yerel depolama alanına veri çıkaran bir iş yapılandırın.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "caching": 128, "column": [ "id", "value" ], "envType": 1, "datasource": "lindorm", "tableMode": "tableService", "table": "lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "lindorm", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transfer speed in bytes per second. DataX tries to reach this speed without exceeding it. "byte": 1048576 } //Error limits "errorLimit": { //Maximum number of error records. The job fails when this limit is exceeded. "record": 0, //Maximum percentage of error records. 1.0 means 100%, and 0.02 means 2% "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Geniş tablo motorundaki bir Lindorm HBaseLike (WideColumn) tablosundan yerel depolama alanına veri çıkaran bir iş yapılandırın.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "column": [ "STRING|rowkey", "INT|f:a" ], "envType": 1, "datasource": "lindorm", "tableMode": "wideColumn", "table":"lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transfer speed in bytes per second. DataX tries to reach this speed without exceeding it. "byte": 1048576 } //Error limits "errorLimit": { //Maximum number of error records. The job fails when this limit is exceeded. "record": 0, //Maximum percentage of error records. 1.0 means 100%, and 0.02 means 2%。 "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Bir hesaplama motoru tablosundan yerel depolama alanına veri çıkaran bir iş yapılandırın.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "column": [ "id", "value" ], "tableComment": "", "where": "", "session": [], "splitPk": "id", "table": "auto_ob_149912212480" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transfer speed in bytes per second. DataX tries to reach this speed without exceeding it. "byte": 1048576 } //Error limits "errorLimit": { //Maximum number of error records. The job fails when this limit is exceeded. "record": 0, //Maximum percentage of error records. 1.0 means 100%, and 0.02 means 2%。 "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Reader komut dosyası parametreleri
Parametre | Açıklama | Gerekli | Varsayılan değer | ||||||||||||||||||||
mode | Yalnızca geniş tablo motoru içindir. Veri okuma modunu belirtir: sabit sütun modu FixedColumn veya dinamik sütun modu DynamicColumn. | Evet | FixedColumn | ||||||||||||||||||||
tableMode | Yalnızca geniş tablo motoru içindir. Standart tablo SQL modu table veya geniş sütun modu wideColumn olarak ayarlanır. Varsayılan değer table'dir. table modunu seçerseniz bu parametreyi boş bırakabilirsiniz. | Hayır | Varsayılan olarak boş | ||||||||||||||||||||
table | Okunacak Lindorm tablosunun adı. Lindorm tablo adları büyük/küçük harfe duyarlıdır. | Evet | Yok | ||||||||||||||||||||
encoding | Yalnızca geniş tablo motoru içindir. Kodlama biçimi; UTF-8 veya GBK. Genellikle ikili veri olarak saklanan Lindorm byte[] türünü String'e dönüştürmek için kullanılır. | Hayır | UTF-8 | ||||||||||||||||||||
caching | Yalnızca geniş tablo motoru içindir. Her bir toplu işte alınan kayıt sayısı. Bu ayar, veri senkronizasyon sistemi ile Lindorm arasındaki ağ etkileşimlerini büyük ölçüde azaltarak genel aktarım hızını artırabilir. Çok yüksek bir değer, Lindorm sunucusunu aşırı yükleyebilir veya senkronizasyon sürecinde bellek yetersizliği (OOM) hatasına neden olabilir. | Hayır | 100 | ||||||||||||||||||||
selects | Yalnızca geniş tablo motoru içindir. Tablo türü veriler şu anda otomatik parça bölme özelliğini desteklemez ve varsayılan olarak tek eşzamanlı görevle çalışır. Bu nedenle, verileri manuel olarak bölmek üzere selects parametresini yapılandırın. Örnek: Sınırlamalar:
| Hayır | Yok | ||||||||||||||||||||
session | Yalnızca hesaplama motoru içindir. Oturum düzeyindeki iş parametreleri, örneğin | Hayır | Yok | ||||||||||||||||||||
splitPk | Yalnızca hesaplama motoru içindir. Bir hesaplama motoru tablosunu okumak için kullanılan bölme anahtarı. Belirtildiğinde, splitPk verilerin bölünmesinde kullanılan alanı belirler ve veri senkronizasyonu verimliliği artırmak için eşzamanlı görevler başlatır.
| Hayır | Yok | ||||||||||||||||||||
columns | Okunacak alanların listesi. Sütunların bir alt kümesini seçebilir ve sıralarını değiştirebilirsiniz. Sütun seçimi yalnızca seçilen sütunları dışa aktarır; sıralama değiştirme ise sütunları tablo şemasından farklı bir sırayla dışa aktarır.
| Evet | Yok |
Writer örnek komut dosyaları
-
MySQL'den geniş tablo motorundaki bir Lindorm SQL Table'a veri yazan bir iş yapılandırın.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "checkSlave": true, "datasource": " ", "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "masterSlave": "slave", "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8", "print": true }, "name": "mysqlReader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "nullMode": "skip", "datasource": "lindorm_datasource", "envType": 1, "column": [ "id", "value" ], "dynamicColumn": "false", "table": "lindorm_table", "encoding": "utf8" }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "speed": { //Set the transfer speed in bytes per second. DataX tries to reach this speed without exceeding it. "byte": 1048576 }, //Error limits "errorLimit": { //Maximum number of error records. The job fails when this limit is exceeded. "record": 0, //Maximum percentage of error records. 1.0 means 100%, and 0.02 means 2%。 "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
MySQL'den geniş tablo motorundaki bir Lindorm HBaseLike (WideColumn) tablosuna veri yazan bir iş yapılandırın.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "encoding": "utf8", "nullMode": "skip", "dynamicColumn": "false", "caching": 128, "column": [ //Map source fields in field order "ROW|STRING", //Row key. This fixed configuration maps the first source field to the row key, such as id in this example. "cf:name|STRING" //cf is the editable column family name; name is the editable destination column name ] }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
MySQL'den bir hesaplama motoru tablosuna veri yazan bir iş yapılandırın.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Writer komut dosyası parametreleri
Parametre | Açıklama | Gerekli | Varsayılan değer |
table | Veri yazılacak Lindorm tablosunun adı. Lindorm tablo adları büyük/küçük harfe duyarlıdır. | Evet | Yok |
encoding | Yalnızca geniş tablo motoru içindir. Kodlama biçimi; UTF-8 veya GBK. Genellikle ikili veri olarak saklanan Lindorm byte[] türünü String'e dönüştürmek için kullanılır. | Hayır | UTF-8 |
columns | Yazılacak alanların listesi. Sütunların bir alt kümesini seçebilir ve sıralarını değiştirebilirsiniz. Sütun seçimi yalnızca seçilen sütunları dışa aktarır; sıralama değiştirme ise sütunları tablo şemasından farklı bir sırayla dışa aktarır.
| Evet | Yok |
nullMode | Yalnızca geniş tablo motoru içindir. Kaynaktan okunan bir değer null olduğunda, bunun nasıl işleneceğini belirtmek için Lindorm Writer'ın nullMode parametresini ayarlayın.
| Hayır | EMPTY_BYTES |
formatType | Yalnızca hesaplama motoru içindir. Senkronize edilecek tablonun türünü belirtir. Geçerli değerler:
| Hayır | Yok |