我理解的数仓项目

本文介绍了作者理解的数仓项目架构,包括离线和实时两个部分。离线数仓使用Kettle进行ETL,数据经过HDFS、Hive分层处理,ODS、DW、DM、ADS各层分别对应预处理、数据拉宽、部门需求及BI工具。引入Kylin提供快速查询。实时数仓则采用Flume采集日志,Kafka作为消息队列,Flink进行流处理,结合Redis、HBase、Phoenix和Druid实现毫秒级指标计算。最后通过Superset进行数据可视化。
摘要由CSDN通过智能技术生成

我理解的数仓项目

我会从数据的流向来梳理整个架构.

  • 离线数仓:(对产生的数据进行处理,一般处理T+1数据.)

  • 订单数据保存在mysql数据库中,通过kettle进行ETL
    (进行数据的抽取,基本的预处理 转换装载到HDFS中)

  • 这里用到hive数据仓库工具,hive 数据保证在hdfs中,运用hsql对数据进行操作,
    底层进行mapreduce.

  • 对数仓进行分层.

  • ods 层 预处理后的数据
    dw 层 对数据进行拉宽 确定事实表 维度表 这里用到一个星型模型

  • dm 层 数据集市层 根据部门需求 可以不同的指标计算

  • ADS 层 指标数据 供BI工具进行调用.

  • 以后可以通过存储到hsql,web前段连接数据库进行展示.

  • 为应对不同需求,指标会频繁发生变更,但确不能及时迅速的调取数据ods指标数据.引入了一款kylin组件.

  • kylin 只需要调用hive 中dw层,指定事实表,指定维度.生成模块,在生成cube.
    现在支持mapreduce 和spark 引擎.

  • kylin 可以 根据事实表 维度 生成不同维度的数据.而且支持类sql 查询.
    前端可以直接连接,前端工程师可以通过写简单的sql得到想要的指标.

  • 实时数仓:(数据流时刻都在产生,要求数据产生后就能到想要的指标数据,可以得到毫秒级)

  • 数据源1.Nginx服务器采集用户的点击流日志保存到本地文件,使用Flume对日志采集,
    数据源2:Canal通过读写binlog日志读取mysql的数据.

  • 两类数据连接到kafka中,(kafka消息队列起到消峰限流的作用)

  • 在kafka中,建两个topic

  • 数据源1: topic_click_log
    据源2 :topic_canal

  • 通过flinkkafkaconsumer011 整合kafka消费数据

  • Flink 流处理系统 计算访问指标 实时ETL 订单的明细数据拉宽 这里redis存储指标数据
    实时ETL 处理后的数据推回到kafka 中 这里即为topic_dws

  • 这里用到专用大数据存储数据工具 hbase列式存储 支持rowkey字段查询.
    为了解决这个问题,这里用到phonenix 这是一款sql执行引擎 通过建立关联视图 实现了二级索引.

  • 同样为了解决需求指标变更频繁的问题,这里用到一个新的Druid框架

  • 可以对接kafaka 中 topic_dws 提供sql引擎进行数据分析.

  • 最后可视化工具 这里用到的是superset

  • 对接kylin 对接 redis 对接 druid 这样就完成了整个数仓项目的搭建.

最后附上整个项目的架构图,希望给看到这篇文章的小伙伴有所帮助.

这样就完成了整个数仓项目的搭建.

最后附上整个项目的架构图,希望给看到这篇文章的小伙伴有所帮助.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值