淘宝购物返利网站建设app,旅游网站开发的目的,淘宝客网站WordPress,小型企业网站如何建设什么是hive#xff1f;
- Hive是Facebook开发并贡献给Hadoop开源社区的。它是建立在 Hadoop体系架构上的一层 SQL抽象#xff0c;使得数据相关人 员使用他们最为熟悉的SQL语言就可以进行海量数据的处理、 分析和统计工作
- Hive将数据存储于HDFS的数据文件映射为一张数据库…什么是hive
- Hive是Facebook开发并贡献给Hadoop开源社区的。它是建立在 Hadoop体系架构上的一层 SQL抽象使得数据相关人 员使用他们最为熟悉的SQL语言就可以进行海量数据的处理、 分析和统计工作
- Hive将数据存储于HDFS的数据文件映射为一张数据库表以MapReduce作为计算引擎 Hive on MR并提供完整的sql查询功能
- 由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性因此使用Hive构建 的数据仓库也秉承了这些特性
Hive构架 Hadoop生态 HQL
基础函数 SELECT FROM WHERE ORDER BY GROUP BY LIMIT ...
排序 SORT BY DISTRIBUTE BY CLUSTER BY
标准聚合函数 COUNT,SUM,MIN,MAX,AVG...
窗口函数 FIRST_VALUELAST_VALUEROW_NUMBER ,RANK…
CUBE函数维度限制 GROUPING SETSCUBEROLLUPGROUPING_IDspark sql和hive不能兼容
定义函数 UDF(User-Defined-Function) 用户自定义函数
UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-to-many maping)
UDAF(User- Defined Aggregation Funcation 自定义聚类函数
Hive的数据单元
●Databases数据库。概念等同于关系型数据 库的Schema
●Tables和关系型数据库中的表在概念上很 类似每个表在HDFS中都有相应的目录用来存储表的数据
●外部表Hive中的外部表和内部表很 类似但是其数据不是放在自己表所属的目 录中而是存放到别处这样的好 处是如果你要删除这个外部表该外部表所指向的数据是不会被 删除的它只会删除外部表对应的元数据而如果 你要删除表该表对应的所有数据包括元数据都会被 删除 ●Partitions分区在Hive中表的每一个分区 对应表下的相应目录所有分区的数据都是存 储在对应的目录中
●Buckets 分桶同一个分区内的数据 还可以细分对指定的列计算其hash根据hash值切分数据目的是 为了并 行
●基本操作
show databases
show databases like xx*;
use database; show tables;
show partitions db.tbl_name;
desc db.table;
desc formatted db.tbl_name;
show create table db.tbl_name;
create table db.new_table like old_table HQL优化
● 使用分区剪裁、列剪裁 在SELECT中只拿需要的列如果有尽量使用分区 过滤少用SELECT * 在分区剪裁中当使用外关 联时如果将副表的过滤条件写在Where后面那么就会先全表关 联之后再过滤 正确的写法是写在 ON后面或者直接写成子 查询 通过执行计划可以看到具体在哪里 过滤不确定就分析执行计划,看看执行是怎么样被优化的
● 少用多重COUNT DISTINCT
selecta,sum(b),count(distinct c),count(distinct d) from test group by a;
优化后
select a,sum(b)as b,count(c) as c,count(d) as d from ( select a,0 as b,c,null as d from test group by a,c union all select a,0 as b,null as c,d from test group by a,d union all select a,b,null as c,null as d from test )tmp group by a;
● 是否存在多对多的关联 ● 尽量原子化操作尽量避免一个 SQL包含复杂逻辑 ● 使用动态分区 set hive.exec.dynamic.partitiontrue; set hive.exec.dynamic.partition.modenonstrict