网站建设中英文,公司名称大全20000个,企业推广软件有哪些,建设工程消防验收查询网站1 数据仓库建模
1.1 建模工具 PowerDesigner/SQLYog/EZDML…
1.2 ODS层 #xff08;1#xff09;保持数据原貌不做任何修改#xff0c;起到备份数据的作用。 #xff08;2#xff09;数据采用压缩#xff0c;减少磁盘存储空间#xff08;例如#xff1a;压缩采用LZO1保持数据原貌不做任何修改起到备份数据的作用。 2数据采用压缩减少磁盘存储空间例如压缩采用LZO压缩比是100g数据压缩完10g左右 3创建分区表防止后续的全表扫描
1.3 DWD层 DWD层需构建维度模型一般采用星型模型呈现的状态一般为星座模型。 维度建模一般按照以下四个步骤 选择业务过程→声明粒度→确认维度→确认事实
1选择业务过程 在业务系统中如果业务表过多挑选感兴趣的业务线比如下单业务支付业务退款业务物流业务一条业务线对应一张事实表。如果小公司业务表比较少建议选择所有业务线。
2声明粒度 数据粒度指数据仓库的数据中保存数据的细化程度或综合程度的级别。 声明粒度意味着精确定义事实表中的一行数据表示什么应该尽可能选择最小粒度以此来应各种各样的需求。 典型的粒度声明如下 ① 订单当中的每个商品项作为下单事实表中的一行粒度为每次 ② 每周的订单次数作为一行粒度为每周。 ③ 每月的订单次数作为一行粒度为每月。 如果在DWD层粒度就是每周或者每月那么后续就没有办法统计细粒度的指标了。所有建议采用最小粒度。
3确定维度 维度的主要作用是描述业务是事实主要表示的是“谁何处何时”等信息。 例如时间维度、用户维度、地区维度等常见维度。
4确定事实 “事实”指的是业务中的度量值例如订单金额、下单次数等。 在DWD层以业务过程为建模驱动基于每个具体业务过程的特点构建最细粒度的明细层事实表。事实表可做适当的宽表化处理。 通过以上步骤结合数仓的业务事实可以得出业务总线矩阵表。业务总线矩阵的原则主要是根据维度表和事实表之间的关系如果两者有关联则使用√标记。 业务总线矩阵表示例
时间用户地区商品优惠券活动编码度量值订单√√√√件数/金额订单详情√√√件数/金额支付√√√次数/金额加购√√√件数/金额收藏√√√个数评价√√√个数退款√√√件数/金额优惠券领用√√√个数维度退化 根据维度建模中的星型模型思想将维度进行退化。 例如下图所示地区表和省份表退化为地区维度表商品表、品类表、spu表、商品三级分类、商品二级分类、商品一级分类表退化为商品维度表活动信息表和活动规则表退化为活动维度表。 至此数仓的维度建模已经完毕DWS、DWT和ADS和维度建模已经没有关系了。 DWS和DWT都是建宽表宽表都是按照主题去建。主题相当于观察问题的角度。对应着维度表。
1.3.1 数据清洗 ① 空值去除 ② 过滤核心字段无意义的数据比如订单表中订单id为null支付表中支付id为空 ③ 将用户行为宽表和业务表进行数据一致性处理
select case when a is null then b else a end as JZR,...
from A④ 对手机号、身份证号等敏感数据脱敏
1.3.2 清洗的手段 HQL、MR、SparkSQL、Kettle、Python
1.3.3 维度退化 对业务数据传过来的表进行维度退化和降维。商品一级二级三级、省市县、年月日 商品表、spu表、品类表、商品一级分类、二级分类、三级分类》商品表 省份表、地区表》地区表
1.3.4 存储格式 数据压缩LZOBZipSnappy… 列式存储textFileORCParquet一般企业里使用ORC或者Parquet因为是列式存储且压缩比非常高所以相比于textFile查询速度快占用硬盘空间少
1.4 DWS层 DWS层统计各个主题对象的当天行为服务于DWT层的主题宽表。如图所示DWS层的宽表字段是站在不同维度的视角去看事实表重点关注事实表的度量值通过与之关联的事实表获得不同的事实表的度量值。 用户行为宽表商品宽表访客宽表、活动宽表、优惠卷、地区表等。 用户行为宽表示例 评论、打赏、收藏、关注–商品、关注–人、点赞、分享、好价爆料、文章发布、活跃、签到、补签卡、幸运屋、礼品、金币、电商点击、gmv
CREATE TABLE app_usr_interact(stat_dt date COMMENT 互动日期, user_id string COMMENT 用户id, nickname string COMMENT 用户昵称, register_date string COMMENT 注册日期, register_from string COMMENT 注册来源, remark string COMMENT 细分渠道, province string COMMENT 注册省份, pl_cnt bigint COMMENT 评论次数, ds_cnt bigint COMMENT 打赏次数, sc_add bigint COMMENT 添加收藏, sc_cancel bigint COMMENT 取消收藏, gzg_add bigint COMMENT 关注商品, gzg_cancel bigint COMMENT 取消关注商品, gzp_add bigint COMMENT 关注人, gzp_cancel bigint COMMENT 取消关注人, buzhi_cnt bigint COMMENT 点不值次数, zhi_cnt bigint COMMENT 点值次数, zan_cnt bigint COMMENT 点赞次数, share_cnts bigint COMMENT 分享次数, bl_cnt bigint COMMENT 爆料数, fb_cnt bigint COMMENT 好价发布数, online_cnt bigint COMMENT 活跃次数, checkin_cnt bigint COMMENT 签到次数, fix_checkin bigint COMMENT 补签次数, house_point bigint COMMENT 幸运屋金币抽奖次数, house_gold bigint COMMENT 幸运屋积分抽奖次数, pack_cnt bigint COMMENT 礼品兑换次数, gold_add bigint COMMENT 获取金币, gold_cancel bigint COMMENT 支出金币, surplus_gold bigint COMMENT 剩余金币, event bigint COMMENT 电商点击次数, gmv_amount bigint COMMENT gmv, gmv_sales bigint COMMENT 订单数)
PARTITIONED BY ( dt string)1.5 DWT层 以分析的主题对象为建模驱动基于上层的应用和产品的指标需求构建主题对象的全量宽表。 DWT层主题宽表都记录什么字段 如图所示每个维度关联的不同事实表度量值以及首次、末次时间、累积至今的度量值、累积某个时间段的度量值。 1.6 ADS层 分别对设备主题、会员主题、商品主题和营销主题进行指标分析其中营销主题是用户主题和商品主题的跨主题分析案例。 指标示例日活、月活、周活、留存、留存率、新增日、周、年、转化率、流失、回流、七天内连续3天登录点赞、收藏、评价、购买、加购、下单、活动、连续3周月登录、GMV、复购率、复购率排行、点赞、评论、收藏、领优惠卷人数、使用优惠卷人数、沉默、值不值得买、退款人数、退款率 topn 热门商品 2 维度表和事实表
2.1 维度表 维度表一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如用户、商品、日期、地区等。
2.2 事实表 事实表中的每行数据代表一个业务事件下单、支付、退款、评价等。“事实”这个术语表示的是业务事件的度量值可统计次数、个数、件数、金额等例如订单事件中的下单金额。 每一个事实表的行包括具有可加性的数值型的度量值、与维表相连接的外键、通常具有两个和两个以上的外键、外键之间表示维表之间多对多的关系。
2.2.1 事务型事实表 以每个事务或事件为单位例如一个销售订单记录一笔支付记录等作为事实表里的一行数据。一旦事务被提交事实表数据被插入数据就不再进行更改其更新方式为增量更新。
2.2.2 周期型快照事实表 周期型快照事实表中不会保留所有数据只保留固定时间间隔的数据例如每天或者每月的销售额或每月的账户余额等。
2.2.3 累积型快照事实表 累计快照事实表用于跟踪业务事实的变化。例如数据仓库中可能需要累积或者存储订单从下订单开始到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订单声明周期的进展情况。当这个业务过程进行时事实表的记录也要不断更新。
订单id用户id下单时间打包时间发货时间签收时间订单金额3-83-83-93-10
3 同步策略 4 关系型数据库范式理论ER建模
三范式 1NF属性不可再分割例如不能存在5台电脑的属性坏处表都没法用 2NF不能存在部分函数依赖例如主键学号课名–成绩姓名但学号–》姓名所以姓名部分依赖于主键学号课名所以要去除坏处数据冗余 3NF不能存在传递函数依赖学号–》宿舍种类–》价钱坏处数据冗余和增删异常 MySQL关系模型关系模型主要应用与OLTP系统中为了保证数据的一致性以及避免冗余所以大部分业务系统的表都是遵循第三范式的。 Hive 维度模型维度模型主要应用于OLAP系统中因为关系模型虽然冗余少但是在大规模数据跨表分析统计查询过程中会造成多表关联这会大大降低执行效率。所以HIVE把相关各种表整理成两种事实表和维度表两种。所有维度表围绕着事实表进行解释。
5 数据模型 星型模型一级维度表 雪花多级维度 星座模型星型模型多个事实表
6 拉链表 (数据仓库中如何创建拉链表) 拉链表处理的业务场景主要处理缓慢变化维的业务场景用户表、订单表。
7 即席查询数据仓库 Kylin: T1 Impala: CDH Presto: Apache版本框架
8 权限管理 Ranger或Sentry CDH cloudmanager-》sentry HDP ambariranger ① 用户认证kerberos张三、李四、王五 ② 表级别权限张三、李四 ③ 字段级别权限李四
9 可视化报表工具 Echarts百度开源 Kibana开源 Tableau功能强大的收费软件 Superset功能一般免费 QuickBI阿里云收费的离线 DataV阿里云收费的实时 suga百度收费
10 集群监控工具 Zabbix Grafana PrometheusGrafana监控 睿象云
11 元数据管理Atlas血缘系统
insert into table ads_userselect id, name from dwt_user依赖关系能够做到表级别和字段级别 用处作业执行失败评估他的影响范围。 主要用于表比较多的公司。
12 数据质量监控Griffin
12.1 监控原则
12.1.1 单表数据量监控 一张表的记录数在一个已知的范围内或者上下浮动不会超过某个阈值 SQL结果var 数据量 select count*from 表 where 时间等过滤条件 报警触发条件设置如果数据量不在[数值下限, 数值上限] 则触发报警 同比增加如果((本周的数据量 - 上周的数据量)/上周的数据量*100)不在 [比例下线比例上限]则触发报警 环比增加如果((今天的数据量 - 昨天的数据量)/昨天的数据量*100)不在 [比例下线比例上限]则触发报警 报警触发条件设置一定要有。如果没有配置的阈值不能做监控
12.1.2 单表空值检测 某个字段为空的记录数在一个范围内或者占总量的百分比在某个阈值范围内 目标字段选择要监控的字段不能选“无” SQL结果var 异常数据量 select count(*) from 表 where 目标字段 is null 单次检测如果异常数据量不在[数值下限, 数值上限]则触发报警
12.1.3 单表重复值检测 一个或多个字段是否满足某些规则 目标字段第一步先正常统计条数select count(*) form 表 第二步去重统计select count(*) from 表 group by 某个字段 第一步的值和第二步不的值做减法看是否在上下线阀值之内 单次检测如果异常数据量不在[数值下限, 数值上限] 则触发报警
12.1.4 单表值域检测 一个或多个字段没有重复记录 目标字段选择要监控的字段支持多选 检测规则填写“目标字段”要满足的条件。其中$1表示第一个目标字段$2表示第二个目标字段以此类推。上图中的“检测规则”经过渲染后变为“delivery_fee delivery_fee_basedelivery_fee_extra” 阈值配置与“空值检测”相同
12.1.5 跨表数据量对比 主要针对同步流程监控两张表的数据量是否一致 SQL结果count本表 - count关联表 阈值配置与“空值检测”相同
12.2 数据质量实现 数据质量的高低代表了该数据满足数据消费者期望的程度这种程度基于他们对数据的使用预期只有达到数据的使用预期才能给予管理层正确的决策参考。数据质量管理作为数据仓库的一个重要模块主要可以分为数据的健康标准量化、监控和保障。
12.2.1 数据质量标准分类 ① 数据完整性: 数据不存在大量的缺失值、不缺少某一日期/部门/地点等部分维度的数据同时在ETL过程当中应保证数据的完整不丢失。验证数据时总数应符合正常规律时间推移记录数总数的增长符合正常的趋势。 ② 数据一致性: 数仓各层的数据应与上一层保持数据一致最终经过数据清洗转化ETL的宽表/指标能和数据源保持一致。
12.2.2 数据质量管理解决方案 ① 可以通过Shell命令和Hive脚本的方式通过验证增量数据的记录数、全表空值记录数、全表记录数是否在合理的范围之内以及验证数据来源表和目标表一致性确定当日的数据是否符合健康标准达到数据质量的监控与管理。 ② 数据质量之GriffinGriffin有着较为严重的版本依赖Apache Griffin是一个开源的大数据数据质量解决方案它支持批处理和流模式两种数据质量检测方式可以从不同维度度量数据资产从而提升数据的准确度和可信度。例如离线任务执行完毕后检查源端和目标端的数据数量是否一致源表的数据空值等。
13 数据治理 包括数据质量管理、元数据管理、权限管理ranger sentry、数仓 2019年下半年 国家出了一本白皮书要求给政府做的数仓项目要具备如下功能 数据治理是一个复杂的系统工程涉及到企业和单位多个领域既要做好顶层设计又要解决好统一标准、统一流程、统一管理体系等问题同时也要解决好数据采集、数据清洗、数据对接和应用集成等相关问题。 数据治理实施要点主要包含数据规划、制定数据标准、整理数据、搭建数据管理工具、构建运维体系及推广贯标六大部分其中数据规划是纲领、制定数据标准是基础、整理数据是过程、搭建数据管理工具是技术手段、构建运维体系是前提推广贯标是持续保障。
14 数据中台 传统IT企业项目的物理结构都可分为“前台”和“后台”这两部分,所谓前台即包括各种和用户直接交互的界面比如web页面手机app也包括服务端各种实时响应用户请求的业务逻辑比如商品查询、订单系统等等;后台并不直接面向用户而是面向运营人员的配置管理系统比如商品管理、物流管理、结算管理。后台为前台提供了一些简单的配置。 传统项目痛点–重复造轮子:
14.1 各家中台架构示例
1SuperCell公司 2阿里巴巴提出了“大中台小前台”的战略
3华为提出了“平台炮火支撑精兵作战”的战略
14.2 中台具体划分
1业务中台
2技术中台
3数据中台
4算法中台
14.3 中台使用场景 ① 从0到1的阶段没有必要搭建中台。(从0到1的创业型公司) ② 从1到N的阶段适合搭建中台。(当企业有了一定规模) ③ 从N到N1的阶段搭建中台势在必行。
15 数据湖 数据湖Data Lake是一个存储企业的各种各样原始数据的大型仓库其中的数据可供存取、处理、分析及传输。 hudi、iceberg、Data Lake 目前Hadoop是最常用的部署数据湖的技术所以很多人会觉得数据湖就是Hadoop集群。数据湖是一个概念而Hadoop是用于实现这个概念的技术。
数据仓库数据湖主要处理历史的、结构化的数据而且这些数据必须与数据仓库事先定义的模型吻合。能处理所有类型的数据如结构化数据非结构化数据半结构化数据等数据的类型依赖于数据源系统的原始数据格式。非结构化数据语音、图片、视频等数据仓库分析的指标都是产品经理提前规定好的。按需分析数据。日活、新增、留存、转化率①根据海量的数据挖掘出规律反应给运营部门。②从海量的数据中找寻规律。拥有非常强的计算能力用于处理数据。③数据挖掘
16 数据埋点 收费的埋点神策 https://mp.weixin.qq.com/s/Xp3-alWF4XHvKDP9rNWCoQ 目前主流的埋点方式有代码埋点前端/后端、可视化埋点、全埋点三种。 代码埋点是通过调用埋点SDK函数在需要埋点的业务逻辑功能位置调用接口上报埋点数据。例如我们对页面中的某个按钮埋点后当这个按钮被点击时可以在这个按钮对应的 OnClick 函数里面调用SDK提供的数据发送接口来发送数据。 可视化埋点只需要研发人员集成采集 SDK不需要写埋点代码业务人员就可以通过访问分析平台的“圈选”功能来“圈”出需要对用户行为进行捕捉的控件并对该事件进行命名。圈选完毕后这些配置会同步到各个用户的终端上由采集 SDK 按照圈选的配置自动进行用户行为数据的采集和发送。 全埋点是通过在产品中嵌入SDK前端自动采集页面上的全部用户行为事件上报埋点数据相当于做了一个统一的埋点。然后再通过界面配置哪些数据需要在系统里面进行分析。
17 电商8类基本指标 18 直播指标