一、建表语句
create table wedw_yydm.predict_churn_score_wa
(
date_predict string
,user_id INT
,predict_churn_score DECIMAL(4,2)
,predict_churn_level string
)
PARTITIONED BY (`date_id` string COMMENT '日期')
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY ','
二、表命名规范
1、建表表名一律小写
2、表名命名规则: [表功能描述]_[频度][处理方式]
频率
处理方式
3、表特点:表名后缀规则
df:每天保存这一个全量的数据,查询数据的时候,用where date_id=昨天就是最新的全量数据;一般是保存不太变化的维度表
dz:每天保存全量的拉链数据,查询数据的时候,用where date_id=昨天 and link_end_date>=昨天 and link_start_date<= 昨天就是最新的全量数据;一般保存比较重要的,经常变化,有需要查询历史记录的表
di:就是保存的最新状态的数据,用where date_id=昨天;一般保存一般重要性的订单类表
da:追加的数据,一般都是不会变化的数据,比如日志类;直接查询即可
manual :手工导入数据,直接查询即可
4、临时表命名规则:t_目标表名日期序号,使用完删除
5、 静态表统一命名,表名后面统一加上 ***_manual;并且把静态数据定期保存
6、表名、字段名、分区字段内容,最好不要用中文
三、字段命名规范
1、表的字段顺序:日期,维度,度量
2、建表注意 :指定行分隔符\n ,列分隔符 \t
3、第一个字段一定是日期字段,命名统一,格式统一
四、字段数据类型
除需要保留小数点的数值型字段(DECIMAL(xx,4)),整数数值使用int,时间(timestamp) 外, 其他统一用string。
注意:关系型数据库的数据类型必须明确,比如varchar 必须指定长度;
五、内置变量
变量的调用统一如昨天日期可以调用${HIVE_DATA_DATE},区分大小写;