Hive启动方式:
1.CLI界面:使用hive命令或hive --service cli即可进入hive cli。
2.远程服务:使用hive --service hiveserver2 &方式启动远程服务,这样就可以使用jdbc或thrift客户端调用hive数据仓库。
Hive数据类型
我们可以在官网的hive wiki中查看到所有的数据类型。Hive wiki
Hive数据类型大体可以分成两类,基础数据类型和复杂数据类型。这里主要讨论常用类型。
1.基础数据类型。
1)数字类型
整型 tinyint/smallint/int/integer/bigint
浮点型 float/double/decimal
2)日期类型
timestamp/date/interval
3)字符串类型
string/varchar/char
4)其他类型
boolean/binary
2.复杂数据类型。
arrays: ARRAY<data_type> (Note: negative values and non-constant expressions are allowed as of Hive 0.14.)
maps: MAP<primitive_type, data_type> (Note: negative values and non-constant expressions are allowed as of Hive 0.14.)
structs: STRUCT<col_name : data_type [COMMENT col_comment], ...>
union: UNIONTYPE<data_type, data_type, ...> (Note: Only available starting with Hive 0.7.0.)
Hive表
Hive中的表可以分为内部表,外部表,分区表和桶表。
内部表:
表中的数据受表定义影响,表删除后表中数据随之删除。使用一般的语句创建的就是内部表,例如create table test (id int);
数据不受表定义影响,表删除后数据仍在。
外部表的数据指向已经在HDFS中存在的数据。它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异。外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据库目录中,和外部数据建立一个连接。当删除一个外部表时,仅删除连接。有点类似视图。
语法:
create external table external_test (
id int,
name string
)
row format delimited fields terminated by ','
location '/input';
hadoop的/input/input.txt下文件
1,Tom
2,Mary