/flink-cdc

Flink CDC is a streaming data integration tool

Primary LanguageJavaApache License 2.0Apache-2.0

Flink CDC

Test Release Build License

Flink CDC is a distributed data integration tool for real time data and batch data. Flink CDC brings the simplicity and elegance of data integration via YAML to describe the data movement and transformation in a Data Pipeline.

The Flink CDC prioritizes efficient end-to-end data integration and offers enhanced functionalities such as full database synchronization, sharding table synchronization, schema evolution and data transformation.

Flink CDC framework desigin

Getting Started

  1. Prepare a Apache Flink cluster and set up FLINK_HOME environment variable.
  2. Download Flink CDC tar, unzip it and put jars of pipeline connector to Flink lib directory.
  3. Create a YAML file to describe the data source and data sink, the following example synchronizes all tables under MySQL app_db database to Doris :
  source:
     type: mysql
     name: MySQL Source
     hostname: 127.0.0.1
     port: 3306
     username: admin
     password: pass
     tables: adb.\.*
     server-id: 5401-5404
  
  sink:
    type: doris
    name: Doris Sink
    fenodes: 127.0.0.1:8030
    username: root
    password: pass
    
  transform:
  - source-table: adb.web_order01
    projection: \*, UPPER(product_name) as product_name
    filter: id > 10 AND order_id > 100
    description: project fields and filter
  - source-table: adb.web_order02
    projection: \*, UPPER(product_name) as product_name
    filter: id > 20 AND order_id > 200
    description: project fields and filter  

  route:
  - source-table: adb.web_order\.*
    sink-table: adb.ods_web_orders
    description: sync sharding tables to one destination table
  
  pipeline:
     name: MySQL to Doris Pipeline
     parallelism: 4
  1. Submit pipeline job using flink-cdc.sh script.
 bash bin/flink-cdc.sh /path/mysql-to-doris.yaml
  1. View job execution status through Flink WebUI or downstream database.

Try it out yourself with our more detailed tutorial. You can also see connector overview to view a comprehensive catalog of the connectors currently provided and understand more detailed configurations.

Join the Community

There are many ways to participate in the Apache Flink CDC community. The mailing lists are the primary place where all Flink committers are present. For user support and questions use the user mailing list. If you've found a problem of Flink CDC, please create a Flink jira and tag it with the Flink CDC tag.
Bugs and feature requests can either be discussed on the dev mailing list or on Jira.

Contributing

Welcome to contribute to Flink CDC, please see our Developer Guide and APIs Guide.

License

Apache 2.0 License.

Special Thanks

The Flink CDC community welcomes everyone who is willing to contribute, whether it's through submitting bug reports, enhancing the documentation, or submitting code contributions for bug fixes, test additions, or new feature development.
Thanks to all contributors for their enthusiastic contributions.