您的位置:首页 > 数据库 > Oracle

HIVE入门—初尝Create Table

2011-05-20 16:42 169 查看
HIVE的create table的官方详细文档请参看:http://wiki.apache.org/hadoop/Hive/LanguageManual
本文根据官方文档提供的例子,通过实践较详细地介绍create table的功能。
 
由于本人也是新手,深入的功能没有涉猎,请大牛们帮忙补充。谢谢!
常用的建表语句的元素如上所示:
HIVE支持的数据类型(data TYPE)
1.       primitive_type
                   TINYINT            --1字节整型
                   SMALLINT         --2字节整型
                   INT                     --4字节整型
                   BIGINT              --8字节整型
                   BOOLEAN         --布尔类型(true/false)
                   FLOAT                --单精度浮点型
                   DOUBLE            --双精度浮点型
                   STRING              --字符串类型
2.       array_type
        --数组数据可以是HIVE支持的所有类型
                   ARRAY<data_type>         
3.       map_type
                   --key只能是私有类型(primitive_type),value可以是所有类型数据
                   MAP<primitive_type, data_type>  
4.       struct_type
                   --可支持HIVE的所有类型
                   STRUCT<col_name : data_type [COMMENT col_comment], ...>
基本的建表语句和comment不再介绍,和ORACLE基本相似。
如下介绍HQL和ORACLE SQL使用方式不同的部分。
------------------------------------------------------------------------------
PARTITIONED BY (dt		STRING
,country	STRING COMMENT 'visitor country')

和ORACLE基本类似,用dt和country两个字段作为分区键做分区表。
------------------------------------------------------------------------------
把一个分区的数据以userid打散到32个桶中,桶中的数据以viewTime降序排序。
此目的:1.取样,可以取N/32的数据做采样
                   2.并行,提升效率
------------------------------------------------------------------------------
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '1'
COLLECTION ITEMS TERMINATED BY '2'
MAP KEYS TERMINATED BY '3'
LINES TERMINATED BY '4'

HIVE的记录的分隔符可以自己指定。如上指定列之间的分隔符为’1’,ARRAY类型数据的分隔符为’2’,MAP类型数据分隔符为’3’,行(记录)的分隔符为’4’。
------------------------------------------------------------------------------
STORED AS SEQUENCEFILE
数据存储要选择序列化文件格式对数据做压缩,减少存储,提升效率。如果是从本地文件LOAD数据到HIVE的数据表,那么用STORED AS TEXTFILE。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息