
hive学习
文章平均质量分 53
大大大大肉包
一个喜欢计算机的帅小伙
展开
-
HIVE SQL 进行 Join 和 group by的具体原理及分区方式
在map的输出value中为不同表的数据打上tag标记,在reduce阶段根据tag判断数据来源。原创 2023-04-20 16:20:52 · 738 阅读 · 0 评论 -
离线数仓的数仓分层
ods层:保留数据的原始性ODS层保存所有操作数据,不对原始数据做任何处理。在业务系统和数据仓库之间形成一个隔离,源系统数据结构的变化不影响其他数据分层。减轻业务系统被反复抽取的压力,由ODS统一进行抽取和分发。fds层:对数据进行解析过滤映射等操作。原创 2023-04-19 17:56:27 · 781 阅读 · 0 评论 -
Sql实现某列的值转为列名
使用sql的方式实现某列的值转为列名原创 2023-04-18 16:22:22 · 1304 阅读 · 0 评论 -
Hive中posexplode函数的使用及实现多行炸裂
简单介绍下posexplode函数的使用及如何使用posexplode函数进行多行炸裂效果原创 2023-04-13 16:40:59 · 1241 阅读 · 0 评论 -
行转列与列转行的实现
详细介绍hive中的行转列与列转化行的函数及实现思路原创 2023-04-12 10:11:14 · 281 阅读 · 0 评论 -
拉链表的实现
在拉链表的生成过程中,由于数据源的业务形式实现方式也会有所不同,例如源数据的删除数据的形式是逻辑删除(通过标记说明当前数据已不可用)还是物理删除。原创 2020-12-09 19:42:21 · 501 阅读 · 0 评论 -
数据治理基础
应该是企业顶层设计、战略规划方面的内容,是数据管理活动的总纲和指导,指明数据管理过程中那些决策要被制定,以及由谁来负责,更强调组织模式、责任分工和标准规范。数据治理是个宽泛的概念,而在于数仓日常开发中,对于真正干活的我们来说,最主要要的就是几个方面。原创 2022-09-12 17:14:56 · 535 阅读 · 0 评论 -
hive分桶分区表和内部外部表
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);原创 2022-09-11 20:07:44 · 454 阅读 · 0 评论 -
hive中内部表外部表查看及相互转化
外部表转换成内部表alter table 外部表 set tblproperties ('EXTERNAL'='False');内部表转换成外部表alter table 内部表 set tblproperties ('EXTERNAL'='True');修改完成之后可以通过查看表的结构,查看是否转换成功方法1 :desc formatted 表名;方法2:describe extended 表名如果是内部表,则会显示tableType:MANAGD_TAB原创 2021-10-26 14:12:21 · 900 阅读 · 0 评论 -
hdfs和yarn的常用命令
hdfs和yarn的常用命令原创 2022-09-02 19:52:29 · 324 阅读 · 0 评论 -
缓慢变化维和退化维
属性值被新值覆盖。这种情况只反映最新的情况,易实现,但破坏了历史情况,需小心使用。原创 2022-08-12 20:36:15 · 1001 阅读 · 0 评论 -
hive中如何新增字段
1、方法1alter table 表名 add columns (列名 string COMMENT '新添加的列') CASCADE;与alter table 表名 add columns (列名 string COMMENT '新添加的列');CASCADE会刷历史分区字段2、方法2 (适用于外部表)当分区过多的情况下,直接适用.........原创 2021-09-09 15:38:23 · 46189 阅读 · 3 评论 -
hive中对日期时间的操作
获取当前日期selectcurrent_date;返回 2021-07-05获取当前的时间selectcurrent_timestamp;返回2021-07-0517:00:29.865返回日期部分selectto_date('2021-07-0510:03:32')返回2021-07-05对时间进行相应的格式转化selectdate_format('2015-04-0810:10:01','yyyy-......原创 2021-07-05 17:18:32 · 2156 阅读 · 0 评论 -
Hive中的视图和索引
hive中的索引和视图原创 2022-06-16 12:04:48 · 1275 阅读 · 0 评论 -
Mr、Spark、Flink的区别
(1)计算速度 MR与Spark的根本区别(关键优化)在于:Spark除了需要shuffle的计算,其他是将结果/中间结果持久化到内存中,而MR是都需要落地到磁盘(map.reduce落地都写),Mr势必造成磁盘IO,因此Spark格外适用于频繁读写中间结果的迭代计算。 从任务的并行度看,Spark会增加任务的并行度从而提高速度:由于将中间结果写到磁盘与从磁盘读取中间结果属于不同的环节,MR只是将它们简单的通过串行执行衔接起来。而Spark把不同的环节抽象为Stage,允许多个S原创 2022-06-06 20:54:13 · 1757 阅读 · 0 评论 -
hive中的元数据管理
1、存储Hive版本的元数据表(VERSION)2、Hive数据库相关的元数据表(DBS、DATABASE_PARAMS)DBS:该表存储Hive中所有数据库的基本信息,字段如下:DATABASE_PARAMS:该表存储数据库的相关参数,在CREATE DATABASE时候用WITH DBPROPERTIES(property_name=property_value, …)指定的参数:3、Hive表和视图相关的元数据表主要有TBLS、TABLE_PARAMS、TBL_PRIVS,这三张表通过TBL_ID关联原创 2022-06-06 18:50:25 · 1428 阅读 · 0 评论 -
数据建模相关综述
表的分类1、实体表实体表,一般是指一个现实存在的业务对象。比如用户,商品,商家,销售员等等。用户表: 用户id 姓名 生日 性别 邮箱 用户等级 创建时间 1 张三 2011-11-11 男 zs@163.com 2原创 2020-11-29 23:00:37 · 6133 阅读 · 0 评论 -
OLAP和OLTP的区别及所对应模型
OLAP(On-LineAnalytical Processing)联机分析处理,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。应用在数据仓库,使用对象是决策者。OLAP系统强调的是数据分析,响应速度要求没那么高。OLTP(On-Line Transaction Processing)联机事务处理,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fa.原创 2021-07-27 23:20:11 · 728 阅读 · 0 评论 -
如何设置窗口函数中窗口的大小
当我们不设置窗口的大小时候,默认窗口大小为首行到当前行rows between unbounded preceding and current rowselect count(*) over(partition by col1) from tmp_test;select count(*) over(partition by order by rows between unbounded preceding and current row) from tmp_test;这俩个语句是等价的..原创 2021-09-09 11:29:32 · 719 阅读 · 0 评论 -
hive中的参数设置
1 -- 设置hive的计算引擎为spark 2 set hive.execution.engine=spark; 3 4 -- 修复分区 5 set hive.msck.path.validation=ignore; 6 msck repair table sub_ladm_app_click_day_cnt; 7 8 -- 打印表头 9 set hive.cli.print.header=true;10 set hive.cli.print.row.to.vertical=tru.原创 2021-09-17 13:58:39 · 2902 阅读 · 0 评论 -
MapReduce的原理和其中的排序
Shuffle的过程是从map方法结束到reduce方法开始之前MapTask:1、maptask调用TextinputFormat中封装的LineRecordReader.next()方法去读取对应的切片,每次读一行。2、并返回key(起始偏移量)和value(行内容)。3、再调用xxMapper中的map(key,value,context)方法进行处理。4、并返回context.write(key,value)。5、此时OutputController.collect()会..原创 2021-06-22 16:28:24 · 446 阅读 · 0 评论 -
Hive中数据倾斜和小文件过多的解决方案
数据倾斜:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成。因为其处理的数据量和其他reduce差异过大。原因:某个reduce的数据输入量远远大于其他reduce数据的输入量1)、key分布不均匀2)、业务数据本身的特性3)、建表时考虑不周4)、某些SQL语句本身就有数据倾斜解决方案:(1)参数调节set hive.map.aggr=true --在map端中会做部分聚集操作,效率更高但需要更多的内存原创 2021-07-01 17:41:11 · 997 阅读 · 0 评论 -
hive中count(distinct)的相关优化
1、单个count(distinct)例子:select count(distinct id) as num from table_name方法1(简单,但很多时候效果不明显)select count(id) as num from (select id from table_name group by id) a;方法2(对分组字段进行加盐操作)select sum(tag_num) as numfrom (select tag ,cou原创 2022-04-20 18:18:59 · 4734 阅读 · 0 评论 -
hive的结构和执行流程
hive的结构hive执行流程a. 通过用户接口组件,如命令行方式、页面操作方式或不同驱动程序(JDBC、ODBC等)的客户端,向Hive Driver发送执行命令。目的是获取查询结果。b. 获取查询计划,Driver拿到执行命令后,会向Complier(编译器)获取查询计划c. 获取元数据信息,编译器生成查询计划,首先要获取相关的元数据信息。此步骤为编译器向元数据组间获取元数据信息。d. 元数据组间向编译器发送元数据信息e. 编译器根据获取元数据信息生产计划计划f.原创 2021-06-24 19:04:23 · 3062 阅读 · 3 评论 -
hive中的join相关的优化
1、mapjoin顾明思议,mapJoin的意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作(执行mr过程的map操作)。join就发生在map操作的时候,每当扫描一个大的table中的数据,就要去去查看小表的数据,哪条与之相符,继而进行连接。这里的join会在map阶段完成,仅仅是在内存就进行了两个表的join,并不会涉及reduce操作。map端join的优势就是在于没有shuffle,从而提高效率。在实际的原创 2022-04-20 10:24:56 · 3848 阅读 · 0 评论