当前位置: 首页 > news >正文

实时数仓:基于数据湖的实时数仓与数据治理架构

设计一个基于数据湖的实时数仓与数据治理架构,需要围绕以下几个核心方面展开:实时数据处理、数据存储与管理、数据质量治理、数据权限管理以及数据消费。以下是一个参考架构方案:


一、架构整体概览

核心组成部分
  1. 数据源层

    • 数据来源:多样化的数据源(OLTP数据库、日志系统、IoT设备、API接口等)。
    • 数据类型:结构化、半结构化(JSON、CSV)、非结构化(图片、视频)。
  2. 数据接入层

    • 工具:使用 Flink CDCDebezium 捕获数据库变更;通过 KafkaPulsar 作为数据流传输工具。
    • 实现:实时采集和流式数据传输,支持批流融合。
  3. 数据存储层

    • 湖仓一体化存储
      • 使用 Hudi/Iceberg/Delta Lake 作为数据湖存储格式,提供流批融合的 ACID 事务支持。
      • 元数据管理工具:集成 Apache Hive MetastoreAWS Glue
      • 分层存储:
        • ODS层:原始数据按时间分区存储。
        • DWD层:清洗后数据,按主题域区分,增强列式存储优化。
        • DWS层:宽表或汇总数据,支持实时与离线分析。
        • ADS层:直接服务于BI和报表需求。
  4. 数据处理层

    • 实时处理
      • 使用 Flink Structured StreamingSpark Structured Streaming 处理实时流数据。
      • 实现基于事件驱动的实时数据加工。
    • 离线处理
      • 使用 Spark SQLHive 定期对冷数据做批量清洗和汇总。
    • 查询加速
      • Doris 提供在线分析服务,支持对实时数仓和数据湖查询加速。
  5. 数据消费层

    • BI工具:如 Apache Superset、Tableau
    • 实时监控:通过 Grafana 或自研监控平台展示实时指标。
    • 数据接口:通过 REST API 或 GraphQL 提供服务。
  6. 数据治理层

    • 数据质量:Great Expectations 或自研工具,监控数据准确性、一致性、完整性。
    • 数据权限:集成 Apache RangerAWS Lake Formation,实现细粒度权限控制。
    • 数据血缘:通过 Apache Atlas 构建血缘追踪系统。

二、架构设计细节

1. 实时数据处理架构
  • 工具选择
    • Kafka:实时数据管道,存储流数据。
    • Flink Structured Streaming:低延迟的流式处理框架。
    • Hudi/Iceberg/Delta Lake:支持实时写入与批量读取。
  • 流处理流程
    1. 事件驱动
      • 例如:电商订单事件,基于订单状态变化驱动实时处理。
    2. 时间驱动
      • 例如:按时间窗口计算销售汇总数据(1分钟/1小时)。
2. 数据湖存储架构
  • 数据按 主题域时间分区 存储:
    • ODSods/{业务域}/{表名}/{年}/{月}/{日}/{小时}
    • DWDdwd/{业务域}/{表名}/{年}/{月}/{日}
    • DWSdws/{业务域}/{汇总主题}/{年}/{月}
    • ADSads/{业务域}/{分析主题}/{年}/{月}
  • 数据湖存储格式:选择支持事务的格式(Hudi、Iceberg)。
3. 数据治理实现
  1. 数据质量管理
    • 定义质量规则:
      • Null值校验、唯一性校验、值域校验。
    • 工具:通过 Great Expectations 自动化校验规则。
  2. 数据权限管理
    • 设置访问策略:
      • 按主题域、角色分配细粒度权限。
    • 工具:使用 Apache Ranger
  3. 数据血缘管理
    • 构建数据流向:
      • 数据从 Kafka -> Flink -> Hudi -> Doris 的全链路血缘图。
    • 工具:Apache Atlas
4. 数据消费设计
  • BI报表和实时监控:
    • 将指标数据实时暴露到 Doris,供 Superset 或其他BI工具使用。
  • API服务:
    • 提供基于实时数仓的接口服务,支持企业内部应用快速访问。

三、架构优点与挑战

优点
  1. 实时性强:利用事件驱动和流处理,实时响应数据变化。
  2. 灵活扩展:湖仓一体化架构,支持高效存储和查询。
  3. 数据治理完备:实现从质量、权限到血缘的全面管理。
挑战
  1. 实时任务复杂度高:Flink流任务设计需要更高的工程能力。
  2. 数据湖性能优化:Hudi/Iceberg在查询性能上仍需精心设计分区和索引。
  3. 治理系统维护成本高:需要持续投入开发和运维力量。

相关文章:

实时数仓:基于数据湖的实时数仓与数据治理架构

设计一个基于数据湖的实时数仓与数据治理架构,需要围绕以下几个核心方面展开:实时数据处理、数据存储与管理、数据质量治理、数据权限管理以及数据消费。以下是一个参考架构方案: 一、架构整体概览 核心组成部分 数据源层 数据来源&#xff…...

STM32 拓展 RTC案例1:使用闹钟唤醒待机模式 (HAL库)

需求描述 执行完毕正常代码之后,让MCU进入待机模式,设置闹钟,自动让MCU从待机模式中被唤醒。可以用led点亮熄灭显示是否唤醒。 应用场景:比如设计一个野外温度自动采集的设备,规定每小时采集一次温度,就可…...

ESP32S3使用串口0作为LOG输出

配置 配置串口,在内存保护这个选项里Memory protection 修改内存申请函数 测试代码 uint8_t buf1 heap_caps_malloc(320*240 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); ESP_LOGI("Test", "%d", buf1);sprintf(buffer, " Biggest / …...

Linux:深入了解fd文件描述符

目录 1. 文件分类 2. IO函数 2.1 fopen读写模式 2.2 重定向 2.3 标准文件流 3. 系统调用 3.1 open函数认识 3.2 open函数使用 3.3 close函数 3.4 write函数 3.5 read函数 4. fd文件描述符 4.1 标准输入输出 4.2 什么是文件描述符 4.3 语言级文件操作 1. 文件分类…...

springboot 集成 etcd

springboot 集成 etcd 往期内容 ETCD 简介docker部署ETCD 前言 好久不见各位小伙伴们,上两期内容中,我们对于分布式kv存储中间件有了简单的认识,完成了docker-compose 部署etcd集群以及可视化工具 etcd Keeper,既然有了认识&a…...

03_Redis基本操作

1.Redis查询命令 1.1 官网命查询命令 为了便于学习Redis,官方将其用于操作不同数据类型的命令进行了分类整理。你可以通过访问Redis官方网站上的命令参考页面https://redis.io/commands来查阅这些分组的命令,这有助于更系统地理解和使用Redis的各项功能。 1.2 HELP查询命令…...

pycharm-pyspark 环境安装

1、环境准备:java、scala、pyspark、python-anaconda、pycharm vi ~/.bash_profile export SCALA_HOME/Users/xunyongsun/Documents/scala-2.13.0 export PATH P A T H : PATH: PATH:SCALA_HOME/bin export SPARK_HOME/Users/xunyongsun/Documents/spark-3.5.4-bin…...

Unity + Firebase + GoogleSignIn 导入问题

我目前使用 Unity版本:2021.3.33f1 JDK版本为:1.8 Gradle 版本为:6.1.1 Firebase 版本: 9.6.0 Google Sign In 版本为: 1.0.1 问题1 :手机点击登录报错 apk转化成zip,解压,看到/lib/armeabi-v…...

web-app uniapp监测屏幕大小的变化对数组一行展示数据作相应处理

web-app uniapp监测屏幕大小的变化对数组一行展示数据作相应处理 1.uni.getSystemInfoSync().screenWidth; 获取屏幕宽度 2.uni.onWindowResize() 实时监测屏幕宽度变化 3.根据宽度的大小拿到每行要展示的数量itemsPerRow 4.为了确保样式能够根据 items…...

2025年VGC大众汽车科技社招入职测评综合能力英语口语SHL历年真题汇总、考情分析

早在1978年,大众汽车集团就开始了与中国的联系。1984年,集团在华的第一家合资企业—上汽大众汽车有限公司奠基成立;1991年,一汽-大众汽车有限公司成立;2017年,大众汽车(安徽)有限公司…...

Linux中配置Java环境变量

基本工作 1.官网下载java 1.8地址(需要注册一个oracle账户): Java Downloads | Oracle 点击上面的链接,滚动页面到最下面就可以看到下载界面,如下图 选择适合自己系统的版本。 本文选用 jdk-8u431-linux-x64.tar.g…...

完全自定义Qt翻译功能,不使用Qt Linguist的.ts 和 .qm类型翻译

这篇文章展示了集成Qt Linguist 的功能。 但是有时候Qt的翻译功能比较繁琐,我们简单项目只需要使用本地化功能,将中文字符串导入到项目中,避免编码格式问题导致的乱码。 只需要使用一个简单的json或者其他格式的本地文件作为映射的key/value.…...

551 灌溉

常规解法&#xff1a; #include<bits/stdc.h> using namespace std; int n,m,k,t; const int N105; bool a[N][N],b[N][N]; int cnt; //设置滚动数组来存贮当前和下一状态的条件 //处理传播扩散问题非常有效int main() {cin>>n>>m>>t;for(int i1;i&l…...

php函数性能优化中应注意哪些问题

PHP 函数性能优化中的注意事项 在 PHP 应用中优化函数性能对于提升整体运行效率至关重要。以下是一些需要注意的关键问题&#xff1a; 1. 避免内联变量 将变量内联到函数调用中会增加不必要的开销。例如&#xff1a; function sum($a, $b) {return $a $b; }// 不要这样做&…...

安科瑞 Acrel-1000DP 分布式光伏监控系统在工业厂房分布式光伏发电项目中的应用

吕梦怡 18706162527 摘 要&#xff1a;常规能源以煤、石油、天然气为主&#xff0c;不仅资源有限&#xff0c;而且会造成严重的大气污染&#xff0c;开发清洁的可再生能源已经成为当今发展的重要任务&#xff0c;“节能优先&#xff0c;效率为本”的分布式发电能源符合社会发…...

鼠标自动移动防止锁屏的办公神器 —— 定时执行专家

目录 ◆ 如何设置 ◇ 方法1&#xff1a;使用【执行Nircmd命令】任务 ◇ 方法2&#xff1a;使用【模拟键盘输入】任务 ◆ 定时执行专家介绍 ◆ 定时执行专家最新版下载 ◆ 如何设置 ◇ 方法1&#xff1a;使用【执行Nircmd命令】任务 1、点击工具栏第一个图标【新建任务】&…...

各种特种无人机快速发展,无人机反制技术面临挑战

随着科技的飞速发展&#xff0c;各种特种无人机在军事、民用等领域得到了广泛应用&#xff0c;其性能不断提升&#xff0c;应用场景也日益丰富。然而&#xff0c;无人机反制技术的发展确实面临一定的挑战&#xff0c;难以完全跟上无人机技术的快速发展步伐。以下是对这一问题的…...

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…...

HTML实战课堂之启动动画弹窗

一&#xff1a;代码片段讲解 小提示&#xff1a;下面是一个包含启动页和弹窗的完整示例。这个示例包括一个简单的启动页和一个弹窗&#xff0c;当用户点击启动页上的按钮时&#xff0c;会显示弹窗。 1. **HTML结构**&#xff1a; - #startPage&#xff1a;启动页&#xff0c;包…...

将本地的 Git 仓库上传到 GitHub 上(github没有该仓库)

文章目录 步骤 1&#xff1a;在 GitHub 上创建新仓库步骤 2&#xff1a;配置本地仓库步骤 3&#xff1a;添加远程仓库地址步骤 4&#xff1a;推送本地代码到 GitHub验证上传 步骤 1&#xff1a;在 GitHub 上创建新仓库 登录 GitHub&#xff1a; 打开浏览器并访问 GitHub。使用自…...

新手开发者首次在Taotoken模型广场选型与试用的全过程记录

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 新手开发者首次在Taotoken模型广场选型与试用的全过程记录 作为一名刚开始接触大模型应用的开发者&#xff0c;我最近尝试了Taotok…...

OpenClaw 环境搭建|可视化操作零门槛

&#x1f4cc; OpenClaw 一键安装包&#xff5c;一键部署&#xff0c;告别复杂环境配置 适配系统&#xff1a;Windows10/11 64 位当前版本&#xff1a;v2.7.5&#xff08;虾壳云版&#xff09; ⭐ 核心优势 全程可视化操作&#xff0c;无需命令行、无需手动配置 Python/Node…...

零基础转专业计算机机试,我用这5道题帮你摸清浙工大出题套路(附C++代码)

零基础转专业计算机机试&#xff1a;5道真题破解浙工大出题密码&#xff08;附C实战代码&#xff09; 第一次面对计算机转专业机试时&#xff0c;我盯着屏幕上闪烁的光标&#xff0c;手指悬在键盘上方却不知从何下手。那种面对陌生题型的茫然感&#xff0c;至今记忆犹新。现在作…...

如何通过内存注入技术在英雄联盟国服实现安全换肤?

如何通过内存注入技术在英雄联盟国服实现安全换肤&#xff1f; 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 想象一下&#xff0c;你正在峡谷中奋战&…...

如何用Python自动化脚本轻松抢到大麦网演唱会门票:终极指南

如何用Python自动化脚本轻松抢到大麦网演唱会门票&#xff1a;终极指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到心仪演唱会门票而烦恼吗&#xff1f;当周杰伦、五月天等热门演…...

百考通:AI让每一份调研与设计都高效落地

在数字化时代&#xff0c;市场调研、产品设计、学术研究等场景中&#xff0c;问卷设计作为核心环节&#xff0c;直接影响着数据收集的质量与工作推进的效率。传统问卷设计往往面临流程繁琐、耗时耗力、问题设计不精准等痛点&#xff0c;而百考通&#xff08;https://www.baikao…...

避坑指南:ArcGIS提取的DEM高程点,为什么在Global Mapper里显示为平面?

跨平台高程数据互操作&#xff1a;解决ArcGIS与Global Mapper的字段兼容性问题 当你第一次将ArcGIS中精心提取的DEM高程点导入Global Mapper&#xff0c;期待看到起伏的地形时&#xff0c;却发现所有点都平铺在一个平面上——这种挫败感我深有体会。这不是软件故障&#xff0c;…...

PCB半孔工艺的‘暗坑’全揭秘:从锣刀转速到孔铜结合力,资深CAM工程师的避雷手册

PCB半孔工艺的‘暗坑’全揭秘&#xff1a;从锣刀转速到孔铜结合力&#xff0c;资深CAM工程师的避雷手册 在高速通信模块和微型化硬件设计中&#xff0c;半孔工艺正成为PCB制造领域的关键技术节点。这种将金属化孔沿轴线剖开形成半圆形导电结构的工艺&#xff0c;虽能节省空间并…...

一款面向高清多媒体应用的高性价比解决方案

Hi-CHIP C3100是一款面向高清多媒体应用的高性价比解决方案。它集成了高性能32位RISC CPU与强大的多媒体处理系统&#xff0c;支持2K视频解码和显示&#xff0c;并提供丰富的外设接口。主要规格与特性特性类别具体规格CPU双核高性能32位RISC CPU&#xff0c;性能达2000 DMIPS&a…...

告别手动操作:用Python自动化COMSOL仿真的3个关键突破

告别手动操作&#xff1a;用Python自动化COMSOL仿真的3个关键突破 【免费下载链接】MPh Pythonic scripting interface for Comsol Multiphysics 项目地址: https://gitcode.com/gh_mirrors/mp/MPh 你是否也曾为COMSOL的重复性仿真任务感到疲惫&#xff1f;每天花费数小…...