Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:Develop a Flink CDC data ingestion job

Son Güncelleme:Oct 04, 2026

Realtime Compute for Apache Flink, verileri bir kaynaktan hedefe senkronize etmek için YAML dosyası kullanarak Flink CDC veri alımı işleri oluşturmanıza olanak tanır. Bu konu, Flink CDC veri alımı işi geliştirmenin adımlarını açıklar.

Arka Plan

YAML yapılandırmaları kullanarak, otomatik olarak Flink yürütme mantığına dönüştürülen karmaşık ETL işlem hatlarını kolayca tanımlayabilirsiniz. Flink CDC veri alımı, Flink CDC tabanlı güçlü bir veri entegrasyonu çözümü sunar. Bu çözüm; tüm veritabanı senkronizasyonunu, tek tablo senkronizasyonunu, bölümlenmiş veritabanları ve tabloların senkronizasyonunu, yeni tabloların otomatik keşfini, şema değişikliği işlemeyi ve özel hesaplanan sütunları verimli bir şekilde destekler. Ayrıca ETL işlemeyi, WHERE yan tümcesi filtrelemeyi ve sütun budamayı destekler. Bu bildirim temelli yaklaşım, veri entegrasyonu sürecini önemli ölçüde basitleştirir; verimlilik ve güvenilirliği artırır.

Flink CDC'nin Avantajları

Realtime Compute for Apache Flink'te veri senkronizasyonu yapmak için Flink CDC veri alımı işi, SQL işi veya DataStream işi geliştirebilirsiniz. Aşağıdaki bölümlerde, diğer iki seçeneğe kıyasla Flink CDC veri alımı işi kullanmanın avantajları açıklanmaktadır.

Flink CDC ile Flink SQL Karşılaştırması

Flink CDC veri alımı işleri ve SQL işleri, veri aktarımı için farklı veri türleri kullanır:

  • SQL işleri verileri RowData olarak iletir. Her RowData nesnesinin kendi değişiklik türü vardır; bu türler ekleme (+I), güncelleme öncesi (-U), güncelleme sonrası (+U) ve silme (-D) olmak üzere dört ana kategoriden oluşur.

  • Flink CDC, tablo oluşturma, sütun ekleme veya tabloyu boşaltma gibi şema değişikliği bilgilerini iletmek için SchemaChangeEvent kullanır. Ekleme, güncelleme ve silme gibi veri değişikliklerini iletmek için ise DataChangeEvent kullanır. Bir güncelleme mesajı hem önceki hem de sonraki içeriği içerdiğinden orijinal değişiklik verisini hedefe yazabilirsiniz.

Aşağıdaki tabloda, SQL işlerine kıyasla Flink CDC veri alımı işlerinin avantajları listelenmiştir.


Flink CDC alımı


Flink SQL


Otomatik şema algılama ve tam veritabanı senkronizasyonu


Manuel CREATE TABLE ve INSERT ifadeleri gerektirir


Şema değişiklikleri için birden fazla ilkeyi destekler


Şema değişikliklerini desteklemez


Orijinal değişiklik günlüğünü korur


Orijinal değişiklik günlüğü yapısını bozar


Birden çok tablodan okuma ve yazmayı destekler


Tek bir tablodan okur ve yazar

CTAS/CDAS ifadelerine kıyasla Flink CDC işleri aşağıdakiler dahil daha güçlü özellikler sunar:

  • Yukarı akış şema değişikliklerini anında senkronize eder; senkronizasyonun tetiklenmesi için yeni veri yazılmalarını beklemeye gerek kalmaz.

  • Orijinal değişiklik günlüğünü korur; böylece güncelleme mesajları bölünmez.

  • TRUNCATE TABLE ve DROP TABLE gibi daha fazla şema değişikliği türünü senkronize eder.

  • Esnek tablo eşleme ve hedef tablo adlarının tanımlanmasını sağlar.

  • Esnek ve yapılandırılabilir şema evrimi davranışları sunar.

  • WHERE yan tümceleri kullanarak veri filtrelemeyi destekler.

  • Sütun budamayı destekler.

Flink CDC ile Flink DataStream Karşılaştırması

Aşağıdaki tabloda, DataStream işlerine kıyasla Flink CDC veri alımı işlerinin avantajları listelenmiştir.


Flink CDC alımı


Flink DataStream


Tüm beceri seviyelerindeki kullanıcılar tarafından kullanılabilir.


Java ve dağıtık sistemler konusunda uzmanlık gerektirir.


Altta yatan karmaşıklığı gizler ve geliştirmeyi basitleştirir.


Flink framework'ü hakkında bilgi gerektirir.


Öğrenilmesi kolay YAML formatı.


Bağımlılık yönetimi için Maven gibi araçlar hakkında bilgi gerektirir.


Mevcut işler için yüksek yeniden kullanılabilirlik.


Mevcut kodun yeniden kullanılması zordur.

Sınırlamalar

  • Flink CDC veri alımı işlerini geliştirmek için Ververica Runtime (VVR) 11,1 veya sonraki bir sürümü kullanın. VVR 8.x kullanmanız gerekiyorsa VVR 8.0.11 sürümünü kullanın.

  • Her iş yalnızca bir kaynak ve bir hedefi destekler. Birden çok kaynaktan okumak veya birden çok hedefe yazmak için birden çok Flink CDC işi oluşturmanız gerekir.

  • Flink CDC işleri bir oturum kümesine dağıtılamaz.

  • Flink CDC veri alımı işleri otomatik ayarlamayı desteklemez.

Flink CDC veri alımı bağlayıcıları

Flink CDC veri alımı için desteklenen kaynak ve hedef bağlayıcılarla ilgili ayrıntılar için bkz. Desteklenen bağlayıcılar.

Flink CDC veri alımı işi oluşturma

Şablondan

  1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

  2. Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.

  3. Sol gezinme bölmesinde Development > Data Ingestion seçeneğini belirleyin.

  4. image simgesini tıklayın ve ardından New Draft with Template öğesini tıklayın.

  5. Bir veri senkronizasyon şablonu seçin.

    Şu anda yalnızca MySQL to StarRocks, MySQL to Paimon ve MySQL to Hologres şablonları kullanılabilir durumdadır.

  6. OK gibi iş bilgilerini, location bilgisini ve engine version bilgisini girin ve ardından OK düğmesini tıklayın.

  7. Flink CDC işi için kaynak ve hedef bilgilerini yapılandırın.

    Parametre yapılandırma ayrıntıları için ilgili bağlayıcılara ilişkin belgelere bakın.

CTAS/CDAS işinden

Önemli
  • Bir iş birden çok CXAS ifadesi içeriyorsa Flink yalnızca ilk ifadeyi algılar ve dönüştürür.

  • Flink SQL ve Flink CDC arasındaki yerleşik işlev desteği farklarından dolayı oluşturulan transform kuralları olduğu gibi çalışmayabilir. Bunları gözden geçirmeniz ve gerektiğinde ayarlamanız gerekir.

  • Kaynak MySQL ise ve orijinal bir CTAS/CDAS işi hala çalışıyorsa çakışmaları önlemek için Flink CDC veri alımı işindeki kaynak server-id değerini ayarlamanız gerekir.

  1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

  2. Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.

  3. Sol gezinme bölmesinde Development > Data Ingestion seçeneğini belirleyin.

  4. image simgesini tıklayın ve ardından New Draft from CTAS/CDAS seçeneğini belirleyin. Hedef CTAS veya CDAS işini seçin ve ardından OK düğmesini tıklayın.

    Seçim sayfasında sistem yalnızca geçerli CTAS ve CDAS işlerini görüntüler. Normal ETL işleri ve sözdizimi hataları içeren taslaklar görüntülenmez.

  5. OK gibi iş bilgilerini, location bilgisini ve engine version bilgisini girin ve ardından OK düğmesini tıklayın.

Açık kaynaklı Flink CDC'den

  1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

  2. Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.

  3. Sol gezinme bölmesinde Development > Data Ingestion seçeneğini belirleyin.

  4. image simgesini tıklayın ve ardından New Draft seçeneğini belirleyin. name ve engine version bilgilerini girin ve ardından Create düğmesini tıklayın.

  5. Açık kaynaklı Flink CDC işinizden alınan YAML kodunu düzenleyiciye yapıştırın.

  6. (İsteğe bağlı) Validate düğmesini tıklayın.

    Bu seçenek sözdizimi hatalarını, ağ bağlantısı sorunlarını ve izin sorunlarını denetler.

Sıfırdan

  1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

  2. Hedef çalışma alanının Actions sütununda Console öğesini tıklayın.

  3. Sol gezinme bölmesinde Development > Data Ingestion seçeneğini belirleyin.

  4. image simgesini tıklayın ve ardından New Draft seçeneğini belirleyin. name ve engine version bilgilerini girin ve ardından Create düğmesini tıklayın.

  5. Flink CDC işini YAML kullanarak yapılandırın. Örnek:

    # Required
    source:
      # The type of the data source.
      type: <Replace with your source connector type>
      # The configuration for the data source. For details about configuration items, see the documentation for the corresponding connector.
      ...
    # Required
    sink:
      # The type of the sink.
      type: <Replace with your sink connector type>
      # The configuration for the sink. For details about configuration items, see the documentation for the corresponding connector.
      ...
    # Optional
    transform:
      # A transform rule for the flink_test.customers table.
      - source-table: flink_test.customers
        # Projection configuration. Specifies the columns to synchronize and performs data transformations.
        projection: id, username, UPPER(username) as username1, age, (age + 1) as age1, test_col1, __schema_name__ || '.' || __table_name__ identifier_name
        # Filter condition. Synchronizes only data where id is greater than 10.
        filter: id > 10
        # Description of the transform rule.
        description: append calculated columns based on source table
    # Optional
    route:
      # A route rule that specifies the mapping between the source table and the sink table.
      - source-table: flink_test.customers
        sink-table: db.customers_o
        # Description of the route rule.
        description: sync customers table
      - source-table: flink_test.customers_suffix
        sink-table: db.customers_s
        # Description of the route rule.
        description: sync customers_suffix table
    # Optional
    pipeline:
      # The name of the job.
      name: MySQL to Hologres Pipeline
    Not

    Bir Flink CDC işinde bir anahtarı ve değerini iki nokta üst üste ve bir boşlukla ayırın. Format Key: Value şeklindedir.

    Aşağıdaki tabloda kod blokları açıklanmaktadır.

    Gerekli

    Modül

    Açıklama

    Evet

    source

    Veri işlem hattının başlangıç noktası. Flink CDC, kaynaktaki değişiklik verilerini yakalar.

    Not
    • Şu anda desteklenen tek kaynak MySQL'dir. Belirli yapılandırma ayrıntıları için bkz. MySQL bağlayıcısı.

    • Hassas bilgileri yönetmek için değişkenleri kullanabilirsiniz. Daha fazla bilgi için bkz. Değişken Yönetimi.

    sink

    Veri işlem hattının bitiş noktası. Flink CDC, yakalanan veri değişikliklerini hedef sisteme iletir.

    Not

    Hayır

    pipeline

    (veri işlem hattı)

    İşlem hattı adı gibi tüm veri işlem hattı işi için temel yapılandırmaları tanımlar.

    transform

    Flink işlem hattından akarken veriler üzerinde işlem yapmak için veri dönüşüm kurallarını belirtir. ETL işlemeyi, WHERE yan tümcesi filtrelemeyi, sütun budamayı ve hesaplanan sütunları destekler.

    Flink CDC tarafından yakalanan ham değişiklik verilerini belirli aşağı akış sistemlerine uygun hale getirmek için dönüşüm uygulamanız gerekiyorsa transform bloğunu kullanın.

    route

    Bu modül yapılandırılmazsa iş varsayılan olarak tam veritabanı veya hedef tablo senkronizasyonu gerçekleştirir.

    Bazı durumlarda yakalanan değişiklik verilerini belirli kurallara göre farklı hedeflere göndermeniz gerekebilir. route modülü, kaynak ve hedef arasındaki eşleme ilişkisini esnek bir şekilde belirtmenize ve verileri farklı hedeflere göndermenize olanak tanır.

    Her modülün sözdizimi ve yapılandırması hakkında daha fazla bilgi için bkz. Flink CDC veri alımı işleri için başvuru.

    Aşağıdaki kod, MySQL'deki app_db veritabanındaki tüm tabloların Hologres'teki bir veritabanına senkronize edilmesine ilişkin bir örnek sağlar.

    source:
      type: mysql
      hostname: <hostname>
      port: 3306
      username: ${secret_values.mysqlusername}
      password: ${secret_values.mysqlpassword}
      tables: app_db.\.*
      server-id: 5400-5404
      # (Optional) Synchronize data from tables newly created in the incremental phase.
      scan.binlog.newly-added-table.enabled: true
      # (Optional) Synchronize table and field comments.
      include-comments.enabled: true
      # (Optional) Prioritize dispatching unbounded chunks to prevent potential TaskManager OutOfMemory issues.
      scan.incremental.snapshot.unbounded-chunk-first.enabled: true
      # (Optional) Enable parsing filters to accelerate reading.
      scan.only.deserialize.captured.tables.changelog.enabled: true
    sink:
      type: hologres
      name: Hologres Sink
      endpoint: <endpoint>
      dbname: <database-name>
      username: ${secret_values.holousername}
      password: ${secret_values.holopassword}
    pipeline:
      name: Sync MySQL Database to Hologres
  6. (İsteğe bağlı) Validate düğmesini tıklayın.

    Bu seçenek sözdizimi hatalarını, ağ bağlantısı sorunlarını ve izin sorunlarını denetler.

İlgili konular