首页 > 其他分享 >hive综述

hive综述

时间:2023-06-07 10:07:35浏览次数:43  
标签:... set name 综述 hive table col


1.hive的作用


用类SQL的语言HQL来计算HDFS中的数据,主要做海量数据的离线分析,没有实物的概念.



联机分析处理)的操作


tips: 


set hive.cli.print.current.db=true//显示数据库实例名


set hive.cli.print.header=true     //显示列名



3.基础建表语句


Create [external] table [if not exists]  table_name


[(col_name data_type[comment],...)]


[comment tablencomment]


[partitioned by (col_name data_type)]


[cluster by (col_name...)]


[sorted by (column_name [asc|desc],...)] into num_buckets buckets


[row format row_format]


[stored as file_format]


[location   hdfs_path]



4.默认数据库的位置


<property>


<name>hive.metastore.warehouse.dir</name>


<value>/usr/hive/warehouse</value>


</property>



也可以通过set hive.metastore.warehouse.dir; 来获取



5.列操作


alter table ... add columns (col_name data_type);


alter table ... replace columns (col_name datatype);


alter table ... change col_name col_name data_type first ; 移动某列到最前


alter table ... change col_name col_name data_type after col_name 1;在某列后新增字段



6.数据的加载方式


读模式:数据被加载到数据库的时候,不对其合法性进行检验,只在查询等操作的时候检验  特点是加载速度快


写模式:加载时,对数据合法性进行检验,数据库中的都是合法数据。  特点:数据加载慢,但查询速度快


hive采用的是度模式,对于非法数据的显示为null



7.hive表中的数据加载


load data [local inpath] linux_fs_path into table tblName;



8.分区操作:


加载分区数据


load data [local path] hdfs_path into table tabName partition (par='');


手工创建分区:alter table tblName add partition(par='');


查看表分区:show partitions tblName


按分区查数据:需开启动态分区 insert into tblName partition (hdfs_par)  select ...;


动静分区同时使用时,需指定静态分区


开启动态分区:


set hive.exec.dynamic.partition=true;


set hive.exec.dynamic.partition.mode=nostrict;


set hive.exec.max.dynamic.parititons.pernde=1000;


使用 set hive.exec.max.dynamic.partitions 获取hive支持的最大分区数



数据导出: insert overwrite [local] directory  --select * from ..;



有些hql语句的执行会转化为mr,要提高效率需使用本地模式


set hive.exec.mode.local.auto=true;



9.hive的文件格式


textfile


hive默认格式,数据不做压缩,磁盘开销大,数据解析开销大


使用这种方式hive不会对数据进行切分,从而无法对数据进行并行操作。


sequence file


是hadoop api提供的一种二进制文件支持,具有使用翻遍,可压缩,可分割的特点


rcfile


一种行列存储相结合的存储方式


首先将数据按行分块,保证同一个record在一个块上,避免读取一个记录需要读多个bloce,


其次块数据列式存储,有利于数据压缩和快速的列存取


rcfile存储空间小,查询效率高,需要通过text文件转化来加载,加载的速度最低。


目前用的最多的是parquet,其特点是二进制存储,列式存储,映射下推,谓词下推



10.hive函数 show functions


hive数据行列转换


第一步,做表关联,分析结果


select u.id,u.name,a.address from tll_user u join tll_address a on u.id=a.uid;


第二步,对多个出现的结果按照id来拼接字符串


select u.id,max(u.name),concat_ws(",",collect(a.address)) as addr from tll_user u join tll_address a on u.id=a.id group by u.id;



使用hive完成单词统计


第一步 对文本切割


select split(word,'') from tblName;


第二步 集合数据转多行


select explode(split(word,'')) from tblName;


第三步 使用聚合函数统计


select word,count(1) as count from (select explode(split(word,'') from tblName w group by word));















标签:...,set,name,综述,hive,table,col
From: https://blog.51cto.com/u_13990003/6429964

相关文章

  • RDS 、HDFS、 mapreduce 、spark 、hive、 hbase 、zookeeper 、kafka 、flume、mysql
    这些技术是大数据领域的常用组件,它们之间的配置文件依赖关系如下:RDS是一种关系型数据库,可以独立安装和使用,不需要依赖其他组件。HDFS是Hadoop分布式文件系统,通常与MapReduce一起使用。在Hadoop集群中,HDFS需要配置core-site.xml和hdfs-site.xml两个文件,其中core-site......
  • Hive执行计划之一文读懂Hive执行计划
    目录目录概述1.hive执行计划的查看2.学会查看Hive执行计划的基本信息3.执行计划步骤操作过程4.explainextended概述Hive的执行计划描述了一个hiveSQL语句的具体执行步骤,通过执行计划解读可以了解hiveSQL语句被解析器转换为相应程序语言的执行逻辑。通过执行逻辑可以知晓HiveSQ......
  • python脚本 用sqoop把mysql数据导入hive
    主要功能:用python把mysql数据库的数据导入到hive中,该过程主要是通过python语言操作sqoop.#!/usr/bin/envpython#coding:utf-8#--------------------------------#Createdbycocoon16/2/23#---------------------------------#Comment:主要功能说明:初始化业务数......
  • hive与hdfs整合过程
    hive与hdfs整合过程---coco#bycoco#2014-07-25hive的具体练习:(以下4个目标)1.第一普通的hdfs文件能导入到hive中,以供我们查询。2.第二hbase中的表,能导入hive中,以供我们查询。3.第三mysql中的表,能导入hive中,以供我们查询。4.hive中......
  • org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
    DescriptionResourcePathLocationTypeorg.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)pom.xml/gs-rest-serviceline1MavenConfigurationProblem在学习springboot实例时,发现了这个Maven配置错误,但是不影响springboot运行。问题......
  • hdfs目录上/tmp/hive空间资源过大问题
    HDFS上tmp/hive空间资源占用过大的原因,有啥清理机制呢Hive的临时目录是用来存放不同阶段的map/reduce任务的执行计划和中间结果的,如果Hive任务成功完成的话,临时文件会被自动清理,如果Hive任务被取消或者中断,那么这个任务的临时文件就会被遗留下来。可以手动删除这些旧文件,但不要删除......
  • 2021-08-12--Web前端性能指标和性能优化(综述)
    title:网站的几个性能指标和优化(简易)categories:-网络安全与性能优化tags:-性能优化-性能指标-白屏时间-首屏时间-TTFBabbrlink:5c56date:2021-08-1223:42:49updated:2021-08-1223:42:49来源:https://m.sohu.com/a/201865334_509523/关于......
  • 周期视图WeekArchiveView
    2023.6.4WeekArchiveView是在数据表筛选某个日期字段某年某周的所有的数据,总周数是将一年的总天数除以7所得的,数据默认以升序的方式排序显示,年份和周数的筛选范围都是由路由变量提供的在一年中,无论是平年还是闰年,一共有52周,而且每年同一个周数的日期是各不相同的。如果要对数据表......
  • 日期筛选视图-MonthArchiveView
    2023.6.3日期筛选视图是根据模型里的某个日期字段进行数据筛选的,然后将符合结果的数据以一定的形式显示在网页上。简单来说,在列表视图ListView或详细视图DetailView的基础上增加日期筛选所实现的视图类●MonthArchiveView是在数据表筛选某个日期字段某年某月的所有的数据,默认以升......
  • hive初识
    HIVE的认识:定义:hive是基于hadoop的数据仓库工具,将结构化的数据映射成一张表,提供sql查询功能,可以对数据提取,转化,加载,简而言之:查询和分析存储在hadoop大规模的数据工具,离线的大数据分析hive在hadoop的生态圈hive将存储在HDFS中的结构化数据文件映射成类似关系型数据库......