- 博客(17)
- 收藏
- 关注
原创 sqoop
同步策略:全量:数据量不大,有新增和修改。常用的维度表增量:数据量大,仅有新增。订单明细、订单状态表新增及变化:数据量大,有新增和修改。用户表、订单表、支付表、退款表、退单表、券领取表、评论表存储一份:稳定不变。日期、地区表历史全量数据初始化Hive中的Null在底层是以 \N 来存储,而MySQL中的Null在底层就是Null。--null-string和--null-non-string两个参数 是为了保证数据两端的一致性。#! /bin/bashAPP=gma
2021-11-13 16:56:05 1203
原创 数据建模案例
需求:数据量亿级、日增量千万级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 1767
原创 数据仓库-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 368
原创 数据仓库-dws层表的分区规划
行:维度对象天粒度的汇总列:维度ID+维度模型中与该维度相关的事实表的度量按天汇总分区:每个分区存放维度对象对应天的汇总
2021-10-05 18:01:48 659
原创 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 3810
原创 数据仓库-数据质量监控
为什么要做数据质量管理?提前发现问题,然后去解决,让数据更好的服务于业务。什么时候开始做呢?搭建数仓过程中,就要开始做 数据质量管理。要先行 不能后做。数据质量是数据驱动决策的前提数据质量需要关注的四个点:即完整性、准确性、一致性和及时性完整性是指数据的记录和信息是否完整。一般会在数据接入的时候来做数据完整性校验准确性是指数据中记录的信息和数据是否准确 一般准确性的监控多集中在对业务结果数据的监控,比如每日的活跃、收入等数据是否正常一致性是指同一指标在不同地方的结果是否一致。
2020-08-25 13:18:11 710
原创 数据仓库-元数据管理系统
你的数仓做的好不好,其实元数据管理系统就可以检验。那为什么要进行元数据管理呢?降低数据的使用成本。 驱动ETL开发那元数据包含哪些呢?技术元数据:库(库名称)、表(表类型、名称、注释、状态、创建时间、生命周期、存储路径、DDL语句、热度)、字段(名称、类型、注释、单位)、分区(名称、大小、记录条数、生成时间)、血缘(上下游节点信息)业务元数据:指标统计口径、分层、主题域、负责人管理元数据:DQC、SLA、存储、计算资源、预算、账单、手写查询、生产etl任务那我们...
2020-08-25 12:57:53 520
原创 数据仓库-增量转全量,全量转增量
增量转全量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 3385 1
原创 数据仓库-如何构建数据仓库
这个问题有点大啊。。首先做什么事情之前,你得想清楚你为什么要做?做了之后,要达成什么样的目标?比如,你的目标是建设一个全面、准确、高效、易扩展、规范、易用、成本低的数仓那我问你,能具体说说吗?具体就是:要什么数据,有什么数据 无指标二义性和数据计算错误问题 完成业务方的需求要快 新业务进入后,可以无缝接入数仓 数据产品使用门槛低和使用数据的效率高 存储资源、计算资源、人力资源消耗都要最低说实话,这个愿景几乎不可能实现。。我们需要在性能、成本、效率和数据...
2020-08-24 08:36:00 845
原创 数据结构基础-栈、队列、哈希表
物理结构:看得见,摸得着,实实在在。比如 数组和链表,在内存中实实在在的存储结构逻辑结构:是抽象的概念,依赖于物理结构而存在。比如 栈、队列、二叉树 它们的物理实现可以用数组和链表来完成一、栈栈是一种线性数据结构。可以用数组和链表实现。包含入栈(append)和出栈(pop)操作。入栈和出栈不会涉及到其他元素的整体移动,时间复杂度都是O(1)。遵循先入后出的原则(FILO)。应用:实现递归的逻辑 面包屑导航逻辑结构 线性结构 顺序表、栈、队列 非线性结构 树...
2020-08-23 17:06:15 413
原创 数据结构基础-数组、链表
数组是什么?数组是有限个相同类型的变量所组成的有序集合。它在内存中顺序存储,在python中,并没有直接使用数组这个概念。而是使用列表和元组这两种集合,本质上都是对数组的封装。列表是一个动态可扩展的数组,支持任意地添加、删除、修改元素。元组是一个不可变的集合,一旦创建就不在支持修改。数组的基本操作1、读取元素 根据数组下标进行读取list = [1,2,3,4,5]print(list[2])2、更新元素list[3] = 10print(list[3])数组读取..
2020-08-23 15:52:18 265
原创 数据结构和算法-算法概述
什么是算法?在计算机领域里,算法是一系列程序指令,用于处理特定运算和逻辑问题。衡量算法优劣的主要标准是时间复杂度和空间复杂度什么是数据结构?数据结构,即 data structure。是数据的组织、管理和存储格式。其使用的目的是高效地访问和修改数据。数据结构的组成方式?线性结构。数组、链表、栈、队列、哈希表 树。二叉树、二叉堆 图。什么是时间复杂度?一个算法运行时间长短的量度。时间复杂度就是把程序的相对执行时间函数T(n)简化为一个数量级,这个数量级可以是n、n^2、n^3
2020-08-22 22:51:23 188
原创 数据仓库-我对分层的一点理解
谈到数据仓库的分层,你知道为什么要分层吗?你可能会这么说。。。什么1、清晰数据结构、复杂问题简单化2、减少重复开发、统一数据口径分层是有业务需求才去做的,而不是为了分层而分层。由于你的数据量又大又杂,数据一点都不好用,所以出现了分层。所以分层本质上是解决了易用性,降低使用数据的成本。如果不分层的话,会怎么样呢?不分层的话,不同的人需要同一份数据时,都需要都从原始数据开始计算,同时也会造成数据不一致问题。而分层后,我提前已经计算好了,直接在我的公共层取,一定程度上节省计算资源,同时统一
2020-08-22 18:43:00 420
原创 数据仓库-缓慢渐变维-拉链表
一、拉链表基础缓慢渐变维:维度会随着时间发生缓慢的变化。处理方式: 全量快照 拉链表 全量快照很简单,今天我们来看看拉链表。。。拉链表是处理缓慢渐变维的一种方式,它区别于正常的表而言,会多两个字段,start_date和end_date,代表这条数据的起始时间和结束时间。 id name sex dept Start_date End_da...
2020-08-22 17:49:32 875
原创 数据仓库-Hive调优和数据倾斜
一、Hive调优:影响Hive效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、job或I/O过多、MapReduce分配不合理等等大的方向分存储优化和计算优化。存储优化:生命周期管理 定期盘点,无用数据删除 模型相似度检测 数据压缩 模型重构 优化分层计算优化:分区裁剪、列裁剪 、谓词下推(where谓词逻辑都尽可能提前执行,减少下游处理的数据量) 在UNION ALL内部尽可能不使用GROUP BY,改为在外层统一GROUP BY 尽量避免使用DISTINCT关键字
2020-08-22 16:57:48 248
原创 我对维度建模和范式建模的一点理解
谈维度建模和范式建模之前,先了解下模型设计的三个阶段吧。。概念模型 将业务划分成几个主题 逻辑模型 定义各种实体、属性、关系 物理模型 设计数据对象的物理实现,比如表的命名规范、字段的命名规范、字段类型等一、范式建模我先来介绍一下范式。。。范式:即关系模式。一张数据表的表结构,符合的设计标准的级别 目的在于降低数据的冗余性和保证数据的一致性。缺点是获取数据时,需要通过Join拼接出最后的数据。常见的范式有:域都应该是原子性。即数据不可分割 特殊:json 在...
2020-08-22 11:27:16 6601
原创 数据仓库你需要知道的3个区别
数据仓库你需要知道的3个区别提示:以下是本篇文章正文内容,下面案例可供参考一、OLTP和OLAP的区别 OLAP OLTP 全称 On-line Analytical Processing On-line Transaction Processing 应用场景 数据仓库 数据库 核心 ..
2020-08-22 10:39:49 1193 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人