离线数仓
文章平均质量分 86
以Hadoop和Hive为主体的离线数仓文章汇总,包括离线数仓各种建模和具体代码的实现
电光闪烁
一个大数据开发工程师的学习之路
展开
-
离线数仓文章汇总
离线数仓文章汇总:离线数仓(1):什么是数据仓库离线数仓(2):数据仓库相关架构和规范离线数仓(3):数仓理论之范式理论离线数仓(4):数仓理论之关系建模和维度建模离线数仓(5):数仓理论之维度表和事实表离线数仓(6):数仓理论之维度模型分类1离线数仓(8):ODS层实现之导入流量日志1...原创 2022-08-30 22:37:14 · 549 阅读 · 0 评论 -
离线数仓(12):DWD层实现之流量日志解析
针对流量日志,在ODS层很多流量日志主题会聚合在一起(博主这里ODS层分为9个大主题,例:APP点击、APP曝光、H5所有、路径等),所以到DWD层会将ODS层大主题根据业务分为小主题,比如APP商品点击、APP商品曝光、商品详情页面曝光等;一般情况下,流量日志使用的是批量上报的方式,所以需要对一些主题的流量日志进行炸裂(例:APP商品曝光等);流量日志在DWD层为每天一个分区,存储当天的增量数据,并注意要使用压缩;流量日志在DWD层一个业务主题为一张表;原创 2022-09-09 15:40:15 · 1226 阅读 · 0 评论 -
离线数仓(11):DIM层实现
对ods层相关维度进行聚合,减少表的数量(例如3级分类聚合成一张分类维度表),后续使用维度减少雪花模型的使用;一般维度表每天创建一个分区(商品维度表等),特殊维度表导入数据(时间维度表),需要记录历史变化的创建拉链表(用户维度表);因为拉链表是记录数据的新增和变化,所以使用ods层的记录表(ods_fmys_users_record_dt);如下代码所示,对每个user_id开窗,每个更改时间一条数据,当在这个时间点,用户修改了信息,那也就是说,从这个时间点到下个时间点,用户都使用的是这条记录的信息。原创 2022-09-07 00:21:23 · 1404 阅读 · 0 评论 -
离线数仓(10):ODS层实现之业务数据核对
架构图:该作业为周末空闲时间调度(每周一次,在集群资源空闲的时候即可);该作业的目的是,快速从业务库拉取表到数仓中的临时表,然后和ods层的视图进行数据比对,当完全相同的条数低于某个比例时,就进行告警,将告警消息发送到飞书、钉钉等通信软件上;因为ods层视图是分钟级更新,临时表也因为设置多并发故拉取数据较快,所以可以设置完全相同的数据条数要大于百分之99.99才算正常;除了条数外,还可以使用其他数据核对口径,比如某一天某个小时的GMV、上架商品数等具体业务口径;原创 2022-09-02 17:27:35 · 1377 阅读 · 0 评论 -
离线数仓(9):ODS层实现之导入业务数据
保持数据原貌不做任何修改,起到备份数据的作用数据采用压缩,减少磁盘存储空间(例如:原始数据100G,可以压缩到10G左右)创建分区表,防止后续的全表扫描将业务数据写入到数仓中,并每天进行一个全量快照备份(其实可以只备份新增和变化的数据,但我们根据实际业务情况和其他各方面等考虑,进行了全量快照备份,并且如果进行全量快照备份的话,保留180天数据完全足够)原创 2022-09-01 18:33:57 · 2413 阅读 · 0 评论 -
离线数仓(8):ODS层实现之导入流量日志
保持数据原貌不做任何修改,起到备份数据的作用数据采用压缩,减少磁盘存储空间(例如:原始数据100G,可以压缩到10G左右)创建分区表,防止后续的全表扫描将流量数据不做任何修改的写入到文件系统中使用了parquet格式,但由于平台和业务原因没有在parquet上再使用例如lzo、snappy等压缩了,但单独的parquet格式压缩也对文本进行了较好的压缩了在建表时创建了分区表。.........原创 2022-08-31 11:17:10 · 614 阅读 · 0 评论 -
离线数仓(7):数仓理论之数据仓库建模
ods层存放最基础的原始数据,不做任何处理,并对数据进行压缩和分区;dwd层对ods层数据进行ETL、炸裂,并以业务过程为驱动,对同一个业务过程数据进行初步聚合;DWS层、DWT层是以需求为驱动,按照主题去创建宽表;主题相当于观察问题的角度。对应着维度表;ADS层同样是以需求为驱动,从DWS和DWT获取数据,并生成需求需要的最终结果数据;注:其他 离线数仓 相关文章链接由此进 ->离线数仓文章汇总。原创 2022-09-03 00:38:20 · 602 阅读 · 1 评论 -
离线数仓(6):数仓理论之维度模型分类
这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。雪花模型是对星型模型的扩展,它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。星型模型中只有一张事实表,以及0张或多张维表,事实表与维表通过主键外键相关联,维表之间不存在关联关系,...原创 2022-09-01 00:24:07 · 570 阅读 · 2 评论 -
离线数仓(5):数仓理论之维度表和事实表
一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。例如:用户、商品、日期、地区等。事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等)。“事实”这个术语表示的是业务事件的度量值(可统计次数、个数、金额等),例如,2022年8月31日,某个用户在商城花了199块钱买了一件连衣裙。维度表:时间、用户、商品、商家;事实表:199块钱、一件。每一个事实表的行包括:具有可加性的数值型的度量值、与维表相连接的外键,通常具有两个和两个以上的外键。......原创 2022-08-31 23:32:00 · 528 阅读 · 0 评论 -
离线数仓(4):数仓理论之关系建模和维度建模
关系建模和维度建模是两种数据仓库的建模技术。关系建模由Bill Inmon所倡导,维度建模由Ralph Kimball所倡导。在数据仓库的早期中,都是使用的关系建模,但随着数据仓库的发展,发现关系建模在使用上有很大的不便,所以又提出了维度建模的概念。维度建模相对关系建模的最大变化就是不遵循三范式,所以数据存在一定冗余,但是为查询大大提高了效率,而数据仓库中又是一次写入多次查询的特点,所以在新的数仓中才一般会使用维度建模。注:其他 离线数仓 相关文章链接由此进 ->离线数仓文章汇总。......原创 2022-08-31 23:19:55 · 693 阅读 · 0 评论 -
离线数仓(3):数仓理论之范式理论
数仓理论之范式理论目前业界范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。 函数依赖三范式区分原创 2022-08-30 23:38:38 · 517 阅读 · 0 评论 -
离线数仓(2):数据仓库相关架构和规范
数据仓库在企业是处于非常重要的位置;往前接收经由埋点而获取的用户行为日志、拉取商家(报社、博主等内容发布方)和用户交互的业务数据;往后输出的数据可以给领导层提供决策、可以给用户构建画像系统、可以判断用户喜好等。其他 离线数仓 相关文章链接由此进 ->........................原创 2022-08-30 22:33:26 · 689 阅读 · 0 评论 -
离线数仓(1):什么是数据仓库
数仓面向主题分析的特点在企业中数仓是一个不断维护的工程数仓分层并不局限于经典3层,可以根据自身需求进行调整没有好的架构,只有适合自己业务需求的架构它山之石可以攻玉注:其他 离线数仓 相关文章链接由此进 ->离线数仓文章汇总。...原创 2022-08-30 21:35:29 · 2172 阅读 · 3 评论