hive数据单元按照粒度从大到小,依次为

1、数据库database:可以用show databases; 命令查看所有的数据库,并用use d1; 命令来选中d1数据库,接下来就可以操作d1数据库中的表了。

2、表table:可以用show tables; 命令查看当前库中所有的表。

3、分区partition:每一个表都可以有一个或者多个分区key,这些分区key决定了数据的存储方式。分区,除了作为存储单元外,还允许用户有效地识别满足特定标准的行。分区key的每一个值都定义了该表的一个分区。例如,某表有一个string类型的date_partition和一个string类型的country_partition,则"2009-12-23"中的所有"US"数据属于该表的同一个分区。因此,如果仅对"2009-12-23"的"US"数据进行分析,则只会在表的相关分区上运行查询,从而显著加快分析速度。分区列是虚拟列,它们不是数据本身的一部分,而是在加载时派生的。

4、桶bucket:每个分区中的数据又可以基于表的某些列的hash值被划分为桶。桶可用于有效地采样数据。

值得注意的是,表分区和桶不是必须的,但这些可以使得系统在查询处理期间过滤掉大量数据,从而加快查询执行速度。

Hive字段支持原始类型及复杂类型:

原始类型:

整型,有tinyint(1字节整数)、smallint(2字节整数)、int(4字节整数)、bigint(8字节整数);

boolean类型,true或者false;

浮点数,有float(单精度)和double(双精度);

定点数(fixed point number),decimal;

字符串类型,有string、varchar、char;

日期和时间类型,有timestamp和date;

二进制类型(binary type),binary(字节序列)。

需要额外注意的是,string类型可以被隐式转为double类型。

复杂类型:

struct:如column c的类型是struct {a int; b int},则a的值可以通过c.a得到

map:

array:里面的元素类型必须相同。如column a的类型是array,则可以通过a[0]、a[1]获取第一、二个元素

内建的运算符和函数

可以在beeline命令行使用show functions; 命令查看所有的运算符和函数。

还可以用describe function function_name; 命令查看某运算符或函数的用法解释。

实际发现,大多数运算符和函数都和java中的运算符和方法作用一样,遇到不一样的,再describe function 查看具体用法即可。

聚合函数返回值类型:

除count返回bigint类型外,sum、avg、min和max都返回double类型。

Hive SQL能做什么?

1、常规的DDL语句,create、drop、alter

2、常规的DML语句,load、insert、update、delete、select、where、join、group by、union

3、把查询结果存储到另外一个表中、hdfs中

4、把hive表的内容下载到本地目录

5、Ability to plug in custom scripts in the language of choice for custom map/reduce jobs

最新文章

  1. CSS3伸缩布局Flex学习笔记
  2. shell 监控局域网的主机是否up
  3. Working with C# dictionary
  4. redis3.0 集群实战2 - 集群功能实战
  5. OUT函数及其熟练使用,split的用法
  6. Window下SVN命令的使用总结
  7. 使用 JSONP 实现跨域通信
  8. Hdu5510 Bazinga
  9. Android系统Surface机制的SurfaceFlinger服务对帧缓冲区(Frame Buffer)的管理分析
  10. 2013 多校联合 F Magic Ball Game (hdu 4605)
  11. js基础01
  12. python学习之路网络编程篇(第五篇)
  13. css相关整理-其他
  14. c# 公元转农历
  15. GoogLeNet 之 Inception v1 v2 v3 v4
  16. 通过expdp和impdp将Oracle11g数据导入到Oracle10g中
  17. angular 4 开发环境下打包文件过大
  18. git diff 与 git diff --cached的不用
  19. urllib — URL handling modules
  20. 通过超链接启动App

热门文章

  1. win10 64位 python3.6 django1.11 MysqlDB No module named 'MySQLdb' 安装MysqlDB报错 Microsoft Visual C++ 14.0 is required
  2. kalilinux基础
  3. mybatis 配置延迟加载 和 缓存
  4. 学习tomcat(一)----用IDEA调试tomcat源码
  5. struts2下面如何同时使用servlet,就是如何实现struts与servlet共存
  6. linux 磁盘 分区 MBR GPT
  7. arcgis android 中shapefile的加载
  8. sql字段操作
  9. Spring boot整合Mongodb
  10. JVM_垃圾收集器