- 内部表:
–仅限HIVE内部使用
每个Hive内部表在HDFS中都有对应目录用来存储表的数据。“/user/hive/warehouse/数据库名“下生成表的目录,创建时数据会移动到数据仓库所指向的位置
内部表的创建过程和数据加载过程可以分别独立完成,也可以在同一个语句中完成。
删除内部表时,该目录和数据文件、元数据会被同时删除。
建内部表:
Hive>create table person(
Id int,
Name string,
Age int,
Addr map<string,string>)
Row format delimited fields terminated by \t’ //字段间隔符\t
Map keys terminated by “:” //map型键值对的分隔符:
Stored as textfile; //这张表使用的数据文件格式是txt类型
导入数据:
Load data local inpath person.txt overwrite into table person;
查询数据:
Select * from person;
- 外部表:
–供hadoop其他组件共享源数据使用
Hive外部表和内部表在元数据组织上是一样的,但在实际数据存储上有较大差异。
外部表数据不存储在自己表所属目录中,存储在LOCATION指定的HDFS路径中。
外部表仅有一个过程,创建表和数据加载过程同时进行和完成。
删除外部表仅仅是删除外部表对应的元数据,外部表所指向的数据不会被删除。
创建外部表使用EXTERNAL关键字。
建外部表:
Hive&g