hive基础-数据模型
作者:互联网
Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:
Table:
External Table:
Partition:
Bucket:
(1)表table:一个表就是hdfs中的一个目录
内部表:默认设置,数据目录由hive默认设置,可以修改。hadoop->hive时,数据会迁移目录。hive删除会级联删除hadoop物理数据。
外部表:元数据删除时不删除物理数据,不迁移数据目录。
(2)区Partition:表内的一个区就是表的目录下的一个子目录:
建表语句语法区分
查询时需要指定分区字段,提升效率。
(3)桶Bucket:如果有分区,那么桶就是区下的一个单位,如果表内没有区,那么桶直接就是表下的单位,桶一般是文件的形式。
按字段hash计算,数据分组,抽样运算时用的较多。DDL
DML
示例代码
CREATE DATABASE IF NOT EXISTS shopping COMMENT 'stores all shopping basket data' LOCATION '/user/retail/hive/SHOPPING.db' WITH DBPROPERTIES ('purpose' = 'testing'); ALTER DATABASE shopping SET DBPROPERTIES ('department' = 'SALES'); DROP DATABASE database_name [RESTRICT|CASCADE]; SHOW DATABASES [ LIKE 'identifier_with_wildcards' ]; SHOW TABLES IN retail; CREATE TEMPORARY TABLE states (state STRING); ALTER TABLE states RENAME TO states_old; ALTER TABLE states CONCATENATE; ALTER TABLE ids ADD PARTITION (datestamp='2016-05-30') location '/user/demo/ids/2016-05-30'; MSCK REPAIR TABLE ids_internal; ALTER TABLE RETAIL.TRANSACTIONS ADD COLUMNS (loyalty_card boolean); ALTER TABLE transactions ENABLE NO_DROP; ALTER TABLE transactions ENABLE OFFLINE; CREATE TABLE transactions_test LIKE transactions; LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename INSERT [OVERWRITE] TABLE tablename1 [IF NOT EXISTS] SELECT select_fields FROM from_statement; INSERT OVERWRITE DIRECTORY 'exampleoutput' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT persid, firstname, lastname FROM person; CREATE TABLE blank_tablename LIKE tablename; variance() percentile_approx() select login_account,max(user_id) from tb_user group by login_account;
官方手册
存储格式
压缩支持
支持的数据类型(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types)
DDL注意实现
标签:transactions,基础,hive,states,user,TABLE,ALTER,数据模型 来源: https://blog.51cto.com/u_3075318/2707050