
数据仓库
James。。。。
这个作者很懒,什么都没留下…
展开
-
sqoop
同步策略:全量:数据量不大,有新增和修改。常用的维度表增量:数据量大,仅有新增。订单明细、订单状态表新增及变化:数据量大,有新增和修改。用户表、订单表、支付表、退款表、退单表、券领取表、评论表存储一份:稳定不变。日期、地区表历史全量数据初始化Hive中的Null在底层是以 \N 来存储,而MySQL中的Null在底层就是Null。--null-string和--null-non-string两个参数 是为了保证数据两端的一致性。#! /bin/bashAPP=gma原创 2021-11-13 16:56:05 · 1230 阅读 · 0 评论 -
数据建模案例
需求:数据量亿级、日增量千万级1、 如何快速的查询任意一天的 日累积、月累积、季累积、年累积的交易额2、 如何快速的查询任意一天的 日累积、月累积、季累积、年累积的交易用户数ODS:增量抽取数据CREATE TABLE ods_order_info_di ( userid STRING COMMENT '用户ID', order_id STRING COMMENT '订单ID', order_date STRING COMMENT '订单日期', pay_amt原创 2021-10-28 21:31:50 · 1849 阅读 · 0 评论 -
数据仓库-dwt层表的分区规划
行:维度对象的累计汇总行为列:维度ID+维度模型中与该维度相关的事实表的度量的累积汇总。分区:截止当日的全量的历史累计dwt的字段是dws字段的n倍。dws仅计算用户当天的汇总数据,dwt包含首次、末次、最近n天、开始到至今等指标。最近n天的指标每天都有,具有时效性。用户主题DROP TABLE IF EXISTS dwt_user_topic;CREATE EXTERNAL TABLE IF NOT EXISTS dwt_user_topic( `user_id.原创 2021-10-07 23:18:54 · 399 阅读 · 0 评论 -
left join和left semi join的区别
--建表create TABLE left_semi_join1( id int, name STRING);create TABLE left_semi_join2( id int, age STRING);--插入数据INSERT INTO TABLE left_semi_join1 VALUES (1,'james'),(2,'hsl'),(3,'james'),(4,'hsl');INSERT INTO TABLE left_semi_join2 .原创 2020-08-26 09:09:29 · 3837 阅读 · 0 评论 -
数据仓库-数据质量监控
为什么要做数据质量管理?提前发现问题,然后去解决,让数据更好的服务于业务。什么时候开始做呢?搭建数仓过程中,就要开始做 数据质量管理。要先行 不能后做。数据质量是数据驱动决策的前提数据质量需要关注的四个点:即完整性、准确性、一致性和及时性完整性是指数据的记录和信息是否完整。一般会在数据接入的时候来做数据完整性校验准确性是指数据中记录的信息和数据是否准确 一般准确性的监控多集中在对业务结果数据的监控,比如每日的活跃、收入等数据是否正常一致性是指同一指标在不同地方的结果是否一致。原创 2020-08-25 13:18:11 · 735 阅读 · 0 评论 -
数据仓库-元数据管理系统
你的数仓做的好不好,其实元数据管理系统就可以检验。那为什么要进行元数据管理呢?降低数据的使用成本。 驱动ETL开发那元数据包含哪些呢?技术元数据:库(库名称)、表(表类型、名称、注释、状态、创建时间、生命周期、存储路径、DDL语句、热度)、字段(名称、类型、注释、单位)、分区(名称、大小、记录条数、生成时间)、血缘(上下游节点信息)业务元数据:指标统计口径、分层、主题域、负责人管理元数据:DQC、SLA、存储、计算资源、预算、账单、手写查询、生产etl任务那我们...原创 2020-08-25 12:57:53 · 591 阅读 · 0 评论 -
数据仓库-增量转全量,全量转增量
增量转全量ods增量抽取数据,dwd层增量转全量思路:合并数据 = T-1的增量数据 + T-2的全量数据(排除T-1发生变化的数据)实现:method1:left joinINSERT OVERWRITE TABLE dwd_fyp_user_info_df PARTITION (biz_date='20200824')--T-1的增量数据SELECT id ,name ,mobile原创 2020-08-24 12:41:49 · 3686 阅读 · 1 评论 -
数据仓库-如何构建数据仓库
这个问题有点大啊。。首先做什么事情之前,你得想清楚你为什么要做?做了之后,要达成什么样的目标?比如,你的目标是建设一个全面、准确、高效、易扩展、规范、易用、成本低的数仓那我问你,能具体说说吗?具体就是:要什么数据,有什么数据 无指标二义性和数据计算错误问题 完成业务方的需求要快 新业务进入后,可以无缝接入数仓 数据产品使用门槛低和使用数据的效率高 存储资源、计算资源、人力资源消耗都要最低说实话,这个愿景几乎不可能实现。。我们需要在性能、成本、效率和数据...原创 2020-08-24 08:36:00 · 870 阅读 · 0 评论 -
数据仓库-我对分层的一点理解
谈到数据仓库的分层,你知道为什么要分层吗?你可能会这么说。。。什么1、清晰数据结构、复杂问题简单化2、减少重复开发、统一数据口径分层是有业务需求才去做的,而不是为了分层而分层。由于你的数据量又大又杂,数据一点都不好用,所以出现了分层。所以分层本质上是解决了易用性,降低使用数据的成本。如果不分层的话,会怎么样呢?不分层的话,不同的人需要同一份数据时,都需要都从原始数据开始计算,同时也会造成数据不一致问题。而分层后,我提前已经计算好了,直接在我的公共层取,一定程度上节省计算资源,同时统一原创 2020-08-22 18:43:00 · 443 阅读 · 0 评论 -
数据仓库-缓慢渐变维-拉链表
一、拉链表基础缓慢渐变维:维度会随着时间发生缓慢的变化。处理方式: 全量快照 拉链表 全量快照很简单,今天我们来看看拉链表。。。拉链表是处理缓慢渐变维的一种方式,它区别于正常的表而言,会多两个字段,start_date和end_date,代表这条数据的起始时间和结束时间。 id name sex dept Start_date End_da...原创 2020-08-22 17:49:32 · 917 阅读 · 0 评论 -
数据仓库-Hive调优和数据倾斜
一、Hive调优:影响Hive效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、job或I/O过多、MapReduce分配不合理等等大的方向分存储优化和计算优化。存储优化:生命周期管理 定期盘点,无用数据删除 模型相似度检测 数据压缩 模型重构 优化分层计算优化:分区裁剪、列裁剪 、谓词下推(where谓词逻辑都尽可能提前执行,减少下游处理的数据量) 在UNION ALL内部尽可能不使用GROUP BY,改为在外层统一GROUP BY 尽量避免使用DISTINCT关键字原创 2020-08-22 16:57:48 · 257 阅读 · 0 评论 -
我对维度建模和范式建模的一点理解
谈维度建模和范式建模之前,先了解下模型设计的三个阶段吧。。概念模型 将业务划分成几个主题 逻辑模型 定义各种实体、属性、关系 物理模型 设计数据对象的物理实现,比如表的命名规范、字段的命名规范、字段类型等一、范式建模我先来介绍一下范式。。。范式:即关系模式。一张数据表的表结构,符合的设计标准的级别 目的在于降低数据的冗余性和保证数据的一致性。缺点是获取数据时,需要通过Join拼接出最后的数据。常见的范式有:域都应该是原子性。即数据不可分割 特殊:json 在...原创 2020-08-22 11:27:16 · 6931 阅读 · 0 评论 -
数据仓库你需要知道的3个区别
数据仓库你需要知道的3个区别提示:以下是本篇文章正文内容,下面案例可供参考一、OLTP和OLAP的区别 OLAP OLTP 全称 On-line Analytical Processing On-line Transaction Processing 应用场景 数据仓库 数据库 核心 ..原创 2020-08-22 10:39:49 · 1227 阅读 · 1 评论