MySQL-Flink CDC-Hudi综合案例

该文描述了如何使用FlinkSQL从MySQL数据库通过变更数据捕获(CDC)创建源表映射,然后将数据插入Hudi表,同时配置Hudi表参数以优化写入和读取性能,并启用Hive同步。最后,验证Hudi和Hive中的数据迁移结果。

思路分析:

 

操作步骤

(1)在MySQL中准备数据库、表,表数据

(2)在FlinkSQL中创建MySQL oe_course_tpye的映射表mysql_bxg_oe_course_type(源表)

(3)在FlinkSQL中创建Hudi的映射表hudi_bxg_oe_course_type(目标表) (hudi不需要创建物理表,但是Doris需要创建物理表)

(4)使用FlinkSQL拉起任务 insert into hudi_bxg_oe_course_type select col1,col2,col3,col4... from mysql_bxg_oe_course_type

(5)验证结果 首先验证hudi的数据(HDFS之上是否有数据) 验证Hive中是否有数据(登录hive客户端去查看)

在FlinkSQL中创建MySQL源表的映射表

 

--设置checkpoint时间
set execution.checkpointing.interval=30sec;

--创建源表的映射表
CREATE TABLE if not exists mysql_bxg_oe_course_type (
      `id` INT,
      `type_code` STRING,
      `desc` STRING,
      `creator` STRING,
      `operator` STRING,
      `create_time` TIMESTAMP(3),
      `update_time` TIMESTAMP(3),
      `delete_flag` BOOLEAN,
      PRIMARY KEY (`id
要实现Flink CDC实时同步Oracle到Hudi,你可以按照以下步骤进行操作: 1. 首先,配置Flink的Savepoints和Checkpoints,这样就可以实现断点续传的功能。这在生产环境中是建议的配置。 2. 使用Flink SQL创建Hudi并进行元数据自动同步到Hive。你可以按照以下示例创建: ```sql CREATE TABLE source_table ( uuid varchar(20), name varchar(10), age int, ts timestamp(3), `partition` varchar(20) ) WITH ( 'connector' = 'datagen', 'rows-per-second' = '1' ); CREATE TABLE hudi_table ( uuid varchar(20), name varchar(10), age int, ts timestamp(3), `partition` varchar(20) ) WITH ( 'connector' = 'hudi', 'path' = '$HUDI_DEMO/t2', -- 将$HUDI_DEMO替换为实际的绝对路径 'table.type' = 'MERGE_ON_READ', 'write.bucket_assign.tasks' = '2', 'write.tasks' = '2', 'hive_sync.enable' = 'true', 'hive_sync.mode' = 'hms', 'hive_sync.metastore.uris' = 'thrift://ip:9083' -- 将ip替换为HMS的地址 ); INSERT INTO hudi_table SELECT * FROM source_table; ``` 以上示例创建了`source_table`作为源和`hudi_table`作为Hudi,然后将源的数据实时同步到Hudi中。请将`$HUDI_DEMO`替换为实际的绝对路径,将`ip`替换为HMS的地址。 3. 确保你已经下载了所需的依赖jar。你需要下载MySQL驱动器以及Flink SQL的连接器和Flink CDC的依赖。你可以根据以下链接自行下载所需的jar包: - Flink SQL连接器:https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/connectors/table/jdbc/ - Flink CDC依赖:https://ververica.github.io/flink-cdc-connectors/release-2.3/content/connectors/mysql-cdc(ZH).html#a-name-id-002-a 通过以上步骤,你可以实现Flink CDC实时同步Oracle到Hudi的功能。这将使数据同步变得简单且可靠。记得替换示例中的路径和地址为实际的值。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值