项目架构分享 —— 离线数仓

离线数仓-数据仓库系统 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。高性能:良好的数据模型能够帮助我们快速查询所需要的数据。低成本:良好的数据模型能减少重复计算,实现计算结果的复用,降低计算成本。高效率:良好的数据模型能极大的改善用户使用数据的体验,提高使用数据的效率。高质量:良好的数据模型能改善数据统计口径的混乱,减少计算错误的可能性。事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计。 阅读详情

项目背景

为了满足不断变化的业务需求,实现系统的高度扩展性、灵活性以及数据展现的高性能。

为什么要做离线数仓

为了整合数据和集中存储;

为了批量处理与历史分析;

为了支持决策和优化成本;

为了弥补实时数仓的短板;

用到的架构理论

分层理论

分布式处理核心理论

数据建模与存储格式理论

数据治理理论

用到的数仓理论

数据仓库概念

1991年Bill Inmon(比尔·恩门)出版了他的第一本关于数据仓库的书《Building the Data Warehouse》,标志着数据仓库概念的确立。书中指出,数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策(Decision-Making Support)。

离线数仓概念

离线数仓是通过‌批处理技术‌对分散的业务数据(如交易记录、日志等)进行周期性(如T+1)清洗、转换和存储的集中式数据平台,支持复杂查询与多维分析‌。例如,车险数仓通过Sqoop等工具采集业务数据,并按分层架构(ODS-DWD-DWS)组织存储,便于后续分析‌。

数据分层理论

数据应该进行分层,为了方便数据的管理和维护、数据质量控制、数据灵活分析。
分层设计有:
ods层:
dwd层:
dws层:
dim层:
tmp层:
ads层:

数据建模理论与方法之维度建模理论维度建模法

(实体建模法,范式建模法,维度建模法等)

维度建模法是一种常用的数据建模方法,特别适用于数据仓库和商业智能领域。它通过将数据组织成维度表和事实表的结构,以实现对业务过程的分析和报告。维度建模法注重对业务过程的理解和建模,以及对数据的分层和聚焦,使得数据仓库更易于使用和理解。

在维度建模法中,有两个核心概念:维度和事实。

维度(Dimensions):维度是描述业务过程的特征或属性的数据元素。它们提供了用于分析和过滤数据的上下文信息。常见的维度包括时间、地理位置、产品、客户、销售渠道等。维度通常作为维度表的基础,每个维度表对应一个特定的业务维度。
事实(Facts):事实是与业务过程相关的可度量的数据,即衡量业务过程中发生事件的数量或金额。事实表是存储事实数据的主要表,每个事实表通常包含多个度量(Measure)列,用于记录具体的业务指标,如销售额、销售数量、利润等。事实表通常与多个维度表进行关联,形成维度模型。
维度建模法的特点和优势包括:

简单直观:维度建模法以业务过程为中心,使数据模型更加直观和易于理解,便于业务用户参与数据分析和报表设计。
灵活可扩展:维度建模法支持灵活的数据分析和报表需求,可以方便地添加新的维度或度量,适应业务的变化和扩展。
查询性能优化:维度建模法通过合理的表设计和关联关系,优化了查询性能,使得数据检索和报表生成更高效。
可重用性和共享性:维度建模法中的维度表和事实表是可重用和共享的,可以为不同的报表和分析需求提供数据支持,避免了重复开发和数据冗余。

维度建模有三种模式:星型模式(常用),雪花模式,星座模式(常用)。

本项目采用《星型模式》

数据治理理论

管理数据质量,管理数据安全,管理元数据、主数据。

适用场景理论

  • 非实时分析‌:适用于报表生成、用户画像等时效性要求低的场景‌。
  • ‌成本效益‌:通过离线计算降低实时处理的高资源消耗‌。
  • 系统稳定性:通过离线计算减少对业务系统干扰。

流程

源数据分析:就是最开始的数据在哪里,日志,还是业务数据库,还是lot设备等等

主题分析:划分主题域(日志, 交易)

基于维度构建总线矩阵:

根据阿里巴巴OneData方法论,明确每个主题域中有哪些业务过程后,您需要开始定义维度,并基于维度构建总线矩阵。知道维度和事实

明确统计指标:

技术选型:

Flume:抓取日志

DataX:同步数据到mysql

Hive:ETL流程处理

Airflow: 任务调度

atlas: 元数据管理

Griffin: 质量监控

Mysql:业务指标存储

数据分层:

ods :将源数据变成一个整字符串存到这层,这些源数据是永久保存的。

dwd :从ods层数据中构建事实表,拉链表,宽表,要注意sql性能,数据倾斜等情况,必要时做优化

dws :以业务指标为驱动进行汇总计算,这个时候的数据范围比较大,或者说不够接近我们的主题域指标,这一步也是要注意sql性能,数据倾斜等情况,必要时做优化

dim :从ods层构建

ads:指标数据

数据建模:星型模型(没有那么复杂的业务就不用星座模型) 事实表:用户活跃记录表,事件记录表,广告记录表,订单表,订单明细表;维表:产品分类表,店铺表,商家区域表,支付方式表

指标汇总:用户汇总表,交易汇总表

指标数据生成:用户活跃数,新增用户数,留存用户数,交易订单数,广告曝光,点击等

数据下发:用DataX将指标数据表的数据下发到下游业务数据库Mysql

拓展一下几个工具比对

Flume、Sqoop和DataX的对比分析:

1. ‌核心功能定位‌

  • ‌Flume‌:专注于日志数据采集,支持分布式部署,适合实时流式数据传输场景,如日志聚合到HDFS或Kafka‌。
  • ‌Sqoop‌:专为Hadoop生态设计,主要用于关系型数据库与HDFS/Hive/HBase之间的批量数据交换‌。
  • ‌DataX‌:阿里开源的异构数据源离线同步工具,支持MySQL、Oracle、HDFS等20+数据源,适用于数据仓库构建和ETL流程‌。

2. ‌性能与资源占用‌

  • ‌内存占用‌:DataX较高,Flume中等,Sqoop依赖Hadoop资源消耗较大‌。
  • ‌并发能力‌:DataX单机性能较好,Flume支持分布式并行采集,Sqoop依赖MapReduce并行化‌。
  • ‌连接效率‌:Flume通过Agent集群优化网络传输,Sqoop和DataX需频繁建立JDBC连接,资源占用较高‌。

3. ‌扩展性与灵活性‌

  • ‌数据源支持‌:DataX > Flume > Sqoop(DataX支持20+种,Flume以日志类为主,Sqoop仅限关系型数据库和Hadoop组件)‌。
  • ‌数据转换‌:DataX支持自定义Groovy脚本,Flume通过拦截器实现简单转换,Sqoop仅支持基础列映射‌。
  • ‌实时性‌:Flume支持实时流式传输,DataX和Sqoop仅支持离线同步‌。

4. ‌部署与运维‌

  • ‌部署难度‌:Flume和DataX配置简单,Sqoop需依赖Hadoop生态,部署复杂度较高‌45。
  • ‌容错机制‌:Flume具备重试和故障转移能力,DataX需依赖外部调度系统实现容错,Sqoop错误处理较繁琐‌45。
  • ‌监控统计‌:Flume和DataX提供运行指标统计,Sqoop缺乏内置监控‌。

5. ‌适用场景建议‌

  • ‌Flume‌:日志采集、实时数据流(如用户行为日志、IoT设备数据)‌。
  • ‌Sqoop‌:Hadoop与关系型数据库间的批量数据迁移(如MySQL到Hive)‌。
  • ‌DataX‌:跨异构数据源的ETL作业(如Oracle到HDFS的离线同步)‌。

如需更详细的性能参数或企业级应用案例,可参考具体工具官方文档或社区实践报告‌

心得

离线数仓总体来说没什么特别难的东西,一个工具要比对,选择合适的,二个整个集群要配置合理,性能调优这些要做好,最后业务指标要仔细分析,一步一步来建模

离线数仓(一)【数仓概念、需求架构】 电商数仓-数仓概念 阅读详情

相关推荐

数仓建设(离线和实时)

文档大纲: 一、数仓基本概念 1. 数据仓库架构 我们在谈数仓之前,为了让大家有直观的认识,先来谈数仓架构,“架构”是什么?这个问题从来就没有一个准确的答案。这里我们引用一段话:在软件行业,一种被普遍接受的架构定义是指系统的一个或多个结构。结构中包括软件的构建(构建是指软件的设计与实现),构建的外部可以看到属性以及它们之间的相互关系。 这里参考此定义,把数据仓库架构理解成构成数据仓库的组件及其之间的关系,画出下面的数仓架构图: 数仓架构 上图中显示的整个数据仓库环境包括操作型系统和数据仓

ashan 5911

离线数据仓库

离线数据仓库知识点

小道的博客 5388

实时数仓和离线数仓的概念

目录 1、数据仓库的发展趋势 1.1数据仓库的趋势 1.2 数据仓库的发展 2、数据仓库架构的演变 2.1 传统数仓架构 2.2 离线大数据架构 2.3 Lambda架构 2.4 Kappa架构 2.5混合架构 3、三种大数据数据仓库架构 3.1 离线大数据架构 3.2 Lambda 架构 3.3 Kappa 架构 3.4 Lambda 架构与 Kappa 架构的对比 4、实时数仓建设思路 5、菜鸟实时数仓案例 5.1 整体设计 5.2 数据模型 6、美团点评基于...

一个记录普通男孩在IT界学习思考感悟的地方 2988

离线和实时数仓技术架构梳理

对目前流行的离线数仓和实时数仓架构进行了梳理和对比

Daphnis的博客 3993

关于离线数仓岗

数据仓库是一个面向主题的、集成的、稳定的、随时间变化的数据集合,用于支持管理决策。它与传统的数据库系统不同,主要用于分析和查询,而不是事务处理。以上是我对离线数仓岗位所需基础技能的总结,希望对大家有所帮助。

m0_58076578的博客 1万+

离线数仓总结

离线数仓总结 一、1、背景介绍(某APP上线后,由于业务模式新颖,市场需求量大,经过一段时间的精心运营后,逐渐积累起了上千万会员,以及三四百万的日活量, app的业务功能和产品种类、数量也急速膨胀;主要问题有:营销分析断层;产品迭代无法量化;用户运营不精准;全局运营指标监控不实时) 2、需求总览:流量域分析 2.1、基础数据分析(整体概况、用户获取、活跃与留存、事件转化、用户特征) 2.2、基础数据分析指标概览 整体概况:产品整体的使用情况,包括用户量、访问情况、留存等帮助对产品整体指标有一个大致的了解(累

wywwyx090104的博客 4153

数仓总结

0.自我介绍 1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 业务调研 需求调研 数据调研 业务域 主题域/数据域 CDM 总线矩阵 分层架构 定制规范 命名规范、开发规范、流程规范 维度建模 星座模型 宽表 粒度 指标体系 任务调度 数据质量 元数据管理 血缘关系 数据治理 BI可视化 OLAP多维分析 用户画像 推荐系统 2.如何建设数据中台?可简单说...

hechao_123的博客 548

大数据离线数仓开发全流程实战:从需求到落地的避坑指南

本文系统介绍了企业离线数据仓库(离线数仓)的开发方法与实战经验。首先阐述了离线数仓的核心价值,包括实现数据资产化、支持复杂分析、优化成本等方面,并列举了业务报表自动化、用户画像构建、风险建模等典型应用场景。随后详细解析了离线数仓开发全流程,涵盖需求分析、技术架构设计、ETL开发、任务调度与监控等关键环节。文章还通过某养老项目的实战案例,分享了多源数据整合、性能优化、数据安全合规等具体挑战的解决方案。最后总结了开发离线数仓的核心方法论,强调业务优先原则、合理分层设计和迭代开发思维,为企业在数字化转型中构建高效

2503_92085803的博客 1241

大数据面试吹牛草稿V2.0

大数据面试:吹牛之前先打个草稿!

yuan_more的博客 9360

带你了解大数据数仓架构与项目部署环境

千亿级数仓项目 # 总体介绍 阶段一 了解行业背景、了解项目背景,项目架构介绍、技术选型,项目环境(数据/硬件)介绍,项目ER图、项目需求介绍。 基于项目需求实现查询功能(写SQL)或整理出查询流程 阶段二 学习、掌握kettle的使用、使用kettle将项目需求所需的数据在MYsql同步到Hive 使用sqoop,将剩余的数据在MYsql同步到Hive 阶段三 学习数据仓库理论知...

4942

从URDF到仿真动画:基于Simulink、Simscape与S-Function的机械臂一体化建模与控制

本文详细介绍了从URDF文件到高保真仿真动画的一体化机械臂建模与控制流程。通过整合Simulink、Simscape与S-Function,构建了包含物理特性的虚拟机械臂模型,并实现了自适应滑模等高级控制算法的嵌入与验证。该流程打通了从机械设计到控制算法验证的闭环,为机器人开发提供了高效的仿真平台。

cnn8visionary的博客 697

实时数仓和离线数仓

文章目录1.什么是大数据平台?2.数仓和数据库的区别3.大数据技术栈4.数仓的分层5. 离线数仓架构和实时数仓架构离线数仓架构实时数仓架构对比6.数仓架构发展 1.什么是大数据平台? 数据日益增多部署hadoop集群采集录入数据构建数据仓库数据统一计算任务统一调度数据统一查询用户统一使用 2.数仓和数据库的区别 项目 Hive RDBMS 查询语言 HQL SQL 数据存储 HDFS 本地磁盘 索引 无 有 执行 MapReduce Executor 执行延时 高 低 数

大数据AI笔记 8747

Deepseek+Word插件:一键搞定论文翻译与润色的学术写作新革命

本文介绍了Deepseek Word插件如何革新学术写作流程,实现论文翻译与润色的一键操作。该插件深度集成于Word环境,能智能完成中英互译、语法修正、术语统一及逻辑优化,显著提升写作效率与文本质量,是研究者的高效AI助手。

weixin_29252171的博客 511

离线数仓项目实战!其一环境配置

数仓项目实战的环境配置,可做为毕设。

出发行进 2976

海思Hi3061M MCU:为高速吹风筒市场注入智能动力

此外,海思还提供了丰富的软件开发工具和生态环境组件,帮助开发者快速实现复杂功能。高速吹风筒因其高效的风力和快速的干燥效果,近年来在市场上越来越受欢迎。然而,传统的高速吹风筒在性能、噪音和使用寿命等方面仍有改进的空间。凭借其高性能、低功耗、低噪声和易用的开发工具,为高速吹风筒市场带来了全新的解决方案。这不仅提高了用户的使用体验,还延长了电机的使用寿命。这不仅减少了电机的电磁噪声,还提高了电机的运行效率。还支持风机顺逆风启动适配多种电阻范围的电机,进一步提高了吹风筒的适用性和灵活性。

2401_83448585的博客 2016

uniapp:在map地图组件上添加控件,在地图上添加浮层展示自定义按钮或元素,uniApp如何在Map组件地图上添加悬浮在上面的图标/图片(全平台兼容安卓苹果app、H5网页、微信小程序、nvue)

uni-app的map添加控件问题,uniapp实现地图展示控件,uniapp小程序如何在map组件上增加按钮,uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,Uniapp腾讯地图添加控件,uniapp百度地图添加控件,地图上展示控件并可以点击,在地图上展示控件信息,uniapp map地图怎么向地图上增加工具栏,使用cover-view将控件在地图上展示,解决uniapp map上添加浮层无法显示问题,不显示怎么办,css样式不生效,地图等最高层

✅ 精选推荐文章 3230

大数据开发,聊聊离线数仓和实时数仓

进入大数据时代,大数据存储的解决方案,往往涉及到数据仓库的选型策略。从传统时期的数据仓库,到大数据环境下的数据仓库,其核心的技术架构是在随着最新技术趋势而变化的。今天的大数据开发学习分享,我们就来讲讲,大数据环境下的数据仓库。 数据仓库的概念,最早是在1991年被提出,而直到最近几年的大数据趋势下,实时数据处理快速发展,使得数据仓库技术架构不断向前,出现了实时数仓,而实时数仓又分为批数据+流数据、批流一体两种架构。1、离线数仓 离线数仓,其实简单点来说,就是原来的传统数仓,数据以T+1的形式计算好放

shuimuzh123的博客 8119

SAP 中配置权限职责菜单并分配给用户的核心流程是:用PFCG 创建 / 维护角色(含菜单、事务码、权限)→ 生成权限参数文件 → 通过 SU01/SU10 将角色分配给用户

SAP权限配置核心流程:1)通过PFCG创建角色,配置菜单事务码及权限对象;2)生成权限参数文件;3)用SU01/SU10分配角色给用户。关键步骤包括:在PFCG中维护菜单结构、设置权限字段值、生成Profile,通过用户比较验证权限。批量分配可用SU10,特殊需求可创建复合角色或自定义权限对象。常见问题需检查权限缺失(SU53)、菜单分配及组织级别设置。流程简化为:创建角色→配置权限→分配用户→验证生效。

金牌架构师 1273

实时数仓、离线数仓与湖仓一体的实践与应用

实时数仓、离线数仓和湖仓一体架构不仅仅是技术趋势,更是提升企业数据处理能力的关键。

技术是修行,跑步亦是修行。 1229

STM32入门教程:智能汽车控制

智能汽车是近年来快速发展的领域之一,它结合了嵌入式系统、传感器和通信技术,通过智能化的控制算法和决策系统实现自主导航、避障、环境感知等功能。在这篇教程中,我们将以 STM32 微控制器为核心,通过编写代码案例来介绍智能汽车的控制原理和实现方法。步骤三:决策与执行 最后,我们根据传感器数据做出相应的决策,并执行相应的动作。案例:智能汽车的避障功能 在这个案例中,我们将实现智能汽车的避障功能。感知系统负责感知汽车周围的环境,包括障碍物的距离、车辆的角度等信息。下面我们通过一个具体的案例来演示代码的编写。

2401_85258012的博客 927

2022年8月27日全国青少年信息素养大赛Python编程小学组决赛真题+答案解析

2022年8月27日全国青少年信息素养大赛Python编程小学组决赛真题+答案解析

伶俐角少儿编程 454

实时数仓和离线数仓还分不清楚?看完就懂了

数据仓库分为离线数仓和实时数仓两大类型。离线数仓采用批处理模式,通过Hive等工具处理T+1数据,适用于海量历史数据分析;实时数仓则基于流处理技术,使用Kafka、Flink等实现秒级数据处理,满足即时分析需求。二者核心区别体现在架构设计(Lambda/Kappa)、建设方法(主题建模)和数据保障机制上。实时数仓建设需重点关注业务需求、技术选型(数据采集、处理、存储层)和监控体系。企业应根据时效性要求、数据规模等实际需求,选择适合的架构方案或将两者融合,充分发挥数据价值。

oOBubbleX的博客 968

芯片原厂linux驱动开发的分享

大家好,我是XX,来自湖南XX学院,电子信息18级,也曾在创新基地控制组学习过两三年,毕业后就职于一家芯片原厂的解决方案部,担任驱动工程师的职位,算上实习期,我的工作时长已有两年。在此我想将这两年期间学习与积累到的一些经验输出出来,与大家一同分享。知识面有限,只能简单介绍一些驱动开发方向的一些经验,且由于经验尚浅,文中难免会有一些疏漏和错误之处,还请大家积极地批评指正。

嵌入式技术开发 847

数据仓库简介、发展、架构演进、实时数仓建设、与离线数仓对比

原文地址:https://ververica.cn/developers/how-to-do-real-time-counting/ 数据仓库也是公司数据发展到一定规模后必然会提供的一种基础服务,数据仓库的建设也是“数据智能”中必不可少的一环。本文将从数据仓库的简介、经历了怎样的发展、如何建设、架构演变、应用案例以及实时数仓与离线数仓的对比六个方面全面分享关于数仓的详细内容。 1. 数据仓库简...

magic_kid_2010的专栏 2313

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

如何对离线数仓和准实时数仓进行精准把控?

数仓是指将企业中各个业务系统产生的数据进行汇总、清洗、转化和整合,以便为企业提供决策支持和数据分析的存储和管理系统。 离线数仓和准实时数仓,两种数据仓库模式,有着不同的特点,应用场景不同选择也不同。 本文将深入探讨离线数仓与准实时数仓的概念、特点等,分析如何对数仓建设进行精准把控。

oOBubbleX的博客 1339

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大数据实战之离线数仓整体规划

前言 大家好,从今天开始,我们将进入到离线数仓项目搭建系列,一来是想对自己所学和实践做一个系统性归纳和结合,二来也是为了给大家多分享一些心得。【在此过程中,有任何疑问或想法,均可在QQ群139809179中提出交流】 背景 2014年,马云爸爸提出,“人类正从 IT 时代走向 DT (Data Technology)时代“。JDC的报告显示:预计到 2020 年,全球数据总量将超过 40ZB(相当于 40万亿 GB )。“十三五”规划纲要也明确提...

周星星 1073

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 大数据常见问题分析与解决方案
下一篇: SparkSQL、FlinkSQL与普通sql比较
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值