Zhi Blog
  1. Hudi
Zhi Blog
  • Zhi Blog
  • LLM&RAG&Agent
    • agent+大数据
    • deepseek的指令
    • 大模型控制电脑
    • 10.开发llm的两种方式
    • 11.展示写一个网站
    • 12.展示写一个reactflow前端
    • 13.大模型在反复迭代场景中的应用举例
    • 14.agent开发的workflow流程和自主编排
    • 15.利用大模型实现提示词的优化
    • 16.这就是为啥要学习提示词工程
    • 提示技巧
    • 17.提示词通用技巧以及提示词工程框架介绍
    • 18.Unsloth 大模型微调工具
    • autogen starter
    • MCP1:about MCP
    • MCP2: 如何用langchain创建自己的MCP server&client
    • 十分钟系列
      • 1.十分钟实现免费本地大模型对话框
      • 2.十分钟在本地部署大模型
      • 3.十分钟实现本地大模型部署并部署对话应用
      • 4.十分钟实现本地知识库部署
      • 5.十分钟在本地实现Deepseek R1 70B免费对话
      • 6.十分钟实现本地可视化开发Agent
      • 7.待补充
    • 参考
      • AI最大赛道Agent机遇全解析
      • 从第一性原理看大模型Agent技术
      • Agent项目
      • LLama部署和微调手册
      • Agent实战-JSON结构化智能
      • AI智能体卷爆大模型!AutoGPT等4大Agent打擂,「西部世界」谁将成为软件2.0
      • Agent调研--19类Agent框架对比
      • 国内近 50 款 AI Agent 产品问世,技术足够支撑应用可靠性了吗
      • 解析 AI Agent 的发展现状和技术难点
      • 清华大学与智谱 AI 联合推出 CogAgent:基于多模态大模型的 GUI Agent,具备视觉问答、视觉定位等能力
      • Agent 还没出圈,落地先有了“阻力”:进入平台期,智力能否独立担事?
      • 钉钉卡位战:SaaS 挣不到的钱,Agent 会挣到
      • 近三代操作系统开发元老一起创业搞 AI Agent 操作系统
      • 从科幻走向现实,LLM Agent 做到哪一步了
  • Hudi
    • 1.hudi介绍和简单实践
    • 2.flink基于hudi的数据湖实践
    • 3.概说hudi
  • Iceberg
    • iceberg初步实践
  1. Hudi

2.flink基于hudi的数据湖实践

物料准备#

准备工作#

导入mysql数据#

先下载sql文件#
链接:https://pan.baidu.com/s/18eQ6cD35CT4qw_Ms6SgAcw
提取码:abcd
mysql开启binlog#

将所需的lib放入$FLINK_HOME/lib/目录下#

链接:https://pan.baidu.com/s/1VlNGoa15QxLNb8tevB-FeA
提取码:abcd

创建kafka topic#

另:java dependencies#

<properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <flink.cdc.connector.version>2.0.2</flink.cdc.connector.version>
    </properties>
    <dependencies>
<!--        <dependency>-->
<!--            <groupId>org.apache.hudi</groupId>-->
<!--            <artifactId>hudi-spark3.1.2-bundle_2.12</artifactId>-->
<!--            <version>0.10.1</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>org.apache.hudi</groupId>
            <artifactId>hudi-flink-bundle_2.11</artifactId>
            <version>0.10.1</version>
        </dependency>
        <dependency>
            <groupId>com.ververica</groupId>
            <artifactId>flink-connector-mysql-cdc</artifactId>
            <version>${flink.cdc.connector.version}</version>
        </dependency>
        <dependency>
            <groupId>com.ververica</groupId>
            <artifactId>flink-connector-debezium</artifactId>
            <version>${flink.cdc.connector.version}</version>
        </dependency>
        <dependency>
            <groupId>com.ververica</groupId>
            <artifactId>flink-format-changelog-json</artifactId>
            <version>${flink.cdc.connector.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-jdbc_2.11</artifactId>
            <version>1.13.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-kafka_2.11</artifactId>
            <version>1.13.5</version>
        </dependency>
    </dependencies>
    

实施操作#

一 建立kafka ODS层#

参考第一篇文章启动flinksqlClient
https://apifox.com/apidoc/shared/fc096300-8ac8-4d53-8c45-bfea473118e3/6284549m0
创建mysql-cdc表#
image.png
创建kafka sink表#
image.png
将mysql binlog导入对应的topic#

二 基于ODS建立hudi维表#

(1) base_province和base_region维表#

将my5.base_province和my1.base_region两张区域维表信息写入hudi COW表中
cow表是读性能更好的表,维表作为读多写少的使用场景,适合采用cow

(2) 使用上述两张维表创建dim_province表#

基于hudi表,来做实时join,从而的到关联之后的表,我们之前这一步是利用hbase采用代码的方式来实现的,hudi利用sql就直接做到了,减少很大的代码开发工作

(3) base_category1,base_category2,base_category3#

(4) 将商品表导入hudi#

(5) 建立dim_sku_info视图#

这里利用join建立视图

三 建立DWD层#

建立order_info和order_detail的hudi表#

基于上述两表建立dwd_paid_order_detail_hudi#

四 建立ADS层#

经过上面的步骤,我们创建了一张dwd_paid_order_detail明细宽表,并将该表存储在了hudi中。接下来我们将使用这张明细宽表与维表进行JOIN,得到我们ADS应用层数据
这里实现了可以建立中间表的方式,来做join

总结:#

hudi做到了不改变原有大数据组件的情况下,实现了准实时大处理数据。
亮点是可以依据sql的方式做到join,形成实时宽表。
改变了以往我们通过hbase,采用大量写java代码的方式才能做到的实时宽表的方式。
同时更多的照顾到sql的处理方式,例如可以先生成临时表再关联,更好更方便。
我认为最佳的方式是,利用hudi做join的操作,ADS层最好是放到clickhouse这样的OLAP库来实现。
修改于 2025-03-20 05:38:35
上一页
1.hudi介绍和简单实践
下一页
3.概说hudi
Built with