当用户需要建表时,按以下顺序确认关键信息:
询问用户要在哪个工作空间(Schema/数据库)建表:
prod_workspacetest_workspacedev_workspace数据层级(必选其一):
层级代码说明数据仓库明细层dwd清洗后的明细数据数据仓库汇总层dws按主题汇总的轻度汇总表维度表dim维度数据(用户、商品等)应用数据层ads面向应用的数据集市原始数据层ods原始接入数据
数据域(根据业务选择):
usr - 用户域ord - 订单域prd - 商品域trd - 交易域mkt - 营销域log - 日志域fin - 财务域维度选项代码调度周期天级d小时级h分钟级min更新方式全量f增量i
表名拼接规则:
text
【工作空间】.【数据层】_【数据域】_【业务描述】_【调度周期】【更新方式】
示例:
prod_workspace.dws_ord_daily_order_stats_df (天级全量)prod_workspace.dwd_ord_order_detail_di (天级增量)` (小时级)
必须提供以下信息:
user_id, order_amount)常用字段模板:
sql
-- 基础审计字段(强烈建议)
`gmt_create` DATETIME COMMENT '数据创建时间',
`gmt_modified` DATETIME COMMENT '数据修改时间',
`ds` STRING COMMENT '数据日期,格式yyyyMMdd',
必须提供表级 COMMENT,格式:
sql
COMMENT '【数据域】_【业务描述】_【调度说明】,【主要字段说明】'
推荐分区策略:
调度类型分区字段说明天级表ds STRING日期分区,格式 yyyyMMdd小时级ds STRING, hr STRING日期+小时分区全量表可选无分区按业务需要
分区示例:
sql
PARTITIONED BY (`ds` STRING COMMENT '数据日期,格式yyyyMMdd')
默认使用 ALIORC:
sql
STORED AS ALIORC
特殊情况可选项:
STORED AS ALIORC - 推荐,高压缩率STORED AS TEXTFILE - 纯文本,调试用按数据层级设置默认 TTL:
层级建议 TTL说明ODS30-90 天原始数据短期保留DWD180-365 天明细数据中期保留DWS365-730 天汇总数据长期保留ADS90-365 天应用数据按需保留DIM365 天或无维度表通常长期保留
TTL 语法:
sql
TBLPROPERTIES ('lifecycle'='30')
sql
CREATE TABLE IF NOT EXISTS prod_workspace.dws_ord_daily_order_stats_df (
-- 维度字段
`stat_date` STRING COMMENT '统计日期,格式yyyy-MM-dd',
`merchant_id` BIGINT COMMENT '商家ID',
`merchant_name` STRING COMMENT '商家名称',
`category_id` BIGINT COMMENT '类目ID',
-- 指标字段
`order_cnt` BIGINT COMMENT '订单笔数',
`order_amount` DECIMAL(18,2) COMMENT '订单金额',
`paid_cnt` BIGINT COMMENT '支付笔数',
`paid_amount` DECIMAL(18,2) COMMENT '支付金额',
`refund_cnt` BIGINT COMMENT '退款笔数',
`refund_amount` DECIMAL(18,2) COMMENT '退款金额',
-- 衍生指标
`gmv` DECIMAL(18,2) COMMENT 'GMV',
`actual_amt` DECIMAL(18,2) COMMENT '实际成交金额',
-- 审计字段
`gmt_create` DATETIME COMMENT '数据创建时间',
`gmt_modified` DATETIME COMMENT '数据修改时间'
)
COMMENT '订单域_商家每日订单统计_天级全量,包含订单数、金额、退款等核心指标'
PARTITIONED BY (`ds` STRING COMMENT '数据日期,格式yyyyMMdd')
STORED AS ALIORC
TBLPROPERTIES ('lifecycle'='365');
类型后缀示例数量/次数_cnt``order_cnt, pv_cnt金额_amt / _amount``order_amt, pay_amount比率/比例_rate / _ratio``conversion_rate标识/ID_id``user_id, order_id时间_time``create_time, pay_time日期_date / _dt``stat_date, birth_dt标记/Flag_flag / _is_xxx``is_vip, del_flag
全称缩写示例countcntorder_cntamountamtpay_amtnumbernumserial_numidentifieriduser_idtimestamptscreate_tsdatetimedtlog_dt
建表完成后,确认以下事项:
{层}_{域}_{业务}_{调度}