从理论到实践,实时湖仓功能架构设计与落地实战

news2024/11/17 3:38:56

在上篇文章中,我们向大家解释了为什么实时湖仓是当前企业数字化转型过程中的解决之道,介绍了实时计算和数据湖结合的应用场景。(“数据驱动”时代,企业为什么需要实时湖仓?)

在这篇文章中,我们将详细介绍在数栈实时开发平台内,实时湖仓的功能架构设计和具体实操案例。

功能架构介绍

实时湖仓并不是一个独立的产品模块,它的完整实践是基于数栈实时开发平台进行的。为了更直观地介绍我们建设实时湖仓的完整思路,我们单独拆出了架构图供大家参考。

file

湖仓管理

湖仓管理是建设实时湖仓的基础,通过这一层的建设,你可以:

· 借助 Flink Catalog 管理,构建一套虚拟湖仓分层架构,类似传统离线数仓中的主题域、DW 分层设计

· 可视化创建湖表,平台支持 Paimon、Hudi、Iceberg 三种湖表创建,并分别提供对应的 DDL DEMO

· 通过 Flink 表管理,持久化存储基于 RDB、Kafka 创建的 Flink 映射表,和湖表一起,为实时计算提供表管理能力

· 作为实时计算领域最常用的数据介质,平台同时也支持对 Kafka Topic 进行基础的增删改查、数据统计分析等功能

湖仓开发

湖仓开发是建设实时湖仓的核心能力,按应用场景主要分为:

· 数据入湖:通过实时消费 Kafka,或者读取 RDB 的 CDC 数据,将业务数据实时打入数据湖,构建实时湖仓的 ODS 层,为后续的流/批读写提供统一的数据基础

· 湖仓加工:借助湖表格式的事务特性、快照特性等能力,通过 FlinkSQL 任务读写湖表,构建湖仓中间层

· 流批一体:在湖仓加工过程中,根据不同的业务场景,可以选择流读或批读。在流批一体的设计上,你可以选择先批读存量数据,无缝衔接流读增量数据;也可以选择流读增量数据,批读进行数据订正

湖仓治理

在湖仓开发过程中,我们可以通过湖仓治理能力,不断优化完善实时湖仓:

· 湖表文件治理:在湖仓开发过程中,会产生大量小文件、过期快照、孤儿文件等数据,严重影响湖表的读写性能。通过文件治理功能,可以定期合并小文件、清理过期快照/孤儿文件,提高开发效率

· 元数据查询:在提供 Catalog/Database/Table 基础信息查询的同时,会对湖表的存储、行数、任务依赖等信息进行统计,方便全局判断湖表价值

· Hive 表转换:对于历史 Hive 表,平台支持在不影响历史数据的前提下,一键转换表类型

实操案例分享

下面通过一个数开案例,详细介绍如何在平台实现数据入湖、湖仓开发、湖仓治理。

数据入湖(实时采集 DB2 数据,写入 PaimonA 湖表)

● 先创建 DB2-CDC 的 Flink 映射表和 Paimon 湖表

file file

● 开发入湖任务

file

湖仓开发(流式读取 PaimonA,流式写入 PaimonB)

● 创建 PaimonB

方式同上,此处不再重复演示。

● 开发读写湖表任务

平台支持读写参数的配置化开发,无需在 SQL 代码中定义,从而极大地提高了开发效率。例如,在湖表读取时选择时间戳,如果使用 SQL 开发,需要先在后台查询快照数据,并进行时间戳转换才能理解。而通过配置化方式,可以直接选择或输入日期时间,在提交任务时自动进行时间戳转换。

file

湖仓治理

● 元数据查询

提供 Catalog、Database、湖表(Paimon/Hudi/Iceberg)、Flink 映射表的元数据查询。

file

● 数据文件治理

湖表的读写,特别是实时场景下的读写,会产生大量的小文件,小文件过多又会影响读取性能。因此对于湖表文件的治理功能,是建设实时湖仓必不可缺的一部分。

file

总结

实时湖仓是「实时计算」和「数据湖」的一种结合应用场景,并不是具体指一个产品模块。平台通过相关功能的设计,让数据开发可以更简单更直观地了解 Flink Catalog、数据湖、流批一体等概念,并在实际业务场景中更方便地去落地实践。

本文根据《实时湖仓实践五讲第二期》直播内容总结而来,感兴趣的朋友们可点击链接观看直播回放视频及免费获取直播课件。

直播课件(点击文末阅读原文可直接跳转):

https://www.dtstack.com/resources/1053?src=szgzh

直播回放视频:

https://www.bilibili.com/video/BV1Uw411k7iS/?spm_id_from=333.999.0.0

《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szcsdn

同时,欢迎对大数据开源项目有兴趣的同学加入我们,一起交流最新开源技术信息,号码:30537511,项目地址:https://github.com/DTStack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1106537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Gitlab构建简单流水线CI/CD

什么是Gitlab Gitlab实质上是一套DevOps工具 目前看起来,Gitlab属于是内嵌了一套CI/CD的框架,并且可以提供软件开发中的版本管理、项目管理等等其他功能。 这里需要辨别一下Gitlab和Github Gitee的区别。 GIthub大家都很熟悉了,一般大家都会…

探索DeFi世界,MixGPT引领智能金融新时代

随着区块链技术的迅猛发展,DeFi(去中心化金融)正成为金融领域的新宠。在这个充满活力的领域里,MixTrust站在创新的前沿,推出了一款引领智能金融新时代的核心技术——MixGPT。 MixGPT:引领智能金融体验的大型…

Rust逆向学习 (1)

文章目录 Hello, Rust Reverse0x01. main函数定位0x02. main函数分析line 1line 2line 3line 4~9 0x03. IDA反汇编0x04. 总结 近年来,Rust语言的热度越来越高,很多人都对Rust优雅的代码和优秀的安全性赞不绝口。对于开发是如此,对于CTF也是如…

208. 开关问题 - 异或方程组

208. 开关问题 - AcWing题库 我们可以找每一个开关由哪些开关掌控,每一个开关的值设为动过为1,没动过为0 再看当前开关的状态与结果的状态是否一致,一致为0,说明掌控这个开关的开关门的异或值为0,不一致则为1&#xf…

彻底理解操作系统与内核的区别!

通用底盘技术 Canoo公司有一项核心技术专利,这就是它们的通用电动底盘技术,长得是这个样子,非常像一个滑板: 这个带轮子、有电池、能动的滑板已经包含了一辆车最核心的组件,差的就是一个外壳。这个看起来像滑板的东西…

【MATLAB源码-第50期】基于simulink的BPSK调制解调仿真,输出误码率。

操作环境: MATLAB 2022a 1、算法描述 1. Bernoulli Binary: 这个模块生成伯努利二进制随机数,即0或1。这些数字表示要传输的原始数字信息。 2. Unipolar to Bipolar Converter: 此模块将伯努利二进制数据从0和1转换为-1和1,这是BPSK调制的标…

AN动画基础——缓动动画

【AN动画基础——影片剪辑滤镜】 基础动画缓动动画缓动原理实例应用 本篇内容:了解曲线原理 重点内容:缓动动画 工 具:Adobe Animate 2022 基础动画 我们先做一个非缓动的效果的动画。 绘制一个矩形设置成元件—图形,30帧插入关…

SpringMVC源码分析(四)请求流程分析

a、http请求是怎么被Controller接受处理,然后返回结果的? 发出HTTP请求后,跳过网络层的东西,当被应用服务器Tomcat接受的时候。在Tomcat中存在一个servlet容器,它负责管理所有的servlet,包括SpringMVC的核…

MySQL绕过WAF实战技巧

一、前言 本人喜欢遇到好的东西,乐于分享,关注freebuf有段时间了,写过两篇文章,每次写写文章,不仅仅是为了挣点稿费。而是通过此平台能够认识一些安全圈的小伙伴,互相学习,共同进步。在安全行业…

为什么不可大张旗鼓地推动“汉字编程”?

为什么不可大张旗鼓地推动“汉字编程”? 没有不可。 我之前看到过一个vscode插件,是给一个不知道叫什么名字的编程语言用的,从代码到注释全是西里尔字母写的,反正就只有东欧那片区域用。最近很多小伙伴找我,说想要一些…

c++实现最大堆

前言 在写leetcode的时候,看到一道优先队列的题目,复习了一下最大堆,用c实现了一下。以前听网课的时候,根本看不懂实现,现在自己也能实现了。 参考文献 这个我觉得讲得挺好的,图很生动形象 代码 #incl…

2023年京东洗发护发行业增长趋势分析:头皮清洁或成小风口

如今,随着消费观念的转变,越来越多的消费者愈加重视头部的洗护,无论是女性还是男性,都开始积极寻找头部洗护用品,以更好地呵护头发及头皮。在用户需求的推动下,洗发护发行业已经逐渐发展成为成熟行业。 根据…

linux性能分析(二)如何从日志分析 PV、UV

一 如何从日志分析 PV、UV 本文是从业务侧来衡量整个应用系统的性能,区别与上篇的网络性能分析备注: 这里的日志不仅指的是业务类型日志,也包括系统日志等各种类型的日志关键: 掌握PV和UV的概念和度量方式 "以下是关于埋点的科普文章" 埋…

不会代码循环断言如何实现?只要6步!

对于使用jmeter工具完成接口测试的测试工程师而言。在工作中,或者在面试中,都会遇到一个问题—— “CSV文档做了一大笔测试数据后,怎么去校验这个结果呢?” 现在大部分测试工程师可能都是通过人工的方法去查看结果,十几…

喜报!迅镭激光荣膺“江苏省智能制造领军服务机构”!

近日,“2023江苏省智能制造领军服务机构”名单揭晓,迅镭激光凭借在智能制造领域的强劲实力和突出的行业影响力位列其中,摘得该项殊荣。 近年来,智能制造正在成为全球传统工业和制造业转型升级的主要方向,越来越多的企业…

关于HBuilder X配置微信小程序开发的整体解决方案

配置小程序ID 配置微信小程序开发工具路径 [微信小程序开发者工具] initialize 问题解决方案 错误原因:微信开发者工具没有开启服务端口,无法使用命令行调试 解决办法:开启微信开发者工具的服务端口( 开发微信开发者工具 --> 设置 -->…

​蔚来自动驾驶,从 2020 年开始讲起的故事

2020 年底,摆脱 2019 年阴霾的李斌先生,热情而兴奋,再一次说:「欢迎来到蔚来日。」 那天蔚来发布了令人咋舌的智能驾驶硬件系统,4 块当时甚至还没有宣布量产日期的 Orin 芯片,11 路高清摄像头。 早在 ET7…

2023年9款好用的在线流程图软件推荐!

随着互联网技术和基础设施的发展,人们能用上比过去更加稳定的网络,因此在使用各类工具软件时,越来越倾向于选择在线工具,或是推出了网页版的应用。 就流程图软件而言,过去想要绘制流程图,我们得在电脑上安…

Git——解决 TortoiseGit 提示 No supported authentication methods available 错误

快速导航 问题描述解决方案步骤1 打开Git 的 Settings窗口步骤2 选择Network步骤3 选择安装目录usr\bin 下的 ssh.exe 文件 问题描述 git 推送(push)后提示No supported authentication methods available 错误 解决方案 步骤1 打开Git 的 Settings窗…

美国科技消费品公司Society Brands完成2500万美元融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于美国俄亥俄州坎顿的科技消费品公司Society Brands今日宣布已完成2500万美元融资。 本轮融资由Gullane Capital领投,Callais Capital和North Coast Ventures跟投。 该公司打算利…