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

Flink CDC我这是扫所有表吗?为啥所有数据库都在add?

Flink CDC我这是扫所有表吗?为啥所有数据库都在add?
c104aa725a5f7b1deec758ed9ff6e19f.png

展开
收起
小易01 2023-07-24 21:54:41 81 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink CDC 中,如果您未指定任何表过滤条件,那么默认情况下会扫描数据库中的所有表,并尝试对其进行增量数据同步。这是因为 Flink CDC 的设计初衷是支持全量和增量数据同步,以便满足不同的业务需求。
    如果您只需要同步部分表的数据,可以通过 Flink CDC 的配置来指定需要同步的表,从而避免扫描所有表。具体来说,您可以在 Flink CDC 的配置文件中使用 table-whitelist 或 table-blacklist 参数来指定需要同步或排除的表。例如:
    json
    Copy
    {
    "name": "my-cdc-job",
    "connector": {
    "type": "cdc",
    "property-version": "1",
    "scan.startup.mode": "latest-offset",
    "database": "mydatabase",
    "table-whitelist": "mytable1,mytable2",
    "username": "myuser",
    "password": "mypassword",
    "hostname": "localhost",
    "port": "3306"
    },
    "format": {
    "type": "json"
    },
    "sink": {
    "type": "print"
    }
    }
    在上述配置中,table-whitelist 参数指定了需要同步的表名列表,username 和 password 参数指定了连接数据库所需的用户名和密码,hostname 和 port 参数指定了数据库的主机名和端口号。
    如果您的 Flink CDC 配置文件中未指定 table-whitelist 或 table-blacklist 参

    2023-07-29 18:35:25
    赞同 展开评论 打赏
  • 意中人就是我呀!

    你用权限低一点的用户试试,你用户能查到多少数据库,执行的时候就会扫多少,最好是只能看到你要处理的那个库。然后databaseList和tableList都配置成你需要的,其他的都不要。此回答整理至钉群“Flink CDC 社区”

    2023-07-26 12:02:58
    赞同 展开评论 打赏
  • 存在即是合理

    在Flink CDC中,需要定义一个触发器来捕获数据变更事件,该触发器通常称为“Snaphot Change Trigger”。
    当一个表被添加到Flink CDC中时,Flink会自动创建一个名为“fb_search”的临时表来存储该表的初始状态。在此之后,Flink会通过读取该表的初始状态并将其与后续变更事件进行比较来实现数据同步。因此,当您看到所有数据库都在add时,可能是因为您正在扫描所有表来添加它们到Flink CDC中。
    总之,Flink CDC需要先创建一个临时表来存储初始状态,然后通过比较初始状态和变更事件来实现数据同步。在此过程中,所有表都需要被扫描并添加到Flink CDC中。

    2023-07-25 14:23:35
    赞同 展开评论 打赏

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

相关产品

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

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