Flink CDC中知道sql,动态加库以后,怎么加上这个参数么?[阿里云实时计算 Flink版]

问题1:Flink CDC中知道sql,动态加库以后,怎么加上allowNonRestoredState 这个参数么? 问题2:那如果我当前任务是1个库,我需要在当前任务中再增加一个库,咋整,我就是没有看到这个,官方的有这个参数直接跳转到jar了

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 在 Flink CDC 中,您无法直接在 SQL 中动态添加参数(例如 allowNonRestoredState)。SQL 是一个声明性语言,用于描述数据处理逻辑,而不是配置任务参数。

    如果您需要在 Flink CDC 中动态设置参数,可以考虑以下两种方法:

    1. 使用 Flink 的编程 API:通过使用 Flink 的编程 API,您可以更灵活地配置任务参数。您可以在代码中创建 CDC 任务并设置相应的参数,包括 allowNonRestoredState。这样,您可以根据需要动态添加库和设置参数。下面是一个示例代码:

    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);// 创建 CDC 表tEnv.executeSql("CREATE TABLE my_cdc_table (...) WITH (...)");    // 动态添加库(例如 MySQL)String libraryName = "my_library";tEnv.executeSql("CREATE CATALOG " + libraryName + " WITH (...)");// 设置任务参数env.getConfig().set(ExecutionCheckpointingOptions.ALLOW_NON_RESTORED_STATE, true);

    2. 使用 YAML 配置文件:您可以使用 YAML 配置文件来定义 Flink CDC 任务,其中可以设置需要的参数。在配置文件中,您可以定义多个库,并为每个库指定相应的参数。然后,您可以使用命令行或 Flink Dashboard 将配置文件传递给 Flink 运行时。下面是一个示例配置文件:

    name: my_cdc_jobexecution:  checkpointing:    allowNonRestoredState: truecatalogs:  - name: my_library    type: jdbc    ...tables:  - name: my_cdc_table    ...
  2. 回答1:你说的是sql不是jar对吧,可是sql动态加表没用呀,sql只能对分库分表的有用,可是sql我没看到有这个参数可配置 回答2:sql我没看到动态加表的参数,此回答整理自钉群“Flink CDC 社区”