大数据
文章平均质量分 79
斑马!
本科和研究生就读于某普通一本院校的计算机科学与技术专业,目前研究生三年级,暑期实习拿到美团,阿里,京东等大厂offer;秋招拿到了美团,京东,小米等大厂offer。方向是大数据开发工程师,主要做的是离线数仓和实时数仓这块。有想一起学习的小伙伴可以通过博客联系我!
展开
-
开发实践中发现group by去重不生效
工作反思原创 2022-12-07 17:00:36 · 1405 阅读 · 0 评论 -
hive窗口函数最全总结
hive窗口函数使用原创 2022-09-02 17:23:44 · 9932 阅读 · 4 评论 -
hivesql中case when的基础总结和进阶使用
case when最全总结原创 2022-07-03 14:54:12 · 14466 阅读 · 0 评论 -
HIve压缩和存储
3.8 数据压缩3.8.1 数据压缩的优缺点优点:减少磁盘I/O,减少磁盘存储空间。缺点:增加CPU开销。3.8.2 压缩原则1)运算密集型的Job,少用压缩。2)I/O密集型的Job,多用压缩3.8.3 MapReduce支持的压缩编码LZO可以进行切片,需要建立索引,还需要指定输入格式;Snappy不支持切片,和文本处理一样,不需要修改3.9存储格式介绍3.9.1 TextFile简介......原创 2022-06-03 10:26:09 · 1508 阅读 · 1 评论 -
大数据领域的一些重要网站和经典文章
大数据领域的一些重要网站和经典文章原创 2022-06-02 16:15:15 · 299 阅读 · 0 评论 -
mysql事务和隔离级别
目录1. 事务的概念和特效1.1 事务1.2 事务的acid属性1.3 多个事务导致的并发问题2.事务处理3. 事务的隔离级别1. 事务的概念和特效1.1 事务事务由单独单元的一个或者多个SQL语句组成,在这个单元中,每个SQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或者产生错误,整个单元将会回滚。所有受影响的数据将返回到事务开始以前的状态;如果单元中的所有SQL语句均执行成功,则事务被顺利执行。...原创 2022-05-23 14:59:34 · 173 阅读 · 0 评论 -
mysql的约束总结
目录什么是约束?约束分类约束使用not null约束unique约束primary key约束foreign key什么是约束? 为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制。 约束是表级的强制规定。 可以在创建表时候规定约束(create table语句),或者在表创建之后也可以(通过alter table 语句)。 约束分类1)一般分类 not null 非空约束,规定某个字段不能为空; ..原创 2022-05-22 23:10:31 · 307 阅读 · 0 评论 -
hive调优最全总结
目录第八章 数据调优及其原理11/158.1 小问题问题8.1.1 小文件的危害8.1.2 小文件的产生原理8.1.3 小文件的治理方案8.2 数据倾斜问题8.3 减少数据量8.4 参数优化8.5 企业级调优第八章 数据调优及其原理11/158.1 小问题问题小文件过多会占用大量内存,且在初始化时会占用大量计算资源,严重影响性能。对于已经存在的小文件,建议把小文件进行归档;重建表,建表的时候减少reduce数量;通过参数调节,设置map/re...原创 2021-11-19 10:44:05 · 4251 阅读 · 0 评论 -
Hive函数大全
目录第四章 Hive函数4.1 聚合函数4.2 关系函数4.3 数学运算4.4 逻辑运算4.5 数值运算4.6 条件函数4.7 日期函数4.8 字符串函数4.9 字符串截取函数4.10 去空格函数4.11 正则表达式与解析函数4.12 explode函数4.13 行转列与列转行4.14 基础窗口函数与分析函数4.14.1 窗口函数简介4.14.2 窗口的含义4.14.3 窗口函数分类4.14.4 窗口函数的使用4.14.5.原创 2021-11-12 18:08:23 · 8731 阅读 · 0 评论 -
大数据--spark生态6--spark高频面试题(常见算子之间的异同点)
一:map和mappartitions区别 map是对rdd中的每一个元素进行操作,mapPartitions则是对rdd中每个分区的迭代器进行操作;从性能上看,mappartitions的性能较高,举例来说,如果一个partition中有一万条数据,在使用map的时候,function需要执行和计算1万次;使用mappartitions操作的时候,一个task仅仅会执行一次function。从瓶颈上说,如果一个分区里面数据量过大,比如几百万条,一次传入function以后,内存可能不够,...原创 2022-04-13 16:02:51 · 1859 阅读 · 0 评论 -
大数据--spark生态7--spark的shuffle过程详解
目录一: 理解shuffle二: shuffle write2.1 shuffle write的目标2.2 shuffle write的位置2.3 桶(bucket)2.4 默认分区算法2.5 bucket数量太多的解决方案三: shuffle read3.1 在什么时候fetch3.2 边fetch边处理还是一次性fetch完再处理?3.3 fetch来的数据存放在哪?3.4 如何获得要fetch的数据的存放位置?3.5 reduce端的shuffle原创 2022-04-13 14:42:36 · 2735 阅读 · 0 评论 -
大数据--spark生态4--sparkSQL
目录一:rdd转换算子1.1 value类型1.2 key-value类型二:rdd行动算子一:rdd转换算子1.1 value类型map将处理的数据进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。mappartitions将待处理的数据以分区为单位发送到计算节点进行处理,这里的处理是指可以进行任意的处理。flatMap将处理的数据进行扁平化后再进行映射处理,所以算子也称扁平映射。glom将同一个分区的数据直接转换为相同类型的内存数组进行处原创 2022-03-09 11:17:29 · 2850 阅读 · 0 评论 -
数据倾斜产生,原因及其解决方案
目录第七章 数据倾斜7.1 数据倾斜的产生,表现与原因7.1.1 数据倾斜的定义7.1.2 数据倾斜的危害7.1.3 数据倾斜发生的现象7.2 数据倾斜倾斜造成的原因7.3 几种常见的数据倾斜及其解决方案7.3.1 空值引发的数据倾斜7.3.2 不同数据类型引发的数据倾斜7.3.3 表连接时引发的数据倾斜7.3.4 group by分组时候key值分布不均7.3.5 count distinct去重的时候key值分布不均7.3.6 排序过程7.2.原创 2021-11-14 15:43:51 · 13549 阅读 · 4 评论 -
Hive底层原理
目录第六章HIve SQL底层执行原理和源代码解析6.1 HIve底层执行架构6.2 HIve底层执行原理6.3 HIve编译成MapReduce过程6.4 HIve编译成MapReduce原理6.4.1 Join的实现原理6.4.2 Group by的实现原理6.4.3 distinct的实现原理第六章HIve SQL底层执行原理和源代码解析6.1 HIve底层执行架构在Hive这一侧,总共有5个组件: UI:用户界面,可以看作我们..原创 2021-11-12 18:11:27 · 4088 阅读 · 1 评论 -
大数据2--hive--hive介绍
第一章 Hive介绍1.1hive概述1.1.1 hive的简介HIve是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQK查询功能。其本质是将SQL转换为MapReduce/Spark的任务进行运算,底层由HDFS来提供数据的存储,说白了,hive可以理解为一个将SQL转换为MapReduce/spark任务的工具。1.1.2 HIve的特点: 可扩展性: Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。 ...原创 2021-10-24 16:54:18 · 2135 阅读 · 0 评论 -
大数据--hadoop生态--hdfs最全总结
目录第二章:HDFS2.1 hdfs主要组件及其功能2.1.1 Hdfs的组成2.1.2 SecondaryNameNode2.2 hdfs数据存储原理2.2.1 冗余数据保存2.2.2 数据存取策略2.2.3 HDFS块的大小2.2.4 数据错误与恢复2.3 hdfs读写数据过程2.3.1 读数据过程2.3.2 写数据过程2.4 DataNode工作机制2.5 hdfs高可用原理2.6 hdfs常用命令命令会导出到当前目录下面)第二章:H原创 2021-10-13 09:33:21 · 469 阅读 · 0 评论 -
大数据--数据仓库--数据同步方式
第四章:同步策略/存储方式4.1 数据存储方式概述首先弄清楚,增量同步,快照同步,增量表,全量表,拉链表之间的关系。4.2 全量全量表无分区,每天凌晨流程执行完后,表中的数据是截至到前一天的全部MySQL数据。全量表可能会update数据,即对某条历史数据进行更新,保存最新的那条数据,一般只包含一个文件。如果需要追溯历史数据,需要存快照表进行操作。当然对于某些业务流水数据库只会新增,不会删改,或者我们不太关注历史数据信息,存全量表也没有问题。...原创 2021-09-08 17:20:20 · 1001 阅读 · 0 评论 -
大数据--数据仓库--事实表设计
目录第三章:事实表设计3.1 事实表设计原则3.2 事实表设计方法3.3 事实表分类3.3.1 事务事实表3.3.2 周期快照事实表3.3.3 累积快照事实表3.3.4 三种事实表比较第三章:事实表设计3.1 事实表设计原则原则1:尽可能包含所有与业务过程相关的事实事实表设计的目的是为了度量业务过程,所以应该分析那些事实与业务过程有关。在事实表中应该尽量包含所有与业务过程相关的事实,即使存在冗余。原则2:只选择与业务过程相关的事实...原创 2021-09-07 20:23:15 · 941 阅读 · 0 评论 -
大数据--数据仓库--缓慢变化维
2.4 缓慢变化维2.4.1 定义2.4.2 常见的处理方式2.4.3 新增维度行2.4.4 添加新的维度列2.4.5 增加微型维度2.4.6 实现方式2.4 缓慢变化维2.4.1 定义数仓的重要特点是反映历史变化,所以如何处理维度的变化是非常重要的。现实世界中维度的属性并不是一成不变的,它随着时间发生缓慢的变化,与数据增长较为快速的事实相比,维度变化相对缓慢,如何处理变化的维度是数仓经常要面对的问题。2.4.2 常见的处理方式 处理...原创 2021-09-06 16:48:20 · 675 阅读 · 0 评论 -
大数据--数据仓库--维度退化
2.3 维度退化不可能将所有与业务相关的维度分类到一个紧凑的表集合中。类似这样的情况,将一个或者多个维度存储到事实表中是合适的选择。采用这种方法,存储事实表中的维度列被称为退化维度,退化维度的过程称为维度退化。更为规范的定义是:当一个维度没有数据仓库需要的任何数据的时候就可以退化此维度,需要把退化的相关数据迁移到事实表中,然后删除退化的维度。与其他存储在维度表中的维度一样,退化维度也可以进行事实表的过滤查询,实现聚合操作等。那么究竟怎么定义退化维度呢?比如说订单id,...原创 2021-09-06 12:06:33 · 7799 阅读 · 3 评论 -
大数据--数据仓库--维度设计
目录第二章:维度设计2.1 维表层建设原则2.1.1 维度的基本概念2.1.2 维度的设计方法2.1.3 确定维度属性2.2 维度模型分类2.2.1 星型模型2.2.2 雪花模型2.2.3 星座模型第二章:维度设计2.1 维表层建设原则2.1.1 维度的基本概念维度是维度建模的基础和灵魂。在维度建模中,将度量称为“事实”,将环境描述为“维度”。维度是用于分析事实所需要的多样环境。例如,在分析交易过程中,可以通过买家,卖家,商品和时间等维...原创 2021-09-05 17:01:33 · 597 阅读 · 0 评论 -
大数据--数据仓库--数仓分层架构及建模原则
目录1.3 数据分层架构1.3.1分层架构示意图1.3.2.数据 流向1.3 建模原则1.3.1 规范定义1.3.2 建模原则1.3 数据分层架构1.3.1分层架构示意图1.3.2.数据流向1.3 建模原则1.3.1 规范定义规范定义指以维度建模作为理论基础,构建总线矩阵,划分和定义数据域,业务过程,维度,度量、原子指标,修饰类型,修饰词,时间周期,派生指标。1.现在对一些常用的名词术语进行解释 数据域 ...原创 2021-09-03 16:50:50 · 1938 阅读 · 0 评论 -
大数据--数据仓库--数仓分层和架构
目录1.1 数仓分层规范1.1.1 为什么需要数据建模1.1.2 维度模型1.1.3 标准数仓分层1.1.4 其他数仓分层1.2 常见的数据架构1.2.1 传统关系数据库--范式建模1.2.2 .Kimball架构和Inmon架构1.1 数仓分层规范1.1.1 为什么需要数据建模大数据系统需要数据模型方法来帮助更好的组织和存储数据,以便在性能,成本,效率和质量之间取得最佳平衡。 性能:良好的数据模型能够帮我们快速查询所需要的数据,减少...原创 2021-09-02 21:39:49 · 616 阅读 · 0 评论 -
大数据--hive--经典SQL题目(百度面试SQL题目)
一:题目一:第n多和连续三天思维有一个日志数据解析得到的table 有三个字段:timestamp username user_action1)统计近10天每日行为数量2)行为第三多的用户及其数量3)连续3天有行为的用户?解答:1.1统计近10天每日行为数量1.1.1 答案:-- 统计近10天每日行为数量select pt_dt, count(1)from( select to_date(timest...原创 2021-09-01 17:57:51 · 1354 阅读 · 0 评论 -
大数据--数据仓库--数据仓库分层总结
一:数仓分层(标准五层) 电商数仓建设:采用flume,kafka导入日志数据,采用sqoop导入业务数据。接着进行数仓分层建模。ods层: 保持数据原貌,不做任何修改,起到数据备份作用; 创建分区表,防止后续全表扫描 采用压缩,减少磁盘存储空间。 补充orc格式:列式存储,有多种文件压缩方式,并且有很高的压缩比;文件是可切分的,提供 多种索引。dwd层: 描述业务事实。具体建模过程:选择业务过程-- 声明粒度 -- 确认维...原创 2021-08-31 15:11:55 · 960 阅读 · 0 评论 -
大数据--hadoop生态13--查漏补缺
目录一:hdfs组成二:hdfs存储和高可用原理三:hdfs读写数据过程四:MapReduce体系结构和执行流程五:zookeeper介绍六:flume总结七:yarn介绍八:Kafka介绍一:hdfs组成二:hdfs存储和高可用原理三:hdfs读写数据过程四:MapReduce体系结构和执行流程五:zookeeper介绍六:flume总结七:yarn介绍八:Kafka介绍...原创 2021-08-30 21:30:01 · 151 阅读 · 0 评论 -
大数据--数据仓库9--查漏补缺
1.hive中不支持where条件中有子查询2.mysql建表的时候可以指定primary key, key。3.mysql中清空表名使用truncate table 表名4.动态分区的设置:set hive.exec.dynamic.partition = true5.一致性:维度一致性,命令一致性,代码一致性6.order by时候null值处理:row_number() over(partition by id order by job desc null last)即:原创 2021-07-04 23:23:10 · 246 阅读 · 3 评论 -
大数据--数据仓库8--数仓建模
一:数仓建模原则1.1 原子数据需要详细 维度建模应该使用最基础的原子数据进行填充,以支持不可预知的来自用户查询的过滤和分组请求。用户通常不希望每次只看到一个单一的记录,但是你无法预测用户想要掩盖或者显示那些数据。1.2 相同的粒度或者同级的详细程度 在组织事实表时候,粒度有三个基本原则:事务,周期快照,累加快照。无论粒度如何,事实表中的度量单位都必须达到相同水平的详细程度;如果事实表中的事实表现的粒度不一样,企业用户容易混淆,BI应用程序也会随之变得不堪一击,从而导致返回的结果...原创 2021-07-04 18:34:32 · 352 阅读 · 0 评论 -
大数据--数据仓库7--建模和同步方式和建模技术补充
目录一:表的分类/同步方式1.1 全量表:1.2 快照表1.3 增量表1.4 拉链表2.各同步方式区别2.1:增量表不约束分区与全量表区别?2.2 三种表数据和分区区别2.3 经典例子3.数据一致性检查3.1 什么是数据一致性3.2 如何检查一:表的分类/同步方式1.1 全量表:注意:一般以_all为后缀。全量表无分区,每天凌晨流程执行完后,表中的数据是截止到前一天的全部mysql数据。(全量表可能会使用update数据,即对某条历史数据进原创 2021-07-04 17:46:38 · 223 阅读 · 0 评论 -
大数据--数据仓库6--doris深入总结
目录一:doris角色二:doris关键特性三:分区和分桶四:rollup4.1作用:4.2 概念:4.3 rollup说明五:前缀索引六:数据模型6.1 aggregate聚合模型6.1.1 导入数据聚合6.1.2 保留明细数据6.2.3 导入数据与已有数据聚合6.1.4 局限性6.2 uniq主键模型6.3 duplicate明细模型6.4 数据模型的选择建议七.mysql和doris区别八:总结一:doris角色二原创 2021-07-03 16:29:25 · 4642 阅读 · 0 评论 -
大数据--数据仓库5--doris学习总结
目录一:doris介绍二:开源olap引擎比较三:doris基本概念和架构图3.1 基本概念3.2 架构图4. doris数据导入5. doris的三种数据模型一:doris介绍 doris是一个基于mpp(massively parallel processing,即大规模并行处理)的交互式sql数据仓库,是一个面向多种数据分析场景的,兼容mysql协议的,高性能的,分布式关系型列式数据库,用于报告和分析。具体的业务场景包括:数据仓库建设 olap分析..原创 2021-06-27 21:33:42 · 2842 阅读 · 1 评论 -
hive实战12--时间占比和上一小时逻辑
目录一:已知表结构和字段二:需求1:时间占比三:需求2--目前小时与上一小时比较四:使用窗口函数lag()解决需求三五:只存储电脑每天最后一次更新的时间对应的信息一:已知表结构和字段 某电脑售卖数据表computer,从左至右依次为location,店铺ID,某天,某小时,某分钟,商品是否到期,商品的存量,商品卖出的数量,商品进货数量/location ID pt_day pt_hour pt_minute good_computer ..原创 2021-06-27 19:24:10 · 906 阅读 · 1 评论 -
mysql的主键/删除操作等
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/class Solution原创 2021-06-27 15:24:39 · 494 阅读 · 0 评论 -
mysql索引使用总结
一:样例:创建表的时候就创建索引create table if not exists 'target.table'( id, report_date, fence_id, region_key primary key('id'), key 'fence_key' ('fence_id'), key 'region_key' ('region_code'))Engine = Innodb default charset = utf8mb4原创 2021-06-20 23:10:38 · 123 阅读 · 0 评论 -
大数据--hive11--留存指标的计算
一:留存定义 以天为单位,跨天后再来访问即为留存,例如给定我们的需求:知道指定日期后隔1-14天的留存,如2020-08-01天来的访客,之后1天,2天,3天,....再来人数。注意:我们要清楚留存是针对谁(那个日期)来说的例如用户a25日有记录,26日没有记录,27日有记录。那么我们是针对25日来说的,也就是说25日的用户a,1日留存没有, 有2日留存。 留存率:具体问题具体分析,一般分母都是2020-08-01的人数。二:真实需求,求14日的留存2.1 源数据...原创 2021-06-10 19:11:04 · 515 阅读 · 0 评论 -
大数据--数据仓库4--建模/架构
一:数据建模原则高内聚和底耦合 将业务xiang'jin原创 2021-06-07 21:30:54 · 214 阅读 · 3 评论 -
大数据--数据仓库3--数据质量/元数据/数据治理
一:数据一致性如何保证1.1 数据不一致性的体现同样的指标来自两张不同的表,结果不一样 同样的指标,数据源自同一张表,但是是2个需求,指标口径不统一。 同一个指标,命名不一样,导致重复计算。 不同的两个指标,命名一样,导致产生误解1.2 数据一致性的目标从设计,开发,部署和使用层面,避免重复建设和指标冗余建设,从而保障数据口径的规范和统一,最终实现数据资产全链路关联,提供标准数据输出以及建立统一的数据公共层。二:数据质量管理三:元数据管理四:Clickhous...原创 2021-06-07 15:32:35 · 1265 阅读 · 0 评论 -
大数据--spark生态3--RDD介绍及其算子
一:RDD创建1.1从文件系统中加载数据创建RDD 采用tex1.2通过并行集合(数组)创建RDD原创 2021-06-06 11:04:13 · 534 阅读 · 0 评论 -
大数据--hadoop生态10--Hbase总结
一:HBase简介 Hbase是一个高可靠,高性能,面向列,可伸缩的分布式数据库。原创 2021-06-02 17:36:43 · 317 阅读 · 0 评论 -
大数据--hadoop生态4--MapReduce总结
一:MapReduce模型简介 MapReduce将复杂的,运行于大规模集群上的并行过程高度抽象到两个hanshu原创 2021-06-02 15:08:15 · 357 阅读 · 0 评论