开发者社区> 问答> 正文

flink cdc实时同步

已解决

系统:centos 7.9
flink版本:flink-1.16.2
java版本:11.0.17.1
flink cdc版本:2.4.1

如果使用flink sql去同步一张表,是不是需要建立两张虚表,一张虚表通过connector-cdc获取source的数据变更,另一张虚表通过connector-jdbc写入sink。网上的教程一般都是一张虚表,这样不是缺少了一个数据库连接。。所以来请教各位大佬。

展开
收起
chenfeng_datawarehouse 2023-09-04 10:06:47 116 1
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。
    采纳回答

    在使用 Flink CDC 进行实时同步时,你可以通过建立两张虚拟表来实现数据变更的获取和写入 Sink。这样做的好处是能够将 CDC 和 JDBC 的连接隔离开来,提高了系统的可靠性和灵活性。

    首先,你需要创建一个 CDC Connector 来捕获数据源(例如 MySQL、PostgreSQL)的变更事件,并将其转换为 Flink DataStream。这个 CDC Connector 可以使用 Flink 提供的 flink-connector-cdc 模块,你可以根据数据库类型选择适当的 CDC Connector,如 DebeziumMySQLSourceDebeziumPostgresSource

    然后,你需要针对这个 CDC Connector 创建一个虚拟表(source table),该表用于读取 CDC 数据流并将其发送到下游操作符进行处理。在虚拟表定义中,你可以指定 CDC Connector 的相关配置参数,如服务器地址、用户名、密码等。示例代码如下:

    CREATE TABLE source_table (
      ...
    ) WITH (
      'connector' = 'your_cdc_connector',
      'property.1' = 'value.1',
      ...
    )
    

    最后,你可以创建另外一个虚拟表(sink table)来将处理后的数据写入到目标数据库中。这个虚拟表需要配置一个合适的 JDBC Connector,用于将数据写入目标数据库。示例代码如下:

    CREATE TABLE sink_table (
      ...
    ) WITH (
      'connector' = 'jdbc',
      'url' = 'your_jdbc_url',
      'table-name' = 'target_table',
      ...
    )
    

    通过这两个虚拟表的连接,你可以将读取的 CDC 数据流传输到 Sink 表中,实现实时数据同步。

    需要注意的是,上述代码仅为示例,具体的配置参数和语法可能因 Flink 版本和数据库类型而有所不同。请确保根据你的环境和需求进行适当的配置。

    2023-09-04 13:17:33
    赞同 1 展开评论 打赏
  • Flink CDC(Change Data Capture)是一种数据源连接器,允许你从支持CDC特性的数据库中读取数据变化。在这个场景中,你只需要一张虚拟表即可,不需要再额外建立一张虚拟表。

    Flink SQL提供了两种方式来实现CDC:

    1. 基于Connector CDC的方式:这是最推荐的方法,因为你只需要在一个地方定义你的模式,而不需要为每个查询单独定义模式。这种方式也更高效,因为Flink会缓存模式定义,从而提高查询效率。
      95452b167f92db882799953a9f8f7b9d_p516342.jpg

    2. 基于UDF(User Defined Function)的方式:这种方式需要为每个查询定义模式,并且需要编写UDF来处理CDC事件。这种方式的优点是灵活性更高,但是缺点也很明显,那就是效率较低,因为每次查询都需要重新解析模式并执行UDF。
      8c8604889da3a19ddaef93ce1b106e61_p263835.png

    d5d01eeb9fd15df383e745ea996d8429_p397467.png

    总的来说,如果你想使用Flink CDC,我建议你选择第一种方式,也就是基于Connector CDC的方式。这种方式不仅更高效,而且更简单易用。

    2023-09-04 10:14:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载