Hive
大数据技术与数仓
欢迎关注我的公众号【大数据技术与数仓】
回复【资料】领取大数据书籍与视频
展开
-
数仓开发需要了解的5大SQL分析函数
公众号『大数据技术与数仓』,回复『资料』领取大数据资料包基本语法analytic_function_name([argument_list])OVER ([PARTITION BY partition_expression,…][ORDER BY sort_expression, … [ASC|DESC]])analytic_function_name: 函数名称 — 比如 RANK(), SUM(), FIRST()等等partition_expression: 分区列sort_e.原创 2020-11-24 13:55:42 · 195 阅读 · 0 评论 -
Hive SQL使用过程中的奇怪现象
hive是基于Hadoop的一个数据仓库工具,用来进行数据的ETL,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Hive SQL是一种类SQL语言,与关系型数据库所支持的SQL语法存在微小的差异。本文对比MySQL和Hive所支持的SQL语法,发现相同的SQL语句在Hive和MySQL中输出结果的会有所不同。公众号『大数据技术与数仓』,回复『资料』领取大数据资料包两个整数除除法是SQL引擎难以解释的算术运原创 2020-09-12 15:04:52 · 499 阅读 · 0 评论 -
元数据管理|Hive Hooks和Metastore监听器介绍
元数据管理是数据仓库的核心,它不仅定义了数据仓库有什么,还指明了数据仓库中数据的内容和位置,刻画了数据的提取和转换规则,存储了与数据仓库主题有关的各种商业信息。本文主要介绍Hive Hook和MetaStore Listener,使用这些功能可以进行自动的元数据管理。通过本文你可以了解到:元数据管理Hive Hooks 和 Metastore ListenersHive Hooks基本使用Metastore Listeners基本使用元数据管理元数据定义按照传统的定义,元数据( Metad原创 2020-08-22 16:24:00 · 2627 阅读 · 3 评论 -
Hive的条件函数与日期函数全面汇总解析
在Hive的开窗函数实战的文章中,主要介绍了Hive的分析函数的基本使用。本文是这篇文章的延续,涵盖了Hive所有的条件函数和日期函数,对于每个函数,本文都给出了具体的解释和使用案例,方便在工作中查阅。条件函数assert_true(BOOLEAN condition)解释如果condition不为true,则抛出异常,否则返回null使用案例select assert_true(1<2) -- 返回nullselect assert_true(1>2) -- 抛出异常原创 2020-08-07 23:04:24 · 698 阅读 · 0 评论 -
Hive的架构剖析
本文主要介绍Hive的架构和以及HQL的查询阶段,主要内容包括:Hive的架构架构中的相关组件介绍HQL的查询阶段Hive的架构hive的基本架构图如下图所示:相关组件介绍数据存储Hive中的数据可以存储在任意与Hadoop兼容的文件系统,其最常见的存储文件格式主要有ORC和Parquet。除了HDFS之外,也支持一些商用的云对象存储,比如AWS S3等。另外,Hive可以读入并写入数据到其他的独立处理系统,比如Druid、HBase等。Data catalogHive使用原创 2020-08-07 23:02:25 · 220 阅读 · 0 评论 -
数仓面试|四个在工作后才知道的SQL密技
SQL是大数据从业者的必备技能,大部分的大数据技术框架也都提供了SQL的解决方案。可以说SQL是一种经久不衰、历久弥新的编程语言。尤其是在数仓领域,使用SQL更是家常便饭。本文会分享四个在面试和工作中常用的几个使用技巧,具体包括:日期与期间的使用临时表与Common Table Expression (WITH)Aggregation 与CASE WHEN的结合使用Window Function的其他用途数仓?不就是写写SQL吗… [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来原创 2020-08-07 13:46:02 · 313 阅读 · 0 评论 -
数仓|Hive性能调优指北
在企业中使用Hive构建离线数仓是一种十分普遍的方案。尽管Hive的使用场景是通过批处理的方式处理大数据,通常对处理时间不敏感。但是在资源有限的情况下,我们需要关注Hive的性能调优,从而方便数据的快速产出。同时,关于Hive的性能调优,也是面试中比较常见的问题,因此掌握Hive性能调优的一些方法,不仅能够在工作中提升效率而且还可以在面试中脱颖而出。本文会通过四个方面介绍Hive性能调优,主要包括:√性能调优的工具√设计优化√数据存储优化√作业优化性能调优的工具HQL提供了两个查看查询性能.原创 2020-06-07 15:01:10 · 996 阅读 · 0 评论 -
历史拉链表实战
历史拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的。所谓历史拉链表,就是指记录一个事物从开始一直到当前状态的所有变化信息。拉所有记录链表可以避免按每一天存储造成的海量存储问题,同时也是处理缓慢变化数据的一种常见方式。原创 2019-11-09 20:40:45 · 2206 阅读 · 0 评论 -
经典Hive SQL面试题
第一题需求我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/23 6 U01 2017/2/22 ...原创 2019-10-15 13:48:38 · 3528 阅读 · 3 评论 -
Sqoop的(Value '0000-00-00' can not be represented as java.sql.Date)和tinyint转换异常问题解决
错误1:Mysql数据库的tinyint(1)的字段(取值为0和1),Sqoop会将tinyint(1)的字段视为booleans类型,导入到Hive时会将其转化为true或者false,这是因为默认情况下,mysql jdbc connector(连接器)将tinyint(1)映射到java.sql.types.bit,而sqoop默认映射到boolean。解决方案1:在JDBC的连接路径中...原创 2019-07-31 18:05:43 · 652 阅读 · 0 评论 -
Hive中建表语句的注释(comment)中文乱码
解决方法: 修改hive的元数据信息,进入hive的元数据库,以mysql为例,执行下面的命令://修改表字段注解和表注解alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;alter table TABLE_PARAMS modify column P...原创 2019-07-30 17:16:43 · 4909 阅读 · 1 评论 -
Hive实现将分组取top2的数据进行相减(SQL面试题)
1.问题描述一张成绩表class有如下字段,班级ID,英语成绩,数学成绩,语文成绩 id english math chinese classid 1 78 89 95 2 ...原创 2019-03-21 12:24:27 · 3761 阅读 · 1 评论 -
Hive实现WordCount的两种方式
1.数据准备hadoop hadoop hadoopspark spark sparkhiveimpala2.创建表create table wordcount(rowdata string);3.加载数据load data local inpath '/opt/modules/data/word.txt' into table wordcount;4.SQL编程...原创 2019-03-21 10:07:38 · 1001 阅读 · 0 评论 -
Hive的动态分区
一、简介当使用静态分区时,在向分区表中插入数据时,我们需要指定具体分区列的值。此外,hive还支持动态提供分区值(即在插入数据时,不指定具体的分区列值,而是仅仅指定分区字段)。动态分区在默认情况下是禁用的(在hive2.3.4版本中默认是开启的,在hive-default.xml.template文件中进行配置),所以需要将hive.exec.dynamic.partition设为true。默...原创 2019-03-16 22:04:16 · 1397 阅读 · 0 评论 -
基于Hive的大数据实战项目
目录一、项目需求二、数据介绍三、创建表结构四、数据清洗五、数据加载六、业务数据分析七、原始数据一、项目需求1.统计视频观看数 Top102.统计视频类别热度Top103.统计出视频观看数最高的20个视频的所属类别以及类别包含这Top20视频的个数4.统计视频观看数Top50所关联视频的所属类别的热度排名5.统计每个类别中的视频热度Top10...原创 2019-02-27 12:57:30 · 9074 阅读 · 12 评论 -
Hive中的数据采样
当数据集比较大时,可能需要通过采集一部分数据集进行分析,称之为采样。在HQL中支持三种方式的采样:随机采样(random sampling)、分桶表采样(bucket table sampling)以及块采样(block sampling)。1.随机采样随机采样使用rand()函数和limit关键字。其中distribute和sort关键字用来保证抽取的数据是随机分布的,这种方式比较有效率...原创 2019-03-02 14:36:36 · 3817 阅读 · 0 评论 -
Hive的开窗函数
1.基本语法Function (arg1,..., argn) OVER ([PARTITION BY <...>] [ORDER BY <....>][<window_expression>])Function (arg1,..., argn) 可以是下面的四类函数: (1)Aggregate Functions: 聚合函数,...原创 2019-03-01 22:59:35 · 1050 阅读 · 0 评论 -
Hive性能调优的最佳实践
目录1.查询性能的实用工具1.1EXPLAIN语句1.1.1EXPLAIN语法1.1.2查询计划1.1.3例子1.2 ANALYZE语句1.2.1 ANALYZE语法1.2.2例子1.2.3查看统计信息1.3日志2.表设计调优2.1分区表2.2分桶表2.3创建索引2.3.1创建索引语法2.3.2删除索引3.数据格式调优3.1文...原创 2019-02-28 17:31:33 · 3333 阅读 · 0 评论 -
Hive中使用insert、import、export命令进行数据交换
一、INSERT OVERWRITEINSERT支持将数据写入文件,通常在使用SELECT语句查询数据时将查询的数据写入本地或者HDFS目录。但是,仅仅支持OVERWRITE关键字,即只能使用覆盖的方式写入数据,默认情况下,使用Ctrl+A作为列分隔符,可以手动指定分隔符。1.使用默认的分隔符导出数据到本地目录INSERT OVERWRITE LOCAL DIRECTORY '/tm...原创 2019-02-27 22:28:54 · 1129 阅读 · 0 评论