开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC每个表的这个值可以单独配置吗?

Flink CDC每个表的这个值可以单独配置吗?scan.incremental.snapshot.chunk.key-column ?

展开
收起
真的很搞笑 2023-11-16 08:07:45 53 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC 的 scan.incremental.snapshot.chunk.key-column 参数可以用来指定增量快照的关键列,用于在每次获取增量快照时切割数据流,使得 Flink CDC 能够将数据分割成多个小块并行地进行处理,提高性能。
    为了使每个表独立地进行并行化,需要在不同的表上分别设置 scan.incremental.snapshot.chunk.key-column 参数。首先,在每个表上创建不同名称的列,例如 {my-table}_key。然后,在创建 CDC 连接器时分别指定这些列名作为 key-column 参数:

    // 对应第一个表 my-first-table:
    CREATE CONNECTOR my_first_table CATALOG debezium
    ...
    WITH (scan.incremental.snapshot.chunk.key-column = 'my_first_table_key')
    
    // 对应第二个表 my-second-table:
    CREATE CONNECTOR my_second_table CATALOG debezium
    ...
    WITH (scan.incremental.snapshot.chunk.key-column = 'my_second_table_key')
    

    这样,就可以使用独立的 key-column 参数对每个表进行并行化处理,提高性能。

    2023-11-16 13:17:49
    赞同 展开评论 打赏
  • 是的,Flink CDC支持对每个表的增量快照键列进行单独配置。在Debezium Source Connector的配置中,可以通过设置scan.incremental.snapshot.chunk.key-column参数来指定用于增量快照的键列。

    例如,假设有一个名为orders的表,其中包含一个名为order_id的主键列,可以按照以下方式配置:

    {
      "name": "mydb",
      "databases": [
        {
          "name": "mydb",
          "tables": [
            {
              "name": "orders",
              "schema": "...(省略)...",
              "debezium": {
                "sql.include.schema.changes": "true",
                "incremental.snapshot.interval": "10s",
                "scan.startup.mode": "latest-offset",
                "scan.startup.timestamp.expected": "2023-07-04T00:00:00Z",
                "scan.incremental.snapshot.chunk.key-column": "order_id"
              }
            },
            ...(省略其他表的配置)...
          ]
        }
      ]
    }
    

    在上面的配置中,scan.incremental.snapshot.chunk.key-column被设置为order_id,这意味着增量快照将基于该列的值进行分组和排序。这样,当执行增量同步时,Flink CDC将只处理那些具有新值的键列值的行。

    2023-11-16 10:08:12
    赞同 展开评论 打赏
  • 暂时还不支持为每个表单独配置,此回答整理自钉群“Flink CDC 社区”

    2023-11-16 08:43:18
    赞同 1 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

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