【Flink SQL API体验数据湖格式之paimon】

前言

随着大数据技术的普及,数据仓库的部署方式也在发生着改变,之前在部署数据仓库项目时,首先想到的是选择国外哪家公司的产品,比如:数据存储会从Oracle、SqlServer中或者Mysql中选择,ETL工具会从Informatica、DataStage或者Kettle中选择,BI报表工具会从IBM cognos、Sap Bo或者帆软中选择,基本上使用的产品组合都类似,但随着数据量的激增,之前的部署方式已经越来越不能满足业务场景,例如:不同格式的数据存储,传出的数据库无法存储,而且随着数量的增多,数据库的响应速度就会下降,并且数据大都是T+1的,往往从业务需求的提交到BI报表开发都需要一段时间,等BI报表开发后,数据的时效性大大降低,无法为业务的决策及时性提供帮助,后来随着hadoop的流行,数据仓库慢慢的就演变为以hadoop为基础存储的大数据仓库,并解决了传统数仓无法承载激增数据量的问题,并且随着计算引擎的迭代更新,现在也能实现数据的实时性和事务性,本篇就以新起之秀的数据存储方式来展开介绍。


提示:以下案例仅供参考

一、paimon是什么?

paimon是一种基于LSM形式的数据湖存储格式,与hudi、iceberg定位相同,都是一种基于对hdfs文件存储管理的技术,flink与hudi和iceberg都有做过集成,但hudi和iceberg相当于spark的功能更为完善,这些数据湖格式也都更偏向于批处理,而相对于flink来说,提供的功能相较于spark来说,没有那么完善,虽然flink针对这些方面有做过努力尝试,但结果都不太理想,于是,flink基于前者的有点,自己创造一种数据湖存储格式,其基于flink table store的基础,在结合其他开源数据湖格式的特点加以改进,于是一种新的数据湖格式paimon就诞生了,本人也是最近才开始尝试这种新的数据湖格式的一些功能,下面是基于sql api编写的一个简单的例子。

二、Fink SQL API方式编程

1.创建kafka流标

我这边是以yarn-session的方式执行的,所以首先启动的session,cd $FLINK_HOME,执行bin/yarn-session -d -nm test创建一个名称为test的session会话,随后执行bin/sql-client -s yarn-session进入sql客户端,直接使用默认的catalog和database,执行下面的DDL语句,就会在default_catalog.default_database下创建一个kafka_table表

c 复制代码
create temporary table `kafka_table`(
`distinct_id` string,
`login_id` string,
`anonymous_id` string,
`type` string,
`event` string,
`_track_id` string,
`time` string,
`_flush_time` string,
`device_id` string,
`project_id` string,
`map_id` string,
`user_id` string,
`recv_time` string
 ) with(
 'connector'='kafka',
 'topic'='event_topic',
 'properties.group.id'='testgroup',
 'properties.bootstrap.servers'='cdp1:9092',
 'scan.startup.mode'='latest-offset',
 'format'='json'
 );

2.创建paimon append表

接着执行如下DDL语句

c 复制代码
CREATE TABLE paimon_append (
`distinct_id` string,
`login_id` string,
`anonymous_id` string,
`type` string,
`event` string,
`_track_id` string,
`time` string,
`_flush_time` string,
`device_id` string,
`project_id` string,
`map_id` string,
`user_id` string,
`recv_time` string
) PARTITIONED BY (`distinct_id`)
WITH (
'bucket' = '-1'
);

3.数据导入

SET 'execution.checkpointing.interval' = '1 min';

INSERT INTO paimon_append SELECT * FROM kafka_table;


总结

以上就是一个消费kafka主题数据,并每隔一定的间接直接,写入到paimon表中,paimon会对小文件数据量达到一定程度后,对文件进行压缩合并,并且paimon也支持merge into、update、以及schema evolution等功能,由于时间有限,这里就不仔细展开了,有兴趣的朋友,可以亲自尝试下,版本目标已经更新到0.7,为flink的生态状态又增加了一环,目前flink cdc 、paimon的加持、能很好的解决lamda架构数据不一致,以及kappa架构数据追溯的问题,相信随着后续版本的迭代更多强大的功能也会推出。

相关推荐
南京兴帝文化传媒有限公司3 分钟前
本地生活商家GEO获客技术实践:宁国理发店地图优化实现新客增长60%
大数据·生活·geo优化教程·品牌知识体系·geo优化实操
IT小白杨14 分钟前
TikTok多账号运营体系安全运营攻略:移动端优先架构下的环境隔离技术解析
大数据·经验分享·tcp/ip·安全·架构·指纹浏览器
资讯综合26 分钟前
2026年GEO服务商评测:Deepseek适配与网站优化能力成为合作重点
大数据·人工智能
YH行业报告分析1 小时前
2026纸板箱边缘保护器市场洞察:角纸板保护器如何驱动航运物流包装升级?
大数据·重构
Cicada1281 小时前
分享我一直在用的一套 AI 记忆系统方案
大数据·数据库·人工智能
todoitbo1 小时前
SQL Server数据库迁移:V9R4C019 如何接住存量 T-SQL 批处理
数据库·sql·国产数据库
写后端的胖头鱼1 小时前
【高频面试题】SQL 查询慢怎么排查
数据库·sql·mysql·oracle·慢查询·高频面试题
浔溺1 小时前
al+大数据每日学习笔记37
大数据·笔记·学习
西安圣木通2 小时前
智能体时代来临:重构企业生产力,开启商业效率新范式
大数据·人工智能·重构
真上帝的左手2 小时前
27. 数据产品- BI - AI 应用实战终篇-从 RAG 架构到企业级平台落地
大数据·人工智能·架构