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

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

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

功能架构介绍

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

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.rhkb.cn/news/161823.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java模拟双向链表,增删操作

public static void main(String[] args) {ArrayList arrayList new ArrayList();Node zhangsan new Node("张三");Node lisi new Node("李四");Node wanger new Node("王二");//模拟双向链表,将表中元素依次连接起来zhangsan.ne…

米哈游、复旦发布,具备感知、大脑、行动的大语言模型“智能体”

ChatGPT等大语言模型展示了前所未有的创造能力,但距AGI(通用人工智能)还有很大的距离,缺少自主决策、记忆存储、规划等拟人化能力。 为了探索大语言模型向AGI演变,进化成超越人类的超级人工智能,米哈游与复…

汽车上的A/C按键是做什么用的?

汽车上的A/C按键是做什么用的? 汽车上的a/c 键是空调制冷开关。A/C是空调的缩写,它的全称是air condition,理解为空气调节。它通过空调压缩机的不同运转方式来达到制冷或制暖的目的。 打开a/c 按键之后,因为空调压缩机是靠发动机工作的&…

Linux上Docker的安装以及作为非运维人员应当掌握哪些Docker命令

目录 前言 1、安装步骤 2、理解镜像和容器究竟是什么意思 2.1、为什么我们要知道什么是镜像,什么是容器? 2.2、什么是镜像? 2.3、什么是容器? 2.4、Docker在做什么? 2.5、什么是镜像仓库? 2、Dock…

求臻医学:实体肿瘤FDA/NMPA新获批抗癌药物/适应症盘点

肿瘤分子靶向治疗发展迅速,随着研究的深入开展,多款靶向药物及免疫药物获批。求臻医学根据美国食品药品监督管理局(FDA)公布信息、中国国家药品监督管理局(NMPA)发布的药品批准证明文件,以及各公…

尚硅谷Flink(二)DStream API

目录 🌠不会点 🪐DataStream API ​编辑 🌠 执行环境 创建执行环境 执行模式 触发程序执行 🌠源算子 准备基础类型 从集合中读取数据 从文件读取数据 从 Socket 读取数据 从 Kafka 读取数据 (没学过) …

2.2 如何使用FlinkSQL读取写入到文件系统(HDFS\Local\Hive)

目录 1、文件系统 SQL 连接器 2、如何指定文件系统类型 3、如何指定文件格式 4、读取文件系统 4.1 开启 目录监控 4.2 可用的 Metadata 5、写出文件系统 5.1 创建分区表 5.2 滚动策略、文件合并、分区提交 5.3 指定 Sink Parallelism 6、示例_通过FlinkSQL读取kafk…

【Python从入门到进阶】39、使用Selenium自动验证滑块登录

接上篇《38、selenium关于Chrome handless的基本使用》 上一篇我们介绍了selenium中有关Chrome的无头版浏览器Chrome Handless的使用。本篇我们使用selenium做一些常见的复杂验证功能,首先我们来讲解如何进行滑块自动验证的操作。 一、测试用例介绍 我们要通过sel…

C# Winform编程(5)菜单和菜单组件

菜单和菜单组件 添加菜单编辑菜单 添加菜单 将MenuStrip控件拖拽到Form窗体顶部添加菜单 编辑菜单 添加菜单项,编辑菜单属性等功能。 右键单击已添加的菜单项可以弹出右键菜单: 可以设置菜单图标,使能菜单,显示快捷键、转换菜…

C语言初学者工具选择:vscode + MSYS2 + cmake 搭建 C环境

文章目录 前言1. MSYS2 安装1. 下载安装包2. 安装3. pacman 换清华大学源4. 安装 mingw-w64 toolchain 和 cmake ninja5. 将 toolchain 加入系统环境变量 2. 设置 vscode1. 必要的插件2. 一个简单的 vscode cmake 项目 最后C数据结构与算法CMake 前言 网上关于使用 vscode 配…

【计算机网络】网络原理

目录 1.网络的发展 2.协议 3.OSI七层网络模型 4.TCP/IP五层网络模型及作用 5.经典面试题 6.封装和分用 发送方(封装) 接收方(分用) 1.网络的发展 路由器:路由指的是最佳路径的选择。一般家用的是5个网口,1个WAN口4个LAN口(口:端口)。可…

如何修改运行中的docker容器的端口映射

一、必须先关闭docker服务 systemctl stop docker二、修改容器的hostconfig.json 文件 路径:vim /var/lib/docker/containers/容器id/hostconfig.json 修改 PortBindings 属性,如下图: 然后保存 三、修改config.v2.json 文件 路径&#…

[机缘参悟-110] :一个IT人对面具的理解:职业面具戴久了,就会忘记原本真实的自己,一个人是忠于职位,还是忠于内心?

目录 一、职业面具戴久了,就会忘记原本真实的自己 二、霸王别姬 三、没有对错,各走各路 3.1 程蝶衣:戏里戏外,忠于角色 3.2 段小楼:戏里戏外,角色分明 3.3 没有对错,各走各路 四、职场中…

Linux文件管理与用户管理

一、查看文件内容 1、回顾之前的命令 cat命令、tac命令、head命令、tail命令、扩展:tail -f动态查看一个文件的内容 2、more分屏显示文件内容(了解) 基本语法: # more 文件名称 特别注意:more命令在加载文件时并不…

本地安装telepresence,访问K8S集群 Mac(m1) 非管理員

kubeconfig 一.安装telepresence 1.安装 Telepresence Quickstart | Telepresence (1)brew install datawire/blackbird/telepresence 2.配置 目录kubectl 将使用默认的 kubeconfig 文件:$HOME/.kube/config 创建文件夹&…

分享一个比对图片是否一致的小工具(来源: github)

运行效果图: 官网: GitHub - codingfishman/image-diff: 一个方便的图片对比工具一个方便的图片对比工具. Contribute to codingfishman/image-diff development by creating an account on GitHub.https://github.com/codingfishman/image-diff 优缺点: 1.采用比对各色块是…

idea 里 没有svn选项的处理办法

总结一下没有svn选项的几种情况: 情况1:IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法 在VCS菜单中有个开关,叫Enabled Version Control Integration,在打开的窗口…

ZY Player:影视爱好者的万能播放器

如果你是一位影视爱好者,一定有过为寻找一款支持各种影视资源、能解析VIP权限的播放器而头疼的经历。今天,我要为大家介绍一款被称为万能影视资源播放器的ZY Player,它由网友Hiram-Wong二次开发,并且是开源免费的 导航 强大的影视…

基于Java的旅游网站系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

数据模型设计必读方法论!很实用

数据架构的重要构件之一是数据模型,当然从数据架构的视角来说的数据模型是指企业级数据模型。本篇文章更多是讨论如何设计和管理数据模型,此处的数据模型是泛指在组织中通过数据建模的过程,来发现、分析和确定数据需求范围,并用于…