电商数仓
文章平均质量分 83
OneTenTwo76
这个作者很懒,什么都没留下…
展开
-
【电商数仓】数仓BI工具集成之Zabbix入门、部署、配置、启停、使用
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。监控的作用收集集群的运行状态如果集群状态出现了异常,能够进行报警。可以与Kylin结合使用的可视化工具很多,例如:ODBC:与Tableau、Excel、PowerBI等工具集成JDBC:与Saiku、BIRT等Java工具集成RestAPI:与JavaScr原创 2022-10-21 09:30:00 · 710 阅读 · 0 评论 -
【电商数仓】数仓即席查询之Kylin Cube构建原理和构建优化
维度:即观察数据的角度。比如员工数据,可以从性别角度来分析,也可以更加细化,从入职时间或者地区的维度来观察。维度是一组离散的值,比如说性别中的男和女,或者时间维度上的每一个独立的日期。因此在统计时可以将维度值相同的记录聚合在一起,然后应用聚合函数做累加、平均、最大和最小值等聚合计算。度量:即被聚合(观察)的统计值,也就是聚合运算的结果。比如说员工数据中不同性别员工的人数,又或者说在同一年入职的员工有多少。有了维度跟度量,一个数据表或者数据模型上的所有字段就可以分类了,它们要么是维度,要么是度量(可以被聚合)原创 2022-10-19 09:30:00 · 307 阅读 · 0 评论 -
【电商数仓】数仓即席查询之Kylin简介,安装和使用
即席查询工具:更快查询hive表格的工具。hive主要慢在查询和join时,hive使用MR引擎,这个引擎在计算时会将同一个计算步骤分成很多份,彼此之间独立,无论map完成还是reduce完成,数据都需要落盘,消耗大量的磁盘IO,导致hive查询速度很慢。自己做一个查询引擎,如presto。通过预计算,以空间换时间,提高查询速度,如kylin。原创 2022-10-18 09:45:00 · 980 阅读 · 0 评论 -
【电商数仓】数仓可视化之Spark历史服务器配置、Superset安装及使用
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python。Apache Superset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。**Step5:**点击ADD。原创 2022-10-16 09:45:00 · 627 阅读 · 0 评论 -
【电商数仓】数仓即席查询之Presto简介,安装,Presto优化之数据存储、查询SQL、一些注意事项
Presto是一个开源的分布式SQL查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景。PB字节的查询所需要的节点是十分巨大的。注意:虽然Presto可以解析SQL,但它不是一个标准的数据库。不是MySQL、Oracle的代替品,也不能用来处理在线事务(OLTP)。标准的数据库必然是存算一体的,Presto解决的是算,是一个SQL查询引擎。原创 2022-10-17 09:45:00 · 684 阅读 · 0 评论 -
【电商数仓】数仓调度之全流程调度(调度数据准备、Azkaban部署、创建数据库和表、Sqoop导出脚本、编写工作流程配置文件、一些注意事项)
将首日数据导入(6-14),其他日期的数据不要导入,如果导入,关闭除HDFS的所有集群,删除hdfs上的warehouse,origin_data,将表重新建立一遍。gmall中有75张表。二 Azkaban部署1 上传tar包将azkaban-db-3.84.4.tar.gz,azkaban-exec-server-3.84.4.tar.gz,azkaban-web-server-3.84.4.tar.gz上传到hadoop101的/opt/software路径其中101为主机,102,103两台从原创 2022-10-15 08:30:00 · 812 阅读 · 0 评论 -
【电商数仓】数仓搭建之数据应用(application data stpre -- ADS)层(ADS层之用户统计、行为漏斗分析、留存率,七天连续活跃人数,每分钟在线用户数、访客统计,路径分析等)
之前活跃过的用户,最近一段时间未活跃,就称为流失用户。此处要求统计7日前(只包含7日前当天)活跃,但最近7日未活跃的用户总数。之前的活跃用户,一段时间未活跃(流失),今日又活跃了,就称为回流用户。次数要求统计回流用户总数。漏斗分析是一个数据分析模型,它能够科学反映一个业务过程从起点到终点各阶段用户转化情况。由于其能将各阶段环节都展示出来,故哪个阶段存在问题,就能一目了然。漏斗图如下:原创 2022-10-14 08:30:00 · 640 阅读 · 0 评论 -
【电商数仓】数仓搭建之数据应用(application data stpre -- ADS)层(数仓血缘图,ADS层之优惠券、活动、商品(一、二)、订单主题(一、二))
品牌复购率是指一段时间内重复购买某品牌的人数与购买过该品牌的人数的比值。重复购买即购买次数大于等于2,购买过即购买次数大于1。该指标为商品综合统计,包含每个spu被下单总次数和被下单总金额。要求统计最近30日发布的所有优惠券的领用情况和补贴率。补贴率:总优惠金额与使用优惠券的订单的原价金额的比值。补贴率:总优惠金额与参与活动的订单原价金额的比值。统计最近30日发布的所有活动的参与情况和补贴率。该需求包含订单总金额和下单总人数。统计最近30天的各品牌复购率。该需求包含订单总数。原创 2022-10-13 08:00:00 · 629 阅读 · 0 评论 -
【电商数仓】数仓搭建之数据主题(data warehouse topic-- DWT)层(DWT层之首日和每日数据导入脚本)
在/home/hzy/bin目录下创建脚本dws_to_dwt_init.sh。在/home/hzy/bin目录下创建脚本dws_to_dwt.sh。原创 2022-10-12 09:00:00 · 280 阅读 · 0 评论 -
【电商数仓】数仓搭建之数据主题(data warehouse topic-- DWT)层(DWT层之访客、优惠券、活动、地区主题)
【代码】【电商数仓】数仓搭建之数据主题(data warehouse topic-- DWT)层(DWT层之访客、优惠券、活动、地区主题)原创 2022-10-11 09:00:00 · 610 阅读 · 0 评论 -
【电商数仓】数仓搭建之数据主题(data warehouse topic-- DWT)层(DWT层之用户、商品主题表格建立,数据导入)
DWT层主要对DWS层的数据进一步进行汇总各列的由来:由DWS层在每个时间跨度上进行扩充,时间跨度的选取取决于具体的需求,这里取c dxx3.这四个维度2 数据导入(1)首日导入(2)每日导入2020-06-15 昨天的累积数据已经有了,今天的数据在dws的用户主题表,用dws 2020-06-14的数据更新dwt截止到2020-06-14的累积数据。导入思路二 商品主题按照商品作为维度,把数据在时间的维度上进行汇总2 数据导入(1)首日导入(2)每日导入原创 2022-10-10 09:00:00 · 1267 阅读 · 0 评论 -
【电商数仓】数仓搭建之服务数据(data warehouse service-- DWS)层(DWS层之地区、访客主题,时间维度,首日与每日导入脚本)
在/home/hzy/bin目录下创建脚本dwd_to_dws_init.sh。在/home/hzy/bin目录下创建脚本dwd_to_dws.sh。综上,时间维度没有进行汇总。时间维度没有进行汇总,因为。原创 2022-10-09 09:00:00 · 246 阅读 · 0 评论 -
【电商数仓】数仓搭建之服务数据(data warehouse service-- DWS)层(商品、优惠券、活动主题的建立与数据导入)
与首日导入的区别:不用按照dt进行分区,直接给定dt某一个具体的日期。将首日导入中需要分区的dt变成dt=XXXX-XX-XX。原创 2022-10-08 10:00:00 · 255 阅读 · 0 评论 -
【电商数仓】数仓搭建之服务数据(data warehouse service-- DWS)层(DWS层概述、几个系统函数和用户主题的建立与数据导入)
DWD层:将数据重新建模,以粒度最细的方式将所有的**明细**数据放入DWD层。在一个公司中,会计或者财务会关心明细,将明细总结形成一张资产负债表交给老板。数仓最终形成的表格不是明细层,数据量十分大,可读性差。最终呈现的数据是汇总过的数据,所以在DWS层需要将数据以感兴趣的角度进行汇总,如下sql,为分组汇总按照维度进行汇总,六个维度表(商品、优惠券、活动、地区、时间、用户)。所有能够汇总的事实按照用户维度进行汇总,就得到了一张用户主题汇总表,所有能够汇总的事实如下表所示:原创 2022-10-07 10:00:00 · 867 阅读 · 0 评论 -
【电商数仓】数仓搭建之明细数据(data warehouse detail -- DWD)层(业务数据首日、每日装载脚本)
一 DWD层业务数据首日装载脚本1 编写脚本2 脚本内容3 执行脚本二 DWD层业务数据每日装载脚本1 编写脚本2 脚本内容3 执行脚本原创 2022-10-06 10:00:00 · 230 阅读 · 0 评论 -
【电商数仓】数仓搭建之明细数据(data warehouse detail -- DWD)层(业务数据之退单、加购、收藏、优惠券、支付、退款、订单事实表)
*以上sql存在一个问题:**在极端情况下,6-15当天将6-14所有没使用的和6-15领取的优惠券全部使用,这样9999-99-99分区就不会有数据,这样9999-99-99分区的数据就不会被override,理论上6-15当天9999-99-99分区中没有数据,而以上sql中6-15当天9999-99-99分区中的数据不会是空的,将会是6-14中9999-99-99分区中的数据,因为没有任何数据去覆盖9999-99-99分区。设计思路与架构事实表相同。每日导入与首日导入相同。原创 2022-10-05 10:00:00 · 948 阅读 · 0 评论 -
【电商数仓】数仓搭建之明细数据(data warehouse detail -- DWD)层(用户行为数据之曝光、错误日志表、数据加载脚本,业务数据之评价、订单事实表)
业务数据方面DWD层的搭建主要注意点在于维度建模。业务数据中事实表分为三类- 事务型事实表:表格的数据每天只新增,不修改,当天的数据当天处理,彼此独立,互不影响。 导入数据的思路:增量导入,所有这种表格都是按照日期分区,与ods层一致,所以直接将ods层的数据直接拿过来就可以。但是这种表格首日导入与每日导入不一样,第一天导入的时候包括所有的历史数据,在导入历史数据的时候需要按照事务完成的日期去动态分区。- 周期型快照事实表:每日全量更新,记录的是某一个时刻关注的某一个业务是什么状态,不会在原创 2022-10-04 10:30:00 · 590 阅读 · 0 评论 -
【电商数仓】数仓搭建之明细数据(data warehouse detail -- DWD)层(日志格式解析、启动,页面,动作日志表)
一般不会对整条数据进行分析,会将整条数据拆分开,分别为common + actions【用户行为表】、common + displays【用户曝光页面表】、common + page【用户页面访问表】、common + err【用户错误表】原创 2022-10-03 10:30:00 · 1149 阅读 · 0 评论 -
【电商数仓】数仓搭建之DIM维度层(用户维度表[拉链表],首日、每日数据装载脚本)
拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始日期。如果当前信息至今有效,在生效结束日期中填入一个极大值(如9999-99-99 )。表现的就是数据的变化过程。用户ID姓名手机号码开始日期结束日期1张三2019-01-012019-01-011张三2019-01-022019-01-091张三2019-01-109999-99-99。原创 2022-10-02 10:45:00 · 1964 阅读 · 0 评论 -
【电商数仓】数仓搭建之DIM维度层(商品、优惠券、活动、地区、时间维度表)
需要将以上正方形圈起来的八张表建模成一张商品维度表,主键为sku_id。圆形圈起来的几张表可选,此项目不考虑这几张表。以ods_sku_info(id, spu_id, price, sku_name, sku_desc, weight, **tm_id**, **category3_id**, is_sale, create_time, dt)表为基础去join其他表【表一】根据ods_sku_info表中spu_id列可以获得ods_spu_info表中的内容(spu_name,原创 2022-10-01 10:00:00 · 1790 阅读 · 0 评论 -
【电商数仓】数仓搭建之原始数据(Operation Data Store -- ODS)层(用户行为数据、业务数据)
- 保持数据原貌不做任何修改,起到备份数据的作用。- 数据采用Gzip压缩,减少磁盘存储空间。- 创建分区表,防止后续的全表扫描,在企业开发中大量使用分区表。- 创建外部表。在企业开发中,除了自己用的临时表,创建内部表外,绝大多数场景都是创建外部表。27张业务数据表加1张用户行为数据表(log),共需要创建28张表,在mysql中有什么列,在这里就有什么列,直接复制过来。log中的json数据直接存放为一行,所有的JSON体都作为line的一部分。原创 2022-09-30 10:30:00 · 765 阅读 · 0 评论 -
【电商数仓】修改压缩编码、hive环境部署、yarn配置、idea开发环境搭建、准备数据
Hive引擎包括:默认MR、tez、sparktez:MR的改进版,将MR静态的计算方法改成DAG有向图的计算,MR每进行一次MR都会落一次盘,然后再执行一次MR,DAG有向图则可以进行map、map、map、reduce、reduce…方式的计算,tez可以看做是弱化版的spark。Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。原创 2022-09-29 11:30:00 · 792 阅读 · 0 评论 -
【电商数仓】关系建模与维度建模、维度表和事实表、几种维度模型、数仓建模原则
维度建模一定要选定一个中心,这个中心就是需要做的业务,如电商的核心业务就是订单,那么在对电商业务进行维度建模的时候,就可以将订单放到中心的位置。描述订单的方式一般为:和人,何时,何地,下的什么订单,一个用户,一个维度;例如,需要统计,什么时间下的订单多,哪个地区下的订单多,哪个用户下的订单多。在业务系统中,挑选感兴趣的业务线,比如下单业务,支付业务,退款业务,物流业务,一条业务线对应一张事实表。此处的“事实”一词,指的是业务中的度量值(次数、个数、件数、金额,可以进行累加),例如订单金额、下单次数等。原创 2022-09-27 11:45:00 · 3443 阅读 · 0 评论 -
【电商数仓】日志采集架构设计原理、系统表结构解析、数仓分层相关概念、范式理论详解
改进的方案:也可以不使用Flume的拦截器,可以使用kafka的拦截器实现TimeStamp时间戳,但是kafka拦截器的代码十分复杂,且会在执行过程中申请大量的对象,在数据高峰期,可能会导致大量的垃圾回收,性能不一定会比带File Channel的高。目前,HDFS相对地解决了数据的存储问题,但是查询要更加地要去注重效率问题,尽量少的join,对于数据冗余缺失越来越宽容,所以在数仓项目中,表格不像在关系型数据库中严格遵守关系建模、三范式表格,数仓中的表格,范式都没有那么高,一般只遵循一范式。原创 2022-09-26 12:30:00 · 845 阅读 · 0 评论