Dinky 整库同步至 Paimon 数据湖

在这里插入图片描述

EXECUTE CDCSOURCE cdc_demo WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'hadoop02',
    'port' = '3307',
    'username' = 'root',
    'password' = '123456',
    'scan.startup.mode' = 'initial',
    'source.server-time-zone' = 'Asia/Shanghai',
    -- 'source.server-time-zone' = 'UTC',
    'parallelism' = '1',
    'database-name' = 'tpchdb',
    'sink.connector' = 'sql-catalog',
    -- 'sink.connector' = 'paimon',
    'sink.catalog.name' = 'paimon_hive_dinky_catalog',
    'sink.catalog.metastore' = 'hive',
    'sink.catalog.type' = 'paimon',
    'sink.catalog.hive-conf-dir' = '/opt/module/hive/conf',
    'sink.catalog.uri' = 'thrift://hadoop02:9083',
    -- 'sink.auto-create' = 'true',
    'sink.bucket' = '1',
    'sink.snapshot.time-retained' = '24h',
    'sink.changelog-producer' = 'input',
    'sink.catalog.warehouse' = 'hdfs://hadoop03:9000/paimon/test',
    'sink.sink.db' = 'tpchdb'
);

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

我自己的测试实践是目前需要提前建 paimon 表
在这里插入图片描述

问题记录:
Cannot find table ‘paimon_hive_dinky_catalog.tpchdb.abc’ in any of t he catalogs [default_catalog, paimon_hive_dinky_catalog], nor as a temporary table.在这里插入图片描述

参考:巴别时代基于 Apache Paimon 的 Streaming Lakehouse 的探索与实践

----------------------------------- 分割线 -----------------------------------

添加以下:实现自动建表

自动建表

com.dlink.cdc.sql.catalog.SQLCatalogSinkBuilder.addTableSink

		// 切换catalog database
        customTableEnvironment.executeSql("use catalog " + catalogName);
        customTableEnvironment.executeSql("create database if not exists " + sinkSchemaName);
		customTableEnvironment.executeSql("use " + sinkSchemaName);
        // 创建目标表
        String flinkDDL = FlinkBaseUtil.getFlinkDDL(table, tableName, config, sinkSchemaName, sinkTableName,
                pkList);
        logger.info(flinkDDL);
        customTableEnvironment.executeSql(flinkDDL);
        logger.info("Create " + tableName + " FlinkSQL DDL successful...");

com.dlink.utils.FlinkBaseUtil.getSinkConfigurationString

		if(StringUtils.contains(configurationString, "sql-catalog")){
            StringBuilder sb = new StringBuilder();
            String[] optStrSplit = configurationString.split("\n,");
            for(String optStr : optStrSplit){
                if(StringUtils.contains(optStr,"catalog") || StringUtils.contains(optStr,"connector") ){

                }else{
                    sb.append("," + optStr);
                }
            }

            return sb.deleteCharAt(0).toString();
        }else{
            return configurationString;
        }

在这里插入图片描述

在这里插入图片描述

问题记录:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

cannot contain upper case in hive catalog

在这里插入图片描述
在这里插入图片描述

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
整库同步是指将数据库中的所有表数据都同步到目标端的操作。在使用Flink CDC进行整库同步时,可以通过配置相关参数实现。 根据引用,选择了mysql-cdc作为Source端来实现整库同步到各Sink端。需要在引用中的代码中设置`table-name`参数为要同步的所有表的名称,以逗号分隔。例如,如果要同步数据库中的bigdata库中的products和orders表,可以将`table-name`设置为`bigdata\.products,bigdata\.orders`。 此外,还需要在sink库中创建相应的表,以便将数据写入目标端。这一步骤在引用中提到,要在sink库中先创建好相应的表。 最后,执行CDC作业即可开始整库同步的过程。在引用中的代码中,通过执行`EXECUTE CDCSOURCE`命令来启动CDC作业。该命令将使用mysql-cdc作为连接器连接到源端数据库,并将数据写入到指定的Kafka主题中。 总结起来,使用Flink CDC进行整库同步的步骤包括: 1. 设置`table-name`参数为要同步的所有表的名称。 2. 在sink库中创建相应的表。 3. 执行CDC作业,将数据从源端同步到目标端。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Dinky实践系列之FlinkCDC整库实时入仓入湖](https://blog.csdn.net/mars275173972/article/details/128551989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Flink CDC整库同步(多表异构同步)](https://blog.csdn.net/qq_36062467/article/details/128117647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值