Tüm Ürünler
Search
Belge Merkezi

DataWorks:ApsaraDB for OceanBase veri kaynağı

Son Güncelleme:Oct 05, 2026

ApsaraDB for OceanBase veri kaynağı, ApsaraDB for OceanBase'den veri okumanıza ve bu veritabanına veri yazmanıza olanak tanır. DataWorks içinde veri senkronizasyon görevlerini yapılandırmak için bu veri kaynağını kullanın. Bu konu, ApsaraDB for OceanBase ile veri senkronizasyonu yapmaya yönelik özellikleri açıklar.

Desteklenen sürümler

ApsaraDB for OceanBase Reader ve ApsaraDB for OceanBase Writer, toplu okuma ve yazma işlemleri için aşağıdaki OceanBase sürümlerini destekler:

  • OceanBase 2.x

  • OceanBase 3.x

  • OceanBase 4.x

Yukarıdaki sürümlerin tümü, Alibaba Cloud tarafından yönetilen bir hizmet olan ApsaraDB for OceanBase'i ifade eder. OceanBase Community Edition (CE) desteklenmez. Kendi kendine yönetilen bir OceanBase Community Edition örneğinden veri senkronize etmek için önce Data Transmission Service (DTS) kullanarak verileri ApsaraDB RDS for MySQL'e geçirin ve ardından verileri AnalyticDB for MySQL'e senkronize etmek için DataWorks'ü kullanın.

Sınırlamalar

Toplu okuma

  • ApsaraDB for OceanBase, Oracle ve MySQL kiracı modlarını destekler. Veri filtreleme için where yan tümcesini veya column parametresindeki işlev sütunlarını yapılandırırken, söz diziminin ilgili kiracı modunun SQL kısıtlamalarına uygun olduğundan emin olun. Aksi takdirde SQL ifadesi başarısız olabilir.

  • Bir görünümden (view) veri okuyabilirsiniz.

  • Toplu okuma sırasında, senkronize edilen verileri değiştirmeyin. Bu, veri çoğaltması veya kaybı gibi veri kalitesi sorunlarını önler.

  • Veri kaynağını Read by Partition olarak yapılandırırsanız, veri kaynağına erişmek için kullanılan hesabın system izinlerine sahip olması gerekir.

Toplu yazma

Not

Senkronizasyon görevi en az insert into... izni gerektirir. preSql ve postSql parametrelerinde belirttiğiniz ifadelere bağlı olarak başka izinler de gerekebilir.

  • Veri yazmak için batch yöntemini kullanmanızı öneririz. Bu yöntem, biriken satır sayısı önceden tanımlanmış bir eşik değere ulaştığında yalnızca bir yazma isteği gönderir.

  • ApsaraDB for OceanBase, Oracle ve MySQL kiracı modlarını destekler. preSql ve postSql parametrelerini yapılandırırken, söz diziminin ilgili kiracı modunun SQL kısıtlamalarına uygun olduğundan emin olun. Aksi takdirde SQL ifadesi başarısız olabilir.

Gerçek zamanlı okuma

  • Bu özellik yalnızca OceanBase MySQL kiracı modunu destekler.

  • Gerçek zamanlı verileri senkronize etmek için binlog özelliğini etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. Binlog ile ilgili işlemler (Alibaba Cloud örnekleri), Binlog ile ilgili işlemler (OB Cloud örnekleri).

  • Gerçek zamanlı tam veritabanı senkronizasyon görevleri, bağlantı dizesi modundaki veri kaynaklarını desteklemez.

  • Gerçek zamanlı tam veritabanı senkronizasyon görevleri için veritabanı sürümü V3.0 veya üzeri olmalıdır.

  • OceanBase, fiziksel olarak dağıtılmış birden çok veritabanından gelen verileri tek bir mantıksal veritabanında birleştirebilen dağıtık bir ilişkisel veritabanıdır. Ancak, OceanBase verilerinin AnalyticDB for MySQL ile gerçek zamanlı senkronizasyonu şu anda yalnızca tek bir fiziksel veritabanından gelen verileri destekler. Mantıksal bir veritabanından veri senkronizasyonu desteklenmez.

Veri senkronizasyonundan önceki hazırlıklar

DataWorks'te veri senkronize etmeden önce, bu konuda açıklandığı şekilde ApsaraDB for OceanBase ortamını hazırlayın. Bu hazırlık, ApsaraDB for OceanBase veri senkronizasyon görevlerinin DataWorks'te doğru şekilde yapılandırılmasını ve çalıştırılmasını sağlar. Aşağıdaki bölümlerde gerekli hazırlıklar açıklanmaktadır.

İzin listesini yapılandırma

Serverless kaynak grubunun veya Data Integration için özel kaynak grubunun VPC CIDR bloğunu OceanBase izin listesine ekleyin. Daha fazla bilgi için bkz. İzin listesi girişleri ekleme.

Hesap oluşturma ve izinleri yapılandırma

Sonraki işlemler için bir veritabanı hesabı oluşturmanız gerekir. Bu hesabın OceanBase üzerinde gerekli izinlere sahip olması gerekir. Daha fazla bilgi için bkz. Hesap oluşturma ve izinleri yapılandırma.

Veri kaynağı ekleme

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

Veri senkronizasyon görevlerini geliştirme

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

Tek tablo toplu senkronizasyonu

Tek tablo gerçek zamanlı senkronizasyonu

Tam veritabanı gerçek zamanlı senkronizasyonu

Ek: Komut dosyası örnekleri ve parametre açıklamaları

Kod düzenleyiciyi kullanarak toplu senkronizasyon görevi yapılandırma

Kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırmak istiyorsanız, komut dosyasındaki ilgili parametreleri birleşik komut dosyası biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Komut dosyası modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.

Reader komut dosyası örneği

{ "type": "job", "steps": [ { "stepType": "apsaradb_for_OceanBase", // The plug-in name. "parameter": { "datasource": "", // The data source name. "where": "", "column": [ // The columns. "id", "name" ], "splitPk": "" }, "name": "Reader", "category": "reader" }, { "stepType": "stream", "parameter": { "print": false, "fieldDelimiter": "," }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "0" // The error count. }, "speed": { "throttle": true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled. "concurrent": 1, // The concurrency. "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s. } } }

Reader komut dosyası parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Kullandığınız DataWorks sürümü ApsaraDB for OceanBase veri kaynakları eklemeyi destekliyorsa, eklenen bir ApsaraDB for OceanBase veri kaynağına adı ile başvurabilirsiniz.

İki yapılandırma yöntemi mevcuttur: jdbcUrl ve username.

Evet

Yok

jdbcUrl

Hedef veritabanının JDBC bağlantı bilgileri. Açıklama için bir JSON dizisi kullanın. Tek bir veritabanı için birden çok bağlantı adresi belirtebilirsiniz.

Birden çok adres yapılandırılırsa, ApsaraDB for OceanBase Reader her bir IP adresinin bağlantısını sırayla kontrol eder ve geçerli bir adres bulur.

Tüm bağlantılar başarısız olursa, ApsaraDB for OceanBase Reader bir hata bildirir.

Not

jdbcUrl, connection yapılandırma birimine dahil edilmelidir.

Resmi ApsaraDB for OceanBase teknik özelliklerine göre, jdbcUrl ek bağlantı kontrol bilgilerini içerebilir. Örneğin, jdbc:oceanbase://127.0.0.1:3306/database. Bu parametreyi veya username parametresini kullanmalısınız, ancak ikisini aynı anda kullanmamalısınız.

Hayır

Yok

username

Veri kaynağının kullanıcı adı.

Hayır

Yok

password

Veri kaynağı için belirtilen kullanıcı adının parolası.

Hayır

Yok

table

Senkronize edilecek tablolar. Açıklama için bir JSON dizisi kullanın. Birden çok tablodan aynı anda veri okuyabilirsiniz.

Birden çok tablo yapılandırıldığında, tüm tabloların aynı şemaya sahip olduğundan emin olun. ApsaraDB for OceanBase Reader, tablolar arasındaki şema tutarlılığını doğrulamaz.

Not

table, connection yapılandırma birimine dahil edilmelidir.

Evet

Yok

column

Yapılandırılan tablolardan senkronize edilecek sütunlar. Sütun bilgilerini açıklamak için bir JSON dizisi kullanın. Varsayılan olarak tüm sütunlar kullanılır, örneğin [*].

  • Sütun budama desteklenir: yalnızca belirli sütunları dışa aktarabilirsiniz.

  • Sütun yeniden sıralama desteklenir: sütunları tablo şemasından farklı bir sırayla dışa aktarabilirsiniz.

  • Sabit yapılandırma desteklenir. Örneğin, '123'.

  • İşlev sütunları desteklenir. Örneğin, date('now').

  • column, senkronize edilecek sütun kümesini açıkça belirtmelidir ve boş bırakılamaz.

Evet

Yok

splitPk

ApsaraDB for OceanBase Reader verileri çıkarırken splitPk belirtirseniz, veriler splitPk tarafından belirtilen sütuna göre bölünür. Veri senkronizasyon sistemi daha sonra senkronizasyon verimliliğini artırmak için eşzamanlı görevler başlatır.

  • splitPk değerini tablonun birincil anahtarına ayarlamanızı öneririz. Birincil anahtar genellikle eşit dağıtılır; bu, parçalar arasında veri sıcak noktalarının oluşmasını önlemeye yardımcı olur.

  • Şu anda splitPk yalnızca tamsayı tipi bölmeyi destekler. Dize, kayan nokta, tarih ve diğer türler desteklenmez. Desteklenmeyen bir tür belirtirseniz, ApsaraDB for OceanBase Reader bir hata bildirir.

  • splitPk boş bırakılırsa, sistem tek bir tabloyu bölmek istemediğinizi varsayar. Bu durumda, veri çıkarma için tek bir kanal kullanılır.

Hayır

Boş

where

ApsaraDB for OceanBase Reader, belirtilen column, table ve where parametrelerine dayalı olarak bir SQL ifadesi oluşturur ve ardından oluşturulan SQL ifadesini kullanarak verileri çıkarır.

Örneğin, test sırasında where koşulunu limit 10 olarak ayarlayabilirsiniz. Gerçek iş senaryolarında, where koşulunu gmt_create>$bizdate olarak ayarlayarak genellikle o gün oluşturulan verileri senkronize edersiniz.

  • where koşulu, artımlı veri senkronizasyonu için kullanılabilir.

  • where koşulu yapılandırılmamışsa veya boş bırakılmışsa, tam tablo verileri senkronize edilir.

Hayır

Yok

querySql

Bazı iş senaryolarında, where parametresi gerekli filtre koşullarını tanımlamak için yeterli olmayabilir. Özel bir filtre SQL ifadesi tanımlamak için bu parametreyi kullanabilirsiniz. Bu parametre yapılandırıldığında, veri senkronizasyon sistemi tables, columns ve splitPk parametrelerini yoksayar ve verileri filtrelemek için yapılandırılan SQL ifadesini kullanır.

querySql yapılandırdığınızda, ApsaraDB for OceanBase Reader table, column, where ve splitPk parametrelerini yoksayar.

Hayır

Yok

fetchSize

Bu parametre, eklenti ile veritabanı sunucusu arasında her partide getirilen satır sayısını belirtir. Bu değer, veri senkronizasyon sistemi ile sunucu arasındaki ağ etkileşimlerinin sayısını belirler ve veri çıkarma performansını önemli ölçüde artırabilir.

Not

Çok büyük bir fetchSize değeri (>2048), veri senkronizasyon sürecinde bellek yetersizliği (OOM) hatasına neden olabilir.

Hayır

1.024

Writer komut dosyası örneği

{ "type":"job", "version":"2.0", // The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"apsaradb_for_OceanBase", // The plug-in name. "parameter":{ "datasource": "Data source name", "column": [ // The columns. "id", "name" ], "table": "apsaradb_for_OceanBase_table", // The table name. "preSql": [ // The SQL statements to execute before the data synchronization task runs. "delete from @table where db_id = -1" ], "postSql": [ // The SQL statements to execute after the data synchronization task runs. "update @table set db_modify_time = now() where db_id = 1" ], "obWriteMode": "insert", }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0" // The error count. }, "speed":{ "throttle":true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Writer komut dosyası parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Kullandığınız DataWorks sürümü ApsaraDB for OceanBase veri kaynakları eklemeyi destekliyorsa, eklenen bir ApsaraDB for OceanBase veri kaynağına adı ile başvurabilirsiniz.

İki yapılandırma yöntemi mevcuttur: jdbcUrl ve username.

Hayır

Yok

jdbcUrl

Hedef veritabanının JDBC bağlantı bilgileri. jdbcUrl, connection yapılandırma birimine dahildir.

  • Tek bir veritabanı için yalnızca bir değer yapılandırabilirsiniz. Aynı veritabanının birden çok birincil düğüme sahip olduğu senaryolar (çift birincil içe aktarma) desteklenmez.

  • jdbcUrl biçimi resmi ApsaraDB for OceanBase teknik özellikleriyle tutarlıdır ve ek bağlantı parametrelerini içerebilir. Örneğin, jdbc:oceanbase://127.0.0.1:3306/database.

Evet

Yok

username

Veri kaynağının kullanıcı adı.

Evet

Yok

password

Veri kaynağı için belirtilen kullanıcı adının parolası.

Evet

Yok

table

Verilerin yazıldığı tablonun adı. Açıklama için bir JSON dizisi kullanın.

Not

table, connection yapılandırma birimine dahil edilmelidir.

Evet

Yok

column

Verilerin yazıldığı hedef tablodaki sütunlar. Sütun adlarını virgülle (,) ayırın. Örneğin, "column": ["id", "name", "age"].

Not

column parametresi belirtilmelidir ve boş bırakılamaz.

Evet

Yok

obWriteMode

Hedef tabloya veri yazmak için kullanılan mod. Bu parametre isteğe bağlıdır.

  • insert: insert into ... Bir birincil anahtar veya benzersiz dizin çakışması meydana geldiğinde, çakışan satırlar yazılamaz.

  • update: ... on duplicate key update ... MySQL kiracı modunda kullanılır. Çakışma durumunda çakışan satırlar güncellenir.

  • merge: merge into ... matched then update ... Oracle kiracı modunda kullanılır. Çakışma durumunda çakışan satırlar güncellenir.

Hayır

insert

onClauseColumns

Not

Oracle kiracı modunda kullanılır. obWriteMode değeri merge olarak ayarlandığında bu parametre gereklidir. Bu parametre yapılandırılmazsa, veriler insert kullanılarak yazılır.

Bu parametreyi birincil anahtar sütunlarına veya benzersiz kısıtlama sütunlarına ayarlayın. Birden çok sütunu virgülle (,) ayırın. Örneğin, ID,C1.

Hayır

Yok

obUpdateColumns

Not

Bu parametre, obWriteMode değeri merge veya update olarak ayarlandığında etkili olur.

Yazma çakışması meydana geldiğinde güncellenecek sütunlar. Birden çok sütunu virgülle (,) ayırın. Örneğin, c2,c3.

Hayır

Tüm sütunlar

preSql

Veriler hedef tabloya yazılmadan önce yürütülecek standart SQL ifadeleri. SQL ifadelerinde tablo adına başvurmanız gerekirse, yer tutucu olarak @table kullanın. Sistem, çalışma zamanında bu değişkeni gerçek tablo adıyla değiştirir.

Hayır

Yok

postSql

Veriler hedef tabloya yazıldıktan sonra yürütülecek standart SQL ifadeleri.

Hayır

Yok

batchSize

Her partide gönderilecek kayıt sayısı. Bu değer, veri senkronizasyon sistemi ile sunucu arasındaki ağ etkileşimlerinin sayısını önemli ölçüde azaltabilir ve genel aktarım hızını artırabilir.

Not

Çok büyük bir fetchSize değeri (>2048), veri senkronizasyon sürecinde bellek yetersizliği (OOM) hatasına neden olabilir.

Hayır

1.024