一、 建表规范:
Hiive分为内部表和外部表,一般情况,只允许建外部表,不建议使用内部表。
LZO标准建表模板如下所示:
create EXTERNAL table app_sku_pur_attrib (
stat_dt string comment ‘统计日期’ ,
ord_item_units double comment ‘下单商品件数’,
valid_ord_qtty bigint comment ‘有效订单量’ )
comment ‘商品采销属性’
PARTITIONED BY ( dt string )
ROW FORMAT SERDE ‘org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe’
WITH SERDEPROPERTIES ( ‘field.delim’=’\t’ )
STORED AS INPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”
OUTPUTFORMAT “org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”;
建表时需要加上表注释、字段注释;
ORC标准建表模板如下所示:
create external table app_jdw_jmart_zbinfo_test_test(
capacity_all float comment ‘数据总容量PB’,
deal_data_dt float comment ‘日处理数据量PB’,
add_data_dt float comment ‘日新增数据量PB’,
add_job_dt float comment ‘日运行job数W’,
machine_num int comment ‘平台总机器数’,
corejob_avgtime string comment ‘核心任务平均运行时长’)
PARTITIONED BY ( week_nm string,dt string )
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ (列分隔符)
NULL DEFINED AS ‘’ (空值展示为’’)
STORED AS ORC (存储格式为ORC,不可少)
LOCATION ‘*************’ (指定表的location)
tblproperties (‘orc.compress’=‘SNAPPY’); (ORC压缩格式为SNAPPY)
字段类型使用hive标准字段
原生类型:
TINYINT
SMALLINT
INT
BIGINT
BOOLEAN
FLOAT
DOUBLE
STRING
BINARY (Hive 0.8.0以上才可用)
TIMESTAMP (Hive 0.8.0以上才可用)
复合类型:
arrays: ARRAY
maps: MAP
structs: STRUCT
union: UNIONTYPE
举例:错误表:app_business_m_dyrec_rank_apply,字段类型void
#col_name data_type comment
target_tag void
user_id string
item_sku_id string
sku_list void
exp_time void
rectype void
model_id void
traffic string
media string
site_id void
adpos_id void
二、 数据类型标准
1、为了提高通用性,代码字段尽量不用数字型,建议多采用STRING类型;
2、日期类型字段由于格式多样,造成在信息加工处理过程中的格式转换复杂且易出错,因此对日期类型字段统一制定如下规范
以“2013-01-01 13:35:23.71”为例说明日期字段类型规范内容: