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

请问flink cdc中flinksql读mysql的日志,多表的table-name怎样写啊?

请问flink cdc中flinksql读mysql的日志,多表的table-name怎样写啊?

展开
收起
小易01 2023-07-19 18:05:03 176 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flink CDC 中,如果需要通过 Flink SQL 读取 MySQL 数据库的多张表,可以使用以下方式指定多个表的名称:
    sql
    Copy
    CREATE TABLE my_table (
    -- 列定义
    ) WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'localhost',
    'port' = '3306',
    'username' = 'root',
    'password' = '123456',
    'database-name' = 'my_db',
    'table-name' = 'table1,table2,table3'
    );
    在这个例子中,使用逗号分隔符将多个表名组合成一个字符串,作为 table-name 参数的值。Flink CDC 在读取数据时,会自动解析表名字符串,以读取多个表的数据。需要注意的是,Flink CDC 仅支持读取同一 MySQL 实例下的多个表,不支持读取不同 MySQL 实例下的表。
    此外,如果需要读取多个不同数据库中的表,可以通过创建多个 Flink SQL 表来实现,例如:
    sql
    Copy
    CREATE TABLE my_table1 (
    -- 列定义
    ) WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'localhost',
    'port' = '3306',
    'username' = 'root',
    'password' = '123456',
    'database-name' = 'db1',
    'table-name' = 'table1'
    );

    CREATE TABLE my_table2 (
    -- 列定义
    ) WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'localhost',
    'port' = '3306',
    'username' = 'root',
    'password' = '123456',
    'database-name' = 'db2',
    'table-name' = 'table2'
    );
    在这个例子中,分别创建了两个

    2023-07-29 19:39:42
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "7dee2f87fa7733789b80cbe97b0cdcf7.png
    185149a3bb4c25965662e60a1e007027.png此回答整理至钉群“Flink CDC 社区”。此回答整理至钉群“Flink CDC 社区”。"

    2023-07-19 18:57:45
    赞同 展开评论 打赏

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

相关产品

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

    更多
    One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
    One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
    如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

    相关镜像