首页 > 其他分享 >实时数仓:基于数据湖的实时数仓与数据治理架构

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

时间:2025-01-05 23:59:31浏览次数:9  
标签:数仓 存储 架构 实时 Apache 工具 数据

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


一、架构整体概览

核心组成部分
  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. 治理系统维护成本高:需要持续投入开发和运维力量。

标签:数仓,存储,架构,实时,Apache,工具,数据
From: https://blog.csdn.net/z1941563559/article/details/144952815

相关文章

  • json保存数据
    ###说明1.**数据解析**:将每一行数据分割并转换为字典格式,日期作为键,其他数值作为列表。2.**保存为JSON**:使用`json.dump`将数据写入`data.json`文件中,格式化输出以便于阅读。importjson#原始数据data=[  '2022-01-28,1032.67,882.80,1171.13,873.02,101......
  • 华为eNSP综合实验-某大型银行数据中心(金融)网络拓扑图(可做毕业设计使用)
    文章目录拓扑图IP地址规划相关配置脚本简述需求拓扑图IP地址规划相关配置脚本简述需求文档+实验+地址规划表+视频讲解......
  • 《解锁数据新动能:数据标注工具与AI模型训练平台的无缝对接热潮》
    在当今人工智能飞速发展的时代,数据已然成为驱动其进步的核心燃料。而数据标注工具与人工智能模型训练平台的集成,实现数据的无缝流转,正逐渐成为行业内的关键热点,犹如为人工智能的发展装上了强劲的双引擎。为何集成如此关键数据标注是为数据赋予标签,使其能被人工智能模型理......
  • 招行面试:高并发写,为什么不推荐关系数据?
    本文原文链接文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完......
  • [数据结构学习笔记5] 队列(Queue)
    队列和堆栈类似,但是它是一种先进先出的结构。FIFO(firstinfirstout)。代码实现,javascriptclassQueue{constructor(){this.items=newLinkedList();}clear(){this.items=newLinkedList();}contains(item){......
  • 企业AI助理背后的技术架构:从数据到智能决策
    在当今数字化时代,企业AI助理已经成为推动企业数字化转型和智能化升级的重要工具。它们通过整合企业内外部数据资源,运用先进的算法和模型,为企业提供高效、精准的智能决策支持。本文将深入探讨企业AI助理背后的技术架构,从数据收集、处理、分析到智能决策的全过程进行剖析。一、数......
  • 8.Redis底层数据结构——ziplist和listpack
    一、ziplist1.1ziplist结构Redis采用紧凑的字节数组表示一个压缩列表,压缩列表结构示意图如下:<zlbytes><zltail><zllen><entry><entry>...<entry><zlend>zlbytes:压缩列表的字节长度,占4个字节,因此压缩列表最多有2*32-1个字节。zltail:压缩列表尾元素相对于压缩......
  • 基于ssm畅玩北海旅游网站,附源码+数据库+论文,包安装调试
    1、项目介绍基于ssm的畅玩北海旅游网站,分为用户和管理员用户-功能:登录、注册、首页、景点、美食、特产、新闻、我的、购物车、跳转到后台、我的订单、我的地址、景点收藏、特产收藏、酒店收藏管理员-功能:登录、管理员信息、用户管理、特产管理、景点管理、酒店管理、美食管......
  • 基于ssm智慧养老平台,附源码+数据库+论文,包安装调试
    1、项目介绍基于ssm的智慧养老平台,分为老人、家人、机构社区人员、管理员老人-功能:登录、个人中心、家人管理、服务记录管理、就诊记录管理、留言管理、求助服务管理、随访记录管理、娱乐活动管理、公告管理家人-功能:登录、个人中心、老人管理、家人管理、服务记录管理、就......
  • Udemy——Python数据结构与算法(11)
     课程:【Udemy高分付费课程】Python数据结构与算法-终极Python编码面试和计算机科学训练营(中英文字幕)_哔哩哔哩_bilibili算法归并排序基本思想归并排序是一种基于分治思想的排序算法。它的核心思想是将待排序序列不断分成两半,直到每一部分只有一个元素(此时认为是有序......