MongoDB bağlayıcısı, ApsaraDB for MongoDB ve kendi kendinize yönettiğiniz MongoDB örneklerini Realtime Compute for Apache Flink içinde kaynak, boyut (dimension) ve havuz (sink) tabloları olarak entegre eder. Ekleme, güncelleme, değiştirme ve silme olaylarını gerçek zamanlı olarak yakalamak için Change Stream API kullanır.
Yetenekler
|
Kategori |
Açıklama |
|
Tablo türleri |
SQL kaynağı, arama (boyut/dimension) ve havuz (sink) Flink CDC kaynağı DataStream kaynağı |
|
Çalıştırma modu |
Akış |
|
API türleri |
DataStream API, SQL, Flink CDC |
|
Havuz yazma semantiği |
Ekleme, güncelleme ve silme (birincil anahtar bildirildiğinde) |
İzleme ölçümleri
Kaynak tablolar:
numBytesIn, numBytesInPerSecond, numRecordsIn, numRecordsInPerSecond, numRecordsInErrors, currentFetchEventTimeLag, currentEmitEventTimeLag, watermarkLag, sourceIdleTime
Boyut (dimension) ve havuz (sink) tabloları izleme ölçümü sunmaz.
Ölçüm tanımları için bkz. Metrics.
Nasıl çalışır
MongoDB bağlayıcısı verileri iki aşamada okur:
Tam anlık görüntü — hedeflenen koleksiyonlardaki tüm mevcut belgeleri paralel olarak okur.
Artımlı okuma — anlık görüntü tamamlandıktan sonra Change Stream API aracılığıyla oplog'u tüketmeye otomatik olarak geçer.
Bu işlem tam olarak bir kez (exactly-once) semantiği sağlar ve arıza kurtarma sırasında yinelenen veya eksik kayıt olmamasını garanti eder.
Temel kavramlar
Başlatma modları
İşlem hattınızın veri tüketmeye ne zaman başlaması gerektiğine göre bir başlatma modu seçin:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tam değişiklik günlüğü desteği
Varsayılan olarak MongoDB, belgelerin önceki durumunu (MongoDB 6.0 öncesi sürümler) saklamaz. Bu bilgi olmadan bağlayıcı yalnızca UPSERT olayları üretebilir; UPDATE_BEFORE kayıtları eksik olur.
Bunu aşmak için Flink SQL planlayıcısı, belge durumunu Flink'in durum arka ucunda önbelleğe alan bir ChangelogNormalize işleci ekler. İşlevsel olsa da bu yaklaşım önemli miktarda durum depolama alanı tüketir.

MongoDB 6.0 ve üzeri, ön görüntü (preimage) ve son görüntü (postimage) kaydını destekler. Etkinleştirildiğinde MongoDB, her değişiklikten önce ve sonra belgenin tam durumunu kaydeder. scan.full-changelog parametresini true olarak ayarlamak, bağlayıcının tam değişiklik günlükleri üretmek için bu kayıtları kullanmasını sağlar; bu sayede ChangelogNormalize işleci ve bunun getirdiği durum yükü ortadan kalkar.
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Kopya kümesi veya parçalı küme yapılandırmasına sahip bir ApsaraDB for MongoDB örneği ya da kopya kümesi modu etkinleştirilmiş kendi kendinize yönettiğiniz MongoDB 3.6+ kümesi. Bkz. Replication.
Kimlik doğrulama etkinse aşağıdaki izinlere sahip bir MongoDB kullanıcısı:
splitVector,listDatabases,listCollections,collStats,find,changeStreamveconfig.collectionsileconfig.chunksüzerinde okuma erişimi.Flink küme IP adreslerinin MongoDB IP izin listesine eklenmiş olması.
İşi çalıştırmadan önce hedef veritabanının ve koleksiyonun oluşturulmuş olması.
Sınırlamalar
SQL kaynağı
Paralel anlık görüntü okuma için MongoDB 4.0 veya üzeri gerekir.
scan.incremental.snapshot.enabledparametresinitrueolarak ayarlayarak etkinleştirin.admin,localveconfigveritabanları ile tüm sistem koleksiyonları izlenemez. Bu, MongoDB Change Stream kısıtlamasıdır. MongoDB belgelerindeki Change Streams bölümüne bakın.Bir SQL kaynak tablosu oluştururken
_id STRINGsütununu bildirin ve bunu birincil anahtar olarak ayarlayın.
SQL havuzu (sink)
VVR 8.0.4 ve önceki sürümler: yalnızca ekleme.
VVR 8.0.5 ve sonraki sürümlerde birincil anahtar bildirildiyse: ekleme, güncelleme ve silme.
VVR 8.0.5 ve sonraki sürümlerde birincil anahtar yoksa: yalnızca ekleme.
Tam olarak bir kez (exactly-once) teslimat desteklenmez.
sink.delivery-guaranteeseçeneğinoneveyaat-least-oncedeğerlerini kabul eder.
SQL arama (boyut/dimension)
VVR 8.0.5 ve sonraki sürümlerde desteklenir.
VVR 8.0.9 ve sonraki sürümler: Arama birleştirmeleri (lookup joins), ObjectId türündeki yerleşik
_idalanının okunmasını destekler.
SQL
Söz dizimi
CREATE TABLE tableName(
_id STRING,
[columnName dataType,]*
PRIMARY KEY(_id) NOT ENFORCED
) WITH (
'connector' = 'mongodb',
'hosts' = 'localhost:27017',
'username' = 'mongouser',
'password' = '${secret_values.password}',
'database' = 'testdb',
'collection' = 'testcoll'
)
Bir CDC kaynak tablosu oluştururken _id STRING sütununu bildirin ve bunu birincil anahtar olarak belirtin.
Bağlayıcı seçenekleri
Genel
|
Seçenek |
Tür |
Zorunlu |
Varsayılan |
Açıklama |
|
|
String |
Evet |
— |
Bağlayıcı tanımlayıcısı. Kaynak tablolar: |
|
|
String |
Hayır |
— |
MongoDB bağlantı URI'si. Ya |
|
|
String |
Hayır |
— |
MongoDB sunucusunun ana makine adı. Birden fazla ana makineyi virgülle ( |
|
|
String |
Hayır |
|
Bağlantı protokolü. Geçerli değerler: |
|
|
String |
Hayır |
— |
MongoDB kullanıcı adı. Kimlik doğrulama etkin olduğunda gereklidir. |
|
|
String |
Hayır |
— |
MongoDB parolası. Kimlik doğrulama etkin olduğunda gereklidir. Kimlik bilgilerini sabit kodlamak yerine değişkenler kullanın. |
|
|
String |
Hayır |
— |
MongoDB veritabanı adı. Kaynak tablolar için düzenli ifadeleri destekler. Ayarlanmazsa tüm veritabanları izlenir. |
|
|
String |
Hayır |
— |
MongoDB koleksiyon adı. Kaynak tablolar için düzenli ifadeleri destekler. Notlar:
|
|
|
String |
Hayır |
— |
Varsayılan olarak bağlayıcı soket bağlantı zaman aşımı ayarlamaz; bu durum ağ dalgalanmaları sırasında uzun kesintilere neden olabilir. Bunu önlemek için |
Kaynak
|
Seçenek |
Tür |
Zorunlu |
Varsayılan |
Açıklama |
|
|
String |
Hayır |
|
Başlatma modu. Geçerli değerler: |
|
|
Long |
Koşullu |
— |
UNIX epoch'tan itibaren milisaniye cinsinden başlangıç zaman damgası. |
|
|
Integer |
Hayır |
|
İlk anlık görüntü aşamasındaki maksimum kuyruk boyutu. Yalnızca |
|
|
Integer |
Hayır |
|
İmleç toplu iş boyutu. |
|
|
Integer |
Hayır |
|
Akış okuma sırasında toplu iş başına çekilen maksimum değişiklik belgesi sayısı. Daha büyük değerler daha büyük bir dahili arabellek ayırır. |
|
|
Integer |
Hayır |
|
Veri çekme istekleri arasındaki aralık (milisaniye). |
|
|
Integer |
Hayır |
|
Milisaniye cinsinden kalp atışı aralığı. Bağlayıcı, en son oplog konumunu izlemek için kalp atışı gönderir. Bu parametreyi |
|
|
Boolean |
Hayır |
|
Paralel anlık görüntü okumayı etkinleştirir. Deneysel özelliktir. MongoDB 4.0 veya üzeri gerekir. |
|
|
Integer |
Hayır |
|
Paralel anlık görüntü okuma için parça boyutu (MB). Deneysel özelliktir. Yalnızca paralel anlık görüntü okuma etkinleştirildiğinde etkili olur. |
|
|
Boolean |
Hayır |
|
MongoDB ön görüntü (preimage) ve son görüntü (postimage) kayıtlarını kullanarak tam değişiklik günlüğü akışı oluşturur. Deneysel özelliktir. Ön görüntü ve son görüntü özellikleri etkinleştirilmiş MongoDB 6.0 veya üzeri gerekir. |
|
|
Boolean |
Hayır |
|
|
|
|
Boolean |
Hayır |
|
Tüm ilkel BSON türlerini STRING olarak ayrıştırır. VVR 8.0.5 ve sonraki sürümlerde desteklenir. |
|
|
Boolean |
Hayır |
|
MongoDB veri arşivleme sırasında oluşanlar dahil olmak üzere tüm DELETE (-D) olaylarını yoksayar. VVR 11.1 ve sonraki sürümlerde desteklenir. |
|
|
Boolean |
Hayır |
|
Geçerli değerler:
Geri doldurma yalnızca tek bir parçanın anlık görüntü sorgusu sırasında uygulanır ve tüm tam okuma fazını kapsamaz. Geri doldurma atlandığında, her parçanın anlık görüntü sorgusu o andaki en son verileri okur; bir parça okunduktan sonra o parçada gerçekleşen güncellemeler tam okuma fazı sırasında birleştirilmez ve artımlı faza geçildikten sonra OpLog'dan okunur. Örneğin, chunk5 anlık görüntülenirken chunk5 üzerinde yapılan bir güncelleme doğrudan chunk5'in anlık görüntüsünde yansıtılır; ancak okuyucu chunk80'e ilerledikten sonra chunk5 güncellenirse bu güncelleme artımlı faz sırasında OpLog'dan daha sonra uygulanır. Önemli
Etkinleştirildiğinde, bir parçanın taraması sırasında veya sonrasında gerçekleşen değişiklikler artımlı fazda OpLog'dan yine de iletilir ve yinelenebilir. Yalnızca en az bir kez (at-least-once) semantiği garanti edilir. Bu seçeneği yalnızca aşağı akış havuzu birincil anahtara göre idempotent yazmaları destekliyorsa etkinleştirin. Not
Yalnızca VVR 11.1 ve sonraki sürümlerde desteklenir. |
|
|
String |
Hayır |
— |
Anlık görüntü okuma sırasında verileri filtrelemek için uygulanan MongoDB toplama işlem hattı (aggregation pipeline) işlemleri. JSON dizisi olarak belirtin, örneğin: |
|
|
Integer |
Hayır |
— |
Anlık görüntü çoğaltma için kullanılan iş parçacığı sayısı. Yalnızca |
|
|
Integer |
Hayır |
|
İlk anlık görüntü için kuyruk boyutu. Yalnızca |
|
|
Integer |
Hayır |
|
Change Stream için eşzamanlı okuyucu sayısı. Yalnızca |
|
|
Integer |
Hayır |
|
Eşzamanlı değişiklik akışı abonelikleri için ileti kuyruğu boyutu. Yalnızca |
Arama (boyut/dimension)
|
Seçenek |
Tür |
Zorunlu |
Varsayılan |
Açıklama |
|
|
String |
Hayır |
|
Önbellek ilkesi. Geçerli değerler: |
|
|
Integer |
Hayır |
|
Arama başarısız olduğunda maksimum yeniden deneme sayısı. |
|
|
Duration |
Hayır |
|
Arama başarısız olduğunda yeniden denemeler arasındaki aralık. |
|
|
Duration |
Hayır |
— |
Son erişimden sonra önbelleğe alınmış bir girdinin yaşayabileceği maksimum süre. Desteklenen birimler: |
|
|
Duration |
Hayır |
— |
Yazıldıktan sonra önbelleğe alınmış bir girdinin yaşayabileceği maksimum süre. |
|
|
Long |
Hayır |
— |
Önbellekteki maksimum satır sayısı. Limit aşıldığında en eski girdiler temizlenir. |
|
|
Boolean |
Hayır |
|
Bir arama anahtarının eşleşen bir kaydı olmadığında null girdisini önbelleğe alır. |
|
String |
Hayır |
|
Flink dize değerleri MongoDB boyut tablosuyla eşleştirilirken kullanılan dönüştürme stratejisi. Geçerli değerler:
Not Bu parametre yalnızca VVR 11.9 ve sonraki sürümlerde desteklenir. |
Havuz (sink)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Veri türü eşlemeleri
Kaynak
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arama (boyut/dimension) ve havuz (sink)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Meta veri sütunları
SQL kaynağı aşağıdaki meta veri sütunlarını destekler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Örnekler
Kaynak
Aşağıdaki örnekte, paralel anlık görüntü okuma ve tam değişiklik günlüğü etkinleştirilmiş bir MongoDB kaynak tablosundan veri okunur ve seçilen alanlar bir print havuzuna yazılır.
-- CDC source table: reads product data from MongoDB
-- _id must be declared and set as the primary key
CREATE TEMPORARY TABLE mongo_source (
`_id` STRING,
name STRING,
weight DECIMAL,
tags ARRAY<STRING>,
price ROW<amount DECIMAL, currency STRING>,
suppliers ARRAY<ROW<name STRING, address STRING>>,
db_name STRING METADATA FROM 'database_name' VIRTUAL,
collection_name STRING METADATA VIRTUAL,
op_ts TIMESTAMP_LTZ(3) METADATA VIRTUAL,
PRIMARY KEY(_id) NOT ENFORCED
) WITH (
'connector' = 'mongodb',
'hosts' = 'dds-bp169b982fc25****.mongodb.rds.aliyuncs.com:3717,dds-bp169b982fc25****.mongodb.rds.aliyuncs.com:3717,',
'username' = 'root',
'password' = '${secret_values.password}',
'database' = 'flinktest',
'collection' = 'flinkcollection',
'scan.incremental.snapshot.enabled' = 'true', -- Enable parallel snapshot reading (requires MongoDB 4.0+)
'scan.full-changelog' = 'true' -- Enable full changelog (requires MongoDB 6.0+ with preimage/postimage)
);
CREATE TEMPORARY TABLE productssink (
name STRING,
weight DECIMAL,
tags ARRAY<STRING>,
price_amount DECIMAL,
suppliers_name STRING,
db_name STRING,
collection_name STRING,
op_ts TIMESTAMP_LTZ(3)
) WITH (
'connector' = 'print',
'logger' = 'true'
);
INSERT INTO productssink
SELECT
name,
weight,
tags,
price.amount,
suppliers[1].name,
db_name,
collection_name,
op_ts
FROM mongo_source;
Arama (boyut/dimension)
Aşağıdaki örnekte, bir veri oluşturucu akışı zamansal birleştirme (temporal join) kullanılarak bir MongoDB boyut tablosuyla birleştirilir.
CREATE TEMPORARY TABLE datagen_source (
id STRING,
a INT,
b BIGINT,
`proctime` AS PROCTIME()
) WITH (
'connector' = 'datagen'
);
CREATE TEMPORARY TABLE mongo_dim (
`_id` STRING,
name STRING,
weight DECIMAL,
tags ARRAY<STRING>,
price ROW<amount DECIMAL, currency STRING>,
suppliers ARRAY<ROW<name STRING, address STRING>>,
PRIMARY KEY(_id) NOT ENFORCED
) WITH (
'connector' = 'mongodb',
'hosts' = 'dds-bp169b982fc25****.mongodb.rds.aliyuncs.com:3717,dds-bp169b982fc25****.mongodb.rds.aliyuncs.com:3717,',
'username' = 'root',
'password' = '${secret_values.password}',
'database' = 'flinktest',
'collection' = 'flinkcollection',
'lookup.cache' = 'PARTIAL', -- Cache lookup results for better performance
'lookup.partial-cache.expire-after-access' = '10min', -- Evict cached entries after 10 minutes of inactivity
'lookup.partial-cache.expire-after-write' = '10min', -- Evict cached entries 10 minutes after write
'lookup.partial-cache.max-rows' = '100' -- Maximum 100 rows in the cache
);
CREATE TEMPORARY TABLE print_sink (
name STRING,
weight DECIMAL,
tags ARRAY<STRING>,
price_amount DECIMAL,
suppliers_name STRING
) WITH (
'connector' = 'print',
'logger' = 'true'
);
INSERT INTO print_sink
SELECT
T.id,
T.a,
T.b,
H.name
FROM datagen_source AS T
JOIN mongo_dim FOR SYSTEM_TIME AS OF T.`proctime` AS H ON T.id = H._id;
Havuz (sink)
Aşağıdaki örnekte, bir veri oluşturucudan gelen veriler bir MongoDB havuz tablosuna yazılır. Ekleme, güncelleme ve silme işlemlerini desteklemek için birincil anahtar bildirilmiştir.
CREATE TEMPORARY TABLE datagen_source (
`_id` STRING,
name STRING,
weight DECIMAL,
tags ARRAY<STRING>,
price ROW<amount DECIMAL, currency STRING>,
suppliers ARRAY<ROW<name STRING, address STRING>>
) WITH (
'connector' = 'datagen'
);
CREATE TEMPORARY TABLE mongo_sink (
`_id` STRING,
name STRING,
weight DECIMAL,
tags ARRAY<STRING>,
price ROW<amount DECIMAL, currency STRING>,
suppliers ARRAY<ROW<name STRING, address STRING>>,
PRIMARY KEY(_id) NOT ENFORCED -- Declare primary key to enable update and delete
) WITH (
'connector' = 'mongodb',
'hosts' = 'dds-bp169b982fc25****.mongodb.rds.aliyuncs.com:3717,dds-bp169b982fc25****.mongodb.rds.aliyuncs.com:3717,',
'username' = 'root',
'password' = '${secret_values.password}',
'database' = 'flinktest',
'collection' = 'flinkcollection'
);
INSERT INTO mongo_sink SELECT * FROM datagen_source;
Flink CDC (genel ön izleme)
Flink CDC, SQL DDL yazmadan YAML betiği tabanlı bir işlem hattı kullanarak MongoDB verilerini aşağı akıştaki bir depoya senkronize etmenizi sağlar. Bu özellik VVR 11.1 ve sonraki sürümleri gerektirir.
Söz dizimi
source:
type: mongodb
name: MongoDB Source
hosts: localhost:33076
username: ${mongo.username}
password: ${mongo.password}
database: foo_db
collection: foo_col_.*
sink:
type: ...
Yapılandırma seçenekleri
|
Seçenek |
Zorunlu |
Tür |
Varsayılan |
Açıklama |
|
|
Evet |
STRING |
— |
Bağlayıcı. |
|
|
Hayır |
STRING |
|
Bağlantı protokolü. Geçerli değerler: |
|
|
Evet |
STRING |
— |
MongoDB sunucu ana makine adı(ları). Birden fazla ana makineyi virgülle ayırın. |
|
|
Hayır |
STRING |
— |
MongoDB kullanıcı adı. |
|
|
Hayır |
STRING |
— |
MongoDB parolası. |
|
|
Evet |
STRING |
— |
Yakalanacak MongoDB veritabanı adı. Düzenli ifadeler desteklenir. |
|
|
Evet |
STRING |
— |
Yakalanacak MongoDB koleksiyon adı. Düzenli ifadeler desteklenir. Tam nitelikli |
|
|
Hayır |
STRING |
— |
|
|
|
Hayır |
STRING |
|
Şema çıkarım stratejisi. |
|
|
Hayır |
INT |
|
İlk şema çıkarımı sırasında koleksiyon başına örneklenen maksimum kayıt sayısı. |
|
|
Hayır |
STRING |
|
Başlatma modu. Geçerli değerler: |
|
|
Hayır |
LONG |
— |
Milisaniye cinsinden başlangıç zaman damgası. |
|
|
Hayır |
INT |
|
Maksimum meta veri parçası boyutu. |
|
|
Hayır |
BOOLEAN |
|
Artımlı okumaya geçtikten sonra boşta kalan kaynak okuyucuları kapatır. |
|
|
Hayır |
BOOLEAN |
|
Geçerli değerler:
Geri doldurma yalnızca tek bir parçanın anlık görüntü sorgusu sırasında uygulanır ve tüm tam okuma fazını kapsamaz. Geri doldurma atlandığında, her parçanın anlık görüntü sorgusu o andaki en son verileri okur; bir parça okunduktan sonra o parçada gerçekleşen güncellemeler tam okuma fazı sırasında birleştirilmez ve artımlı faza geçildikten sonra OpLog'dan okunur. Örneğin, chunk5 anlık görüntülenirken chunk5 üzerinde yapılan bir güncelleme doğrudan chunk5'in anlık görüntüsünde yansıtılır; ancak okuyucu chunk80'e ilerledikten sonra chunk5 güncellenirse bu güncelleme artımlı faz sırasında OpLog'dan daha sonra uygulanır. Önemli
Etkinleştirildiğinde, bir parçanın taraması sırasında veya sonrasında gerçekleşen değişiklikler artımlı fazda OpLog'dan yine de iletilir ve yinelenebilir. Yalnızca en az bir kez (at-least-once) semantiği garanti edilir. Bu seçeneği yalnızca aşağı akış havuzu birincil anahtara göre idempotent yazmaları destekliyorsa etkinleştirin. |
|
|
Hayır |
BOOLEAN |
|
Sınırsız parçaları önce okur. Sık güncellenen koleksiyonlar için bellek yetersizliği riskini azaltır. |
|
|
Hayır |
INT |
|
İmleç toplu iş boyutu. |
|
|
Hayır |
INT |
|
Change Stream çekme isteği başına maksimum girdi sayısı. |
|
|
Hayır |
INT |
|
Change Stream çekme istekleri arasındaki minimum bekleme süresi (milisaniye). |
|
|
Hayır |
INT |
|
Milisaniye cinsinden kalp atışı aralığı. Nadiren güncellenen koleksiyonlar için ayarlayın. |
|
|
Hayır |
INT |
|
Anlık görüntü alma sırasında parça boyutu (MB). |
|
|
Hayır |
INT |
|
Anlık görüntü alma sırasında koleksiyon boyutunu tahmin etmek için kullanılan örnek sayısı. |
|
|
Hayır |
BOOLEAN |
|
Ön görüntü (preimage) ve son görüntü (postimage) kayıtlarını kullanarak tam değişiklik günlüğü olayları oluşturur. Ön görüntü ve son görüntü özellikleri etkinleştirilmiş MongoDB 6.0 veya üzeri gerekir. |
|
|
Hayır |
BOOLEAN |
|
İmleç zaman aşımını devre dışı bırakır. Varsayılan olarak MongoDB, 10 dakika boyunca boşta kalan imleçleri kapatır. |
|
|
Hayır |
BOOLEAN |
|
MongoDB'den gelen silme olaylarını yoksayar. |
|
|
Hayır |
BOOLEAN |
|
İç içe geçmiş BSON belgelerini düzleştirir. Örneğin, |
|
|
Hayır |
BOOLEAN |
|
Tüm ilkel türleri STRING olarak çıkarır. Yukarı akış türleri tutarsız olduğunda şema değişikliği olaylarını azaltır. |
|
|
Hayır |
STRING |
— |
Aşağı akışa iletilecek meta veri alanlarının virgülle ayrılmış listesi. Desteklenen değerler: |
Veri türü eşlemeleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Meta veri sütunları
Flink CDC, MongoDB bağlayıcısı için aşağıdaki meta veri sütununu destekler:
|
|
|
|
|
|
|
|
database_name, collection_name ve row_kind alanlarına erişmek için Transform modülünün genel meta veri sütunlarını kullanın.
DataStream API
DataStream API'yi kullanmak için işiniz için DataStream bağlayıcısını kurun. Bkz. DataStream connector usage.
Maven bağımlılığını ekleyin
Maven Central Repository, VVR MongoDB connectors barındırır.
<dependency>
<groupId>com.alibaba.ververica</groupId>
<artifactId>flink-connector-mongodb</artifactId>
<version>${vvr.version}</version>
</dependency>
MongoDBSource oluşturun
Bir kaynak oluşturmak için MongoDBSource.builder() kullanın:
Artımlı anlık görüntü okumayı etkinleştirmek için
com.ververica.cdc.connectors.mongodb.sourcepaketindeki oluşturucuyu kullanın.Aksi takdirde
com.ververica.cdc.connectors.mongodbpaketindeki oluşturucuyu kullanın.
MongoDBSource.builder()
.hosts("mongo.example.com:27017")
.username("mongouser")
.password("mongopasswd")
.databaseList("testdb") // Supports regular expressions; use .* to match all databases
.collectionList("testcoll") // Supports regular expressions; use .* to match all collections
.startupOptions(StartupOptions.initial()) // StartupOptions.latest-offset(), StartupOptions.timestamp()
.deserializer(new JsonDebeziumDeserializationSchema())
.build();
MongoDBSource parametreleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Referanslar
Flink CDC (public preview) — MongoDB verilerini ve şema değişikliklerini aşağı akış tablolarına senkronize edin (VVR 11.1 ve sonraki sürümler).
Metrics — Kaynak tablo performansını izleyin.