![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
文章平均质量分 95
MrZhangBaby
世界上并没有完美的程序,
但我们并不因此而沮丧,
因为写程序本来就是一个不断追求完美的过程。
你可以不够优秀,但不要甘于平凡。
展开
-
谈笑间学会数仓—主题域&&数据域
谈笑间学会数仓—主题域&&数据域在之前的文章里虽然没有按照顺序来,但是基本上都介绍了数据仓库建设的大概流程,比如技术架构方案设计、建模方法论、数仓分层、开发规范、数仓建设中的各种事实表、维度表、事务事实表、累计快照表、周期快照表、流水表、增量表、全量表等常用的表。那么下面再来说一下,漏掉的东西。那就是数仓建设中不可缺少的一环—域的划分。域又分为主题域、数据域,如何划分呢?一起来看一下吧~为什么会有域的概念呢?首先来看看数据仓库的定义吧,数据仓库是一个面向主题的、集成的、相对稳定的、反映原创 2020-09-08 17:01:46 · 7591 阅读 · 0 评论 -
谈笑间学会数仓—开发规范
谈笑间学会数仓—开发规范文章目录谈笑间学会数仓—开发规范前言数据库/表命名规范数据库公共维表 dim公共明细层 dwd公共汇总层 dws应用数据层 ads临时存储层 tmp字段命名规范关键字字段类型规范常用系统词汇SQL 编码规范编码原则基本需求编码规范代码头部字段排序要求select 子句排列与运算符前后间隔要求子查询嵌套编写与别名定义注释总体说明表设计规范表设计分区设计表数据存储规范前言为提高开发的进度,大数据中台开发,需要一套约定的数据库表与字段的命名规范,避免在后续开发中使用原来数据库表时,因原创 2020-09-07 17:37:47 · 507 阅读 · 0 评论 -
谈笑间学会数仓—周期快照表&累积快照表
周期快照表按固定周期对事实表进行统计生成的表,按时间段保存记录,增量更新。应用场景需要统计一个季度的商品成交量怎么取做?如果用一个季度内的事实事务表进行计算,虽然可以得出结果但是效率太低,在实际生产中并不可行,因此,需要定期对指定的度量进行整合,作为周期快照表用于下游应用。一般设计事实表时,事务事实表和周期快照表是成对设计的,大部分的周期表由事务表加工产生,还有部分特殊数据是直接应用系统产生(如订单评价)。概念定义周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,时间间隔如每天、每月、每年原创 2020-09-01 15:15:06 · 4639 阅读 · 2 评论 -
Impala中的invalidate metadata 和refrsh
Impala中的invalidate metadata 和refrshimpala是啥子?Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。并且impala兼容Hive的sql解析,实现了Hive的SQL语义的子集,功能还在不断的完善中。Impala与Hive有什么关系?Impala 与Hive都是构建在Hadoop之上的数据查询工具各有不同的侧重适应面,但从客户端使用来看Impala与Hi原创 2020-08-31 15:27:48 · 1057 阅读 · 0 评论 -
谈笑间学会数仓—拉链表&&流水表
拉链表 && 流水表前言拉链表:维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已,通过拉链表可以很方便的还原出拉链时点的客户记录。流水表: 对于表的每一个修改都会记录,可以用于反映实际记录的变更。适用场景对比拉链表通常是对账户信息的历史变动进行处理保留的结果,流水表是每天的交易形成的历史;流水表用于统计业务相关情况,拉链表用于统计账户及客户的情况数据仓库之拉链表(原理、设计以及在Hive中的实现)原创 2020-08-27 18:54:08 · 1750 阅读 · 0 评论 -
谈笑间学会数仓—全量表&&增量表
全量表全量表增量表数据包含到前一天的全量数据前一天的增量数据分区不分区(ymd为当前日期)(但是也有按天全量设计的,也叫全量表)按照每一天分区保存每天所有的最新状态的数据。(1)全量表,有无变化,都要报(2)每次上报的数据都是所有的数据(变化的 + 没有变化的)一般导入数据时,不进行任何操作导入的数据就是全量表。例如:平时使用sqoop直接导入,或者load加载,不需要任何特殊的操作,全表覆盖或者先删除表再插入数据,就是全量表。以用户表为例,假设该表从2原创 2020-08-24 18:12:05 · 3817 阅读 · 0 评论 -
谈笑间学会数仓—维度表概念及设计案例
维度表维度定义从某个角度观察事实数据的窗口,存储的数据用来从某个角度描述事实。维度表可以看成是用户用来分析一个事实的窗口,它里面的数据应该是对事实的各个方面描述,比如时间维度表,它里面的数据就是一些日,周,月,季,年,日期等数据,维度表只能是事实表的一个分析角度。换句话说 维度表可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。维度的构成维度的元素:维原创 2020-08-21 11:52:35 · 2476 阅读 · 0 评论 -
谈笑间学会Hive—你不知道的2concat*
2concat*是啥子?指的是hive中的concat()函数、concat_ws()函数为啥子写呢?今天在核对数据的时候发现了一个问题,问题产生的原因是这样的。核对数据需要参照表对吧?不管是父表还是兄弟姐妹表,总之是要有关联的,才有办法核对数据嘛。怎么核数呢?核对表与对照表的数据量、记录数情况核对表中主键个数及是否存在重复(可能有人会说,既然是主键重复p呀,核算什么?大哥这里用的Hive没有主键的概念哦~)对照表 && 结果表进行关联核数,根据结果判断是否有异常主键数据原创 2020-08-19 15:23:06 · 275 阅读 · 0 评论 -
谈笑间学会数仓—表的种类和特征-事务事实表
谈笑间学会数仓—表的种类和特征-事务事实表事务事实表概念可以看做是保存某一事务的日志数据,事务一旦被提交就成为历史数据,只能以增量的方式维护。事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务记录一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。由于事实表具有稀疏性质 ,因此只有当天数据才会进入 当天的事实表中,相当于每个分区里面都是每天的数据,不包含之前的数据。事务事实表的原创 2020-08-19 11:16:26 · 762 阅读 · 0 评论 -
谈笑间学会大数据-Hive中的分桶表
谈笑间学会大数据-Hive中的分桶表你可以不够优秀,但是不要甘于平凡Hive中的分桶表官方文档首先我们可以参考下官方文档,对于创建分桶表的一些描述https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-BucketedSortedTables什么是分桶表? 分桶是相对分区进行更细粒度的划分。分桶将整个数据内容安装某列属性值得hash值进行区分,如要安装name原创 2020-06-21 22:34:00 · 348 阅读 · 0 评论 -
谈笑间学会大数据-Hive中的排序
谈笑间学会大数据-Hive中的排序Hive中的四种排序order by 、 sort by 、 distribute by 、cluster by首先贴一下官网对于Hive排序的几种方法的介绍:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy总述order by全局排序;对输入的数据做排序,故此只有一个reducer(多个reducer无法保证全局有序);只有一个reducer,会导致当输入规模较大原创 2020-06-15 00:14:26 · 564 阅读 · 2 评论 -
谈笑间学会大数据-Hive函数
谈笑间学会大数据-Hive函数 用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。正如我们将看到的,用户使用Java进行编码。一旦将用户自定义函数加入到用户会话中(交互式的或者通过脚本执行的),它们就将和内置的函数一样使用,甚至可以提供联机帮助。Hive具有多种类型的用户自定义函数,每一种都会针对输入数据执行特定“一类”的转换过程。 在ETL处理中,一个处理过程可能包含多个处理步骤。Hive语言具有多种方式来将上一步骤的输入通过管道传递给下一个步骤,然后在一个查询中产生众多输出原创 2020-06-01 17:43:55 · 255 阅读 · 0 评论 -
谈笑间学会大数据-Hive调优策略
谈笑间学会大数据-Hive调优策略 Hive SQL是一种声明试语言,用户会提交声明式的查询,而Hive会将其转换成MapReduce job,大多数情况下,用户不需要了解Hive内部的实现原理的,这样就可以专注业务的事情,不再关注底层实现了。 不过,当用户对于Hive具有越来越多的经验后,了解一下Hive背后的理论知识和底层的一些实现细节,会让用户更加高效地使用Hive。使用exp...原创 2020-05-06 15:54:43 · 392 阅读 · 0 评论 -
谈笑间学会大数据-Hive设计模式
谈笑间学会大数据-Hive设计模式 Hive看上去以及实际香味都像是一个关系型数据库。用户对如表和列这列术语比较熟悉,而且Hive提供的查询语言和用户之前使用过的SQL方言非常地相似。不过,Hive实现和使用的方法和传统的关系型数据库是非常不通的。通常,用户视图移植关系型数据库中的模式,而事实上Hive是反模式的。按天划分的表 按天划分表就是一种模式,其通常会在表名中加入一个时间戳,...原创 2020-04-13 17:52:38 · 294 阅读 · 0 评论 -
谈笑间学会大数据-Hive索引
谈笑间学会大数据-Hive索引 Hive 只有有限的索引功能。Hive中没有普通关系型数据库中键的概念,但是还是可以对一些字段建立索引来加速某些操作的。一张表的索引数据存储在另外一张表中。 同时,因为这是一个相对比较新的功能,所以目前还没有提供很多的选择。然而,索引处理模块被设计成为可以定制的Java编码的插件,因此,用户可以根据需求要对其进行实现,以满足自身的需求。 当逻辑分区...原创 2020-04-09 17:45:19 · 324 阅读 · 1 评论 -
谈笑间学会大数据-Hive视图
谈笑间学会大数据-Hive视图视图是什么? 视图可以允许保存一个查询并像对待表一样对这个查询进行操作。这是一个逻辑结构,因为它不像一个表会存储数据。换句话说,Hive目前暂不支持物化视图。当一个查询引用一个视图时,这个视图所定义的查询语句将和用户的查询语句组合在一起,然后供Hive制定查询计划。从逻辑上讲,可以想象为Hive先执行这个视图,然后使用这个结果进行余下后续的查询。 使用视...原创 2020-04-07 19:48:48 · 364 阅读 · 1 评论 -
谈笑间学会大数据-Hive查询SQL
Hive查询SQL这篇博客呢,不想说太多基础,有些东西像MySQL类似的语法,简单的select...from...这种大家都会的,我就不bb了~原则上:大多数情况是,MySQL支持的SQL语法,在Hive中也同样适用...使用正则表达式来指定列SELECT symbol, `price.*`FROM stocks;SQL执行以后的大致效果...原创 2020-04-02 16:21:53 · 373 阅读 · 1 评论 -
Hive使用正则表达式模糊匹配列报错
报错信息:Invalid table alias or column reference ‘name.*’hive> select * from test_stu_3 > ;OK张三 张三 12李四 李四 10wangwu wangwu 8赵六 赵六 1Time taken: 0.124 seconds, Fetched: 4 row(s)hive> s...原创 2020-04-02 11:47:37 · 1682 阅读 · 0 评论 -
星型模型&&雪花模型
星型模型&&雪花模型星型模型星型模式是多维的数据关系,它由事实表(Fact Table)和维表(Dimension Table)组成。每个维表中都会有一个维作为主键,所有这些维的主键结合成事实表的主键。事实表的非主键属性称为事实,它们一般都是数值或其他可以进行计算的数据。在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。...原创 2020-03-31 17:39:11 · 1779 阅读 · 0 评论 -
谈笑间学会大数据-hivesql练习题-小试牛刀
Hive练习题第1题我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 ...原创 2020-03-31 16:55:54 · 289 阅读 · 0 评论 -
谈笑间学会大数据-hivesql练习题参考答案
第1题我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1...原创 2020-03-31 16:45:01 · 451 阅读 · 0 评论 -
谈笑间学会大数据-Hive数据定义
Hive数据定义目录Hive数据定义向管理表中装载数据通过查询语句向表中插入数据动态分区插入单个查询语句中创建表并加载数据导出数据向管理表中装载数据既然Hive没有行级别的数据插入、数据更新和删除操作,那么往表中装载数据的唯一途径就是使用一种“大量”的数据装载操作。或者通过其他方式仅仅将文件写入到正确的目录下。load data local inpath ...原创 2020-03-31 15:12:53 · 200 阅读 · 0 评论 -
谈笑间学会大数据-Hive数据定义
Hive数据定义前言HiveQL是Hive查询语言。和普遍使用的所有SQL方言一样,它不完全遵守任一种ANSISQL标准的修订版。HiveQL可能和MySQL的方言最接近,但是两者还是存在显著性差异的。Hive不支持行级插入操作、更新操作和删除操作。Hive也不支持事务。Hive增加了在Hadoop背景下的可以提供更高性能的扩展,以及一些个性化的扩展,甚至还增加了一些外部程序。Hive...原创 2020-03-27 16:29:51 · 346 阅读 · 0 评论 -
谈笑间学会大数据-Hive数据类型和文件格式
Hive数据类型和文件格式Hive数据类型数据类型的意义Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型,下面我们将简短地介绍一下这样做的原因。其中一个需要考虑的因素就是这些数据类型是如何在文本文件中进行表示的,同时还要考虑文本存储中为了解决各种性能问题以及其他问题有哪些替代方案。和大多数的数据库相比,Hive具有一个独特的功能,那...原创 2020-03-26 11:48:01 · 401 阅读 · 0 评论 -
谈笑间学会大数据-Hive命令
Hive命令前言Hive是有命令行模式的,你知道吗?很实用,很适合用来学习一些语法呀,简单的操作鸭...不用烦琐的去写代码、打包、上传、运行、就可以实现的哦~$HIVE_HOME/bin/hive这个shell命令(后面我们省略称为hive)是通向包括命令行界面也就是CLI等Hive服务的通道。我们假定用户已经将$HIVE_HOME/bin加入到环境变量PATH中了,则用户只需要在s...原创 2020-03-25 14:54:06 · 344 阅读 · 0 评论 -
谈笑间学会大数据-Hive安装部署及组件架构
Hive安装部署及组件架构Hive安装部署首先贴出hive官网地址:http://hive.apache.org/ 任何一个框架或者组件学习的时候都需要去参考一下官方文档,因为这个是学习这个组件的一种方式,大部分通过看书、看博客来进行学习,有好也有不好吧。好处是:大牛博主都已经进行了总结,让我们更加好接受。缺点:会形成依赖,缺少自己的想法和见解。大牛们怎么知道的呢?其实大部分来源于官网文...原创 2020-03-23 16:12:18 · 321 阅读 · 0 评论 -
谈笑间学会大数据-初识Hive
初识HiveHive 是什么呢?hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉mapreduce的用户可以很方便...原创 2020-03-20 17:57:15 · 334 阅读 · 2 评论 -
Hive从身份证号中提取相关信息_性别_年龄_出生日期_详细地址
Hive从身份证号中提取相关信息_性别_年龄_出生日期_详细地址目录一、居民身份证的简介二、身份证的组成和结构2-1、18位的居民身份证号:2-2、15位的居民身份证号:2-3、地址码三、代码撸起来3-1、提取身份证信息(code表)3-2、身份证信息(接口方式)三、总结一、居民身份证的简介 居民身份证号码,由十七位数字本体码和一位数字校验...原创 2019-11-13 10:40:02 · 6803 阅读 · 1 评论 -
Hive自定义函数心得体会
hive自定义函数分为UDF、UDAF、UDTF函数的使用。 UDF函数的使用主要是针对于单列的操作,UDAF函数主要是针对于多行转单行的操作常用于统计计算。UDTF函数主要是针对于单行转多行的场景,主要是为了解决一些负责的业务场景,需要对字段进行切割。UDF函数主要是针对单列数据进行处理,只需要继承UDF类,实现evaluate 方法即可,在该方法中也可以指定输入参数类型,输...原创 2019-05-28 14:14:53 · 460 阅读 · 0 评论 -
Hive自定义函数解析
Hive运行用户自定义函数对数据信息处理,可以试用show functions查看 hive当前支持的函数。hive支持三种类型的UDF函数:普通UDF函数: 操作单个数据行,且产生一个数据作为输出。例如(数学函数,字符串函数) 聚合udf (UDAF) 接受多个数据行,并产生一个数据行作为输出。例如(COUNT,MAX函数等) 表生成UDF(UDTF) 接受一个数据行,然后返回...原创 2019-05-28 14:14:07 · 407 阅读 · 0 评论 -
Hive 删除包含表的数据库
默认情况下是不允许直接删除一个有表的数据库,那该如何删除呢?当删除一个hive 数据库时,若该 数据库时包含表,则会提示不能删除。hive> drop database bigdata; FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Invalid...原创 2019-05-28 14:04:23 · 2605 阅读 · 0 评论 -
Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
问题导读:1.NTILE作用是什么?2.按照pv降序排列,生成分组内每天的pv名次可使用哪个窗口函数?3.RANK 和 DENSE_RANK作用是什么?本文中介绍前几个序列函数,NTILE,ROW_NUMBER,RANK,DENSE_RANK,下面会一一解释各自的用途。Hive版本为 apache-hive-0.13.1注意: 序列函数不支持WINDOW子句。(什么是WINDOW子...原创 2019-04-15 15:22:50 · 184 阅读 · 0 评论 -
Hive分析窗口函数深入(一) SUM,AVG,MIN,MAX
问题导读:1、Hive分析窗口函数SUM如何实现?2、Hive分析窗口函数AVG脚本如何编写?3、Hive分析窗口函数MIN、MAX脚本如何实现?Hive中提供了越来越多的分析函数,用于完成负责的统计分析。抽时间将所有的分析窗口函数理一遍,将陆续发布。今天先看几个基础的,SUM、AVG、MIN、MAX。用于实现分组内所有和连续累积的统计。Hive版本为 apache-hive-0.13....原创 2019-04-15 15:06:36 · 330 阅读 · 0 评论 -
Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP 操作指南
问题导读1.GROUPING SETS与另外哪种方式等价?2.根据GROUP BY的维度的所有组合进行聚合由哪个关键字完成?3.ROLLUP与ROLLUP关系是什么?GROUPING SETS,GROUPING__ID,CUBE,ROLLUP这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时、天、月的UV数。Hive版本为 apac...原创 2019-04-16 18:07:09 · 458 阅读 · 0 评论 -
Hive分析窗口函数(四) LAG,LEAD,FIRST_VALUE,LAST_VALUE
问题导读1.LAG功能是什么?2.LEAD与LAG功能有什么相似的地方那个?3.FIRST_VALUE与LAST_VALUE分别完成什么功能?继续学习这四个分析函数(LAG,LEAD,FIRST_VALUE,LAST_VALUE)。注意: 这几个函数不支持WINDOW子句。Hive版本为 apache-hive-0.13.1数据准备: cookie1,2019-04-1...原创 2019-04-16 18:05:37 · 555 阅读 · 0 评论 -
Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
问题导读:1、CUME_DIST如何使用?2、PERCENT_RANK作用是什么?这两个序列分析函数不是很常用,这里也介绍一下。注意: 序列函数不支持WINDOW子句。Hive版本为 apache-hive-0.13.1数据准备:d1,user1,1000 d1,user2,2000 d1,user3,3000 d2,user4,4000 d2,user5,50...原创 2019-04-16 17:43:05 · 460 阅读 · 0 评论 -
hive中行转列,列转行的场景及实现
hive行转列,列转行的应用场景:1、 需要取“订单号”对应的所有商品“SKU号”,商品“sku号”放在一列,即从table1查询出table2;2、 当商品“sku号”均在一列的时候,需要查询每个“sku号”对应的“订单号”,即从table2查询出table1。3、场景:在hive表中,一个用户会有多个人群标签,List格式(逗号分隔如要转成List),有时我们需要统计一个人群标签下有...原创 2019-04-09 21:02:09 · 1565 阅读 · 0 评论 -
hive优化-文件存储格式和压缩方法
hive调优是比较大的专题,需要结合实际的业务,数据的类型,分布,质量状况等来实际的考虑如何进行系统性的优化,hive底层是mapreduce,所以hadoop调优也是hive调优的一个基础,hvie调优可以分为几个模块进行考虑,数据的压缩与存储,sql的优化,hive参数的优化,解决数据的倾斜等。主要分为以下几块:第一:数据的压缩与存储格式对分析的数据选择合适的存储格...原创 2019-06-29 15:45:42 · 3577 阅读 · 2 评论 -
hive 调优-参数优化
一、hive参数优化 hive通过将查询划分成一个或多个MapReduce任务达到并行处理的目的。每个任务都可能具有多个mapper和reducer任务,其中至少有一些是可以并行执行的。确定最佳的mapper个数和reducer个数取决于多个变量,例如输入的数据量大小以及对这些数据执行的操作类型等。保持平衡性是很有必要的,对于Spark/Hadoop这样的大数据系统来讲,数据量大...原创 2019-06-29 17:08:11 · 992 阅读 · 0 评论 -
hive调优-详细参数配置
Hive参数配置调优 hive通过将查询划分成一个或多个MapReduce任务达到并行处理的目的。每个任务都可能具有多个mapper和reducer任务,其中至少有一些是可以并行执行的。确定最佳的mapper个数和reducer个数取决于多个变量,例如输入的数据量大小以及对这些数据执行的操作类型等。 保持平衡性是很有必要的,对于Spark/Hadoop这样的大数据系统来讲,数据量大...转载 2019-06-29 17:10:56 · 385 阅读 · 0 评论