大数据-数据仓库-实时数仓架构分析

简介: 大数据-数据仓库-实时数仓架构分析

数仓分层

分层 全称 译名 说明 生成计算工具 存储媒介 压缩 列式存储 分区
ODS Operation Data Store 原始层 原始数据 FlinkCDC Kafka ✅ ❌ ✅
DIM Dimension 维度层 合并维度表 Flink HBase ✅ ✅ ✅
DWD Data Warehouse Detail 明细层 数据处理、维度建模 Flink Kafka ✅ ✅ ✅
DWM Data Warehouse Middle 中间层 聚合 Flink Kafka ✅ ✅ ✅
DWS Data Warehouse Service 服务层 去主键聚合,得到原子指标 Flink Clickhouse ✅ ✅ ✅
DWT Data Warehouse Topic 主题层 存放主题对象的累积行为 ✅ ✅ ✅
ADS Application Data Store 应用层 具体业务指标 Clickhouse 可视化展示、用户画像、推荐系统、机器学习 ❌ ❌ ❌
  • ODS:原始数据,行为日志数据和业务数据 放到 Kafka
  • DIM:维度数据(业务数据-维度表)
  • DWD:根据数据对象为单位进行分流,比如订单、页面访问等等(业务数据-事时数据、行为数据)
  • DWM:对于部分数据对象进行进一步加工,比如独立访问、跳出行为,也可以和维度进行关联,形成宽表,依旧是明细数据。
  • DWS:根据某个主题将多个事实数据轻度聚合,形成主题宽表。
  • ADS:把ClickHouse中的数据根据可视化需进行筛选聚合

命名规范

库名:业务大类

表名:分层名_业务细类

临时表:temp_表名

备份表:bak_表名

视图:view_表名(场景:不共享的维度表、即席查询)

分层 命名规范 说明 例
ODS ods+源类型+源表名+full/i full:全量同步
i:增量同步
ods_postgresql_sku_full
ods_mysql_order_detail_i
ods_frontend_log
DIM dim+维度+full/zip full:全量表
zip:拉链表
日期维度表没有后缀
dim_sku_full
dim_user_zip
dim_date
DWD dwd+事实+full/i full:全量事实
i:增量事实
DWS dws+原子指标 时间粒度有1d、1h…
1d:按1天
1h:按1小时
dws_page_visitor_1d
DWT dwt_消费者画像
ADS ads+衍生指标/派生指标

离线数仓:事实表,维度表,都放Hive

实时数仓:原始数据放 Kafka,维度数据 放 HBase,Phoenix

  • 离线计算:就是在计算开始前已知所有输入数据,输入数据不会产生变化,一般计算量级较大,计算时间也较长。例如今天早上一点,把昨天累积的日志,计算出所需结果。最经典的就是 Hadoop 的 MapReduce 方式;
    一般是根据前一日的数据生成报表,虽然统计指标、报表繁多,但是对时效性不敏感。从技术操作的角度,这部分属于批处理的操作。即根据确定范围的数据一次性计算。
  • 实时计算:输入数据是可以以序列化的方式一个个输入并进行处理的,也就是说在开始的时候并不需要知道所有的输入数据。与离线计算相比,运行时间短,计算量级相对较小。强调计算过程的时间要短,即所查当下给出结果。
    主要侧重于对当日数据的实时监控,通常业务逻辑相对离线需求简单一下,统计指标也少一些,但是更注重数据的时效性,以及用户的交互性。从技术操作的角度,这部分属于流处理的操作。根据数据源源不断地到达进行实时的运算。
  • 即席查询: 需求的临时性,小李,把两星期的数据拉给我看下(只在这个时刻需要)
    Presto: 当场计算(基于内存速度快)
    Kylin:预计算(提前算好),多维分析(Hive With Cube)

Sqoop 导入数据方式:

  • 增量: where 1=1、
  • 全量: where 创建时间=当天、
  • 新增及变化:where 创建时间=当天 or 操作时间=当天、
  • 特殊(只导入一次)
    Flume:
  • tailDirSource
    优点:断点续传,监控多目录多文件
    缺点:当文件更名之后,重新读取该文件造成数据重复
    注意:1. 要使用不更名的打印日志框架(logback)--一般logback 也会设置成更名的,每天一个日志文件,文件名带上日期,如果写死文件名,更名后可能会丢数据
    2.修改源码,让TailDirSource判断文件时,只看 iNode 值
  • KafkaChannel
    优点:将数据导入Kafka,省了一层Sink
    Kafka:生产者、消费者
    用法:1. Source-KafkaChannel-Sink
    2. Source-KafkaChannel
    3. KafkaChannel-Sink

逻辑线: 数据流、监控、优化、配置。

Kafka

  • Producer:ACK、拦截器、序列化器、分区器、发送流程、事务、幂等性,分区规则-->有指定分区发到指定分区,没有根据Key进行hash,都没有进行轮询(粘性)
  • Broker: Topic 副本-> 高可用 ISR LEO、HW ;分区:高并发、负载均衡(防止热点)
  • Consumer:分区分配规则 offset 保存(默认:_consumer_offsets 主题、其它:手动维护Offerset(MySQL)带事务,精准一次消费

分层的好处

  • 复杂问题拆解为多层
  • 减少重复开发(可以去中间层取数,不用每次都去原始层)
  • 隔离原始数据,例如:异常数据、敏感数据(用户电话…)

数据存储策略

  • 原始层保持数据原貌,不进行脱敏和清洗
  • 创建分区表(例如:日期分区),防止全表扫描
  • 数据压缩,减少磁盘占用(如:LZO、gzip、snappy)
  • 列式存储提高查询效率(如:Parquet、ORC)

离线架构:追求系统的稳定性、考虑到公司未来的发展,数据量一定会变得很大、早期的时间实时业务使用 SparkStreaming(微批次)

  • 优点:耦合性低、稳定性高
  • 缺点:时效性差

实时架构:Kafka集群高可用,数据量小,所有机器存在同一个机房,传输没有问题,

  • 优点:时效性好 Flink
  • 缺点:耦合性高,稳定性低

大数据-数据仓库-实时数仓架构分析

大数据-业务数据采集-FlinkCDC

大数据 - DWD&DIM 行为数据

大数据 - DWD&DIM 业务数据

大数据 DWM层 业务实现

目录
相关文章
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
871 4
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
JSON 大数据 API
巧用苏宁易购 API,精准分析苏宁易购家电销售大数据
在数据驱动的电商时代,精准分析销售数据能助力企业优化库存、提升营销效果。本文详解如何利用苏宁易购API获取家电销售数据,结合Python进行数据清洗与统计分析,实现销量预测与洞察提取,帮助企业降本增效。
|
存储 SQL 分布式计算
终于!大数据分析不用再“又要快又要省钱”二选一了!Dataphin新功能太香了!
Dataphin推出查询加速新功能,支持用StarRocks等引擎直连MaxCompute或Hadoop查原始数据,无需同步、秒级响应。数据只存一份,省成本、提效率,权限统一管理,打破“又要快又要省”的不可能三角,助力企业实现分析自由。
649 49
|
存储 SQL 机器学习/深度学习
一文辨析:数据仓库、数据湖、湖仓一体
本文深入解析数据仓库、数据湖与湖仓一体的技术原理与适用场景。数据仓库结构严谨、查询高效,适合处理结构化数据;数据湖灵活开放,支持多模态数据,但治理难度高;湖仓一体融合两者优势,实现低成本存储与高效分析,适合大规模数据场景。文章结合企业实际需求,探讨如何选择合适的数据架构,并提供湖仓一体的落地迁移策略,助力企业提升数据价值。
一文辨析:数据仓库、数据湖、湖仓一体
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。