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

请问flink cdc中监测 oracle 数据库表结构的变化 如何搞呀?能否给个案例?

问题1:请问flink cdc中监测 oracle 数据库表结构的变化 如何搞呀?能否给个案例?
问题2:3606d37c5aa78399dae378a41a05ce47.png
api

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

    在 Flink CDC 中,可以通过配置 Oracle 数据库的 schema 注册表(registered table)来监测表结构的变化。具体来说,可以在 CDC 的配置文件中,通过 schema.registry 参数来指定需要监测的 Oracle 数据库 schema,例如:
    json
    Copy
    schema.registry = [
    {
    "type": "oracle",
    "name": "my_schema",
    "connection.url": "jdbc:oracle:thin:@//localhost:1521/orcl",
    "connection.username": "myuser",
    "connection.password": "mypassword",
    "tables": [
    {
    "schema": "MY_SCHEMA",
    "table": "MY_TABLE"
    }
    ],
    "monitor.interval": "1m",
    "monitor.sql": "SELECT COUNT(*) FROM MY_SCHEMA.MY_TABLE"
    }
    ]
    在这个配置中,通过 tables 参数指定了需要监测的表名和 schema,通过 monitor.interval 参数指定监测的时间间隔,通过 monitor.sql 参数指定监测的 SQL 语句。在运行时,Flink CDC 会定期执行 monitor.sql 语句,以监测表结构的变化,并在发现变化时自动更新注册表的结构信息。

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

    "回答1:了解下 debezium, 我已经实现,不过捕获表结构的变化后,需要额外处理下。你目前是使用什么写的?datastream api 还是纯sql?
    回答2: .includeSchemaChanges(true),DebeziumDeserializationSchema 里还要处理根据业务情况来。DebeziumDeserializationSchema 取到 SourceRecord 。获取 Envelope.Operation op = Envelope.operationFor(record); 根据 op 值判断是正常数据还是 表结构变更数,别混了。另外 也要注意数据库权限。此回答整理至钉群“Flink CDC 社区”。"

    2023-07-19 18:58:48
    赞同 展开评论 打赏

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

相关产品

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

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

    相关镜像