Flink CDC模式写入Hudi

1、前沿

        之前对数据湖的相关知识和怎么搭建都做了详细的讲解,感兴趣的可以去了解下

数据湖基本概念--什么是数据湖,数据湖又能干什么?为什么是Hudi_一个数据小开发的博客-CSDN博客

从0到1搭建数据湖Hudi环境_一个数据小开发的博客-CSDN博客

接下来,就是Flink on Hudi的实战了,这一篇带来的CDC模式的入湖。

2、实战

2.1、启动本地环境

export HADOOP_CLASSPATH=`$HADOOP_HOME/bin/hadoop classpath`
./sql-client.sh embedded -j ../lib/hudi-flink-bundle_2.11-0.10.1.jar shell

2.2、新建MySQL表

-- 新建mysql表
drop table if exists flink_hudi.flink_hudi_mysql_table;
create table if not exists flink_hudi.flink_hudi_mysql_table (id int,name varchar(100));

2.3、新建Flink MySQL CDC表


CREATE TABLE mysql_cdc_name_table (
  id int,
  name string
) WITH (
  'connector' = 'mysql-cdc',
  'hostname' = 'ip',
  'port' = '3306',
  'username' = 'root',
  'password' = 'xxxx',
  'database-name' = 'flink_hudi',
  'table-name' = 'flink_hudi_mysql_table',
  'scan.incremental.snapshot.enabled' = 'false'
);

2.4、新建Flink Hudi表

CREATE TABLE hudi_cow_cdc(
  id int,
  name string,
  PRIMARY KEY(id) NOT ENFORCED
)
WITH (
  'connector' = 'hudi',
  'path' = 'hdfs://localhost:9000/user/root/hudi/hudi_cow_cdc',
  'table.type' = 'COPY_ON_WRITE',
  'write.insert.drop.duplicates' = 'true'
); 

2.5、实时读取mysql数据写入hudi

insert into hudi_cow_cdc select * from mysql_cdc_name_table;

2.6、插入数据

insert into flink_hudi.flink_hudi_mysql_table values(1,'XiaoM');

2.7、跑Spark查看数据

此处可以查看上一篇博客中的Spark读取Hudi的数据的demo

Flink SQL Kafka写入Hudi详解_一个数据小开发的博客-CSDN博客

2.8、delete操作数据

delete from flink_hudi.flink_hudi_mysql_table where id = 1;

可以看到根据上述的操作后,查看数据观察得知,Flink CDC入湖完整

Flink CDCFlink的一个功能模块,用于实时捕获和处理数据库变更。它可以将数据库中的变更数据以的形式输出,并提供了一些API和工具来支持数据的转换和处理。 Hudi(Hadoop Upserts anD Incrementals)是一种用于大规模数据湖的开源存储和处理框架。它提供了基于日志的增量写入和查询功能,支持数据的实时插入、更新和查询。通过将Flink CDCHudi结合使用,可以实现将通过Flink CDC捕获到的两张的数据合并成一张视图,并同时写入数据湖Hudi)和Kafka中。 具体步骤如下: 1. 首先需要配置Flink CDC来捕获两张的变更数据。根据具体的数据库类型和配置,将Flink CDC连接到数据库,并配置需要捕获的信息。 2. 使用Flink的DataStream API来处理捕获到的变更数据。你可以使用Flink的转换和操作函数来对数据进行合并、过滤、转换等操作,以满足你的需求。 3. 将处理后的数据同时写入数据湖Hudi)和Kafka中。你可以使用FlinkHudi Sink和Kafka Sink来将数据写入到相应的目标系统中。配置Hudi Sink时,你需要指定Hudi名、数据写入模式(例如增量写入或覆盖写入)、存储路径等信息。配置Kafka Sink时,你需要指定Kafka的连接信息、主题等信息。 4. 确保Flink应用程序在运行时具备足够的资源和容错机制。你可以根据数据量和处理需求来调整Flink任务的并行度、内存分配等参数,以保证处理的性能和可靠性。 总结起来,通过配置Flink CDC来捕获数据库的变更数据,然后使用Flink的DataStream API来处理数据,并将处理后的数据同时写入Hudi和Kafka中,就可以实现Flink CDCHudi的结合应用。这样可以将两张的数据合并成一张视图,并且将数据保存到数据湖和发送到Kafka中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值