6.0 KiB
6.0 KiB
sidebar_position, title
| sidebar_position | title |
|---|---|
| 10 | Doris说明 |
Doris说明
DWD表开发
1.加yml配置
2.加step sql文件
3.create_table_all.sql写好记录
decimalv3 小数精度
BIGINT 主键
INT 常规数字
datetime
varchar 字符
4.定时任务加执行地址 http://10.1.67.76:19999/
5.window执行完定时自动加入
网页说明
数据集
1.新增数据集: 录入已创建的dwd表
2.dwd表新增了字段: 图表来源-更多-编辑数据集, 选择列-从原数据同步列 (交换数据集是啥?)
3.增加指标: 图表来源-更多-编辑数据集, 选择指标-增加条件
4.删除亮哥的指标: 后缀加 _del
图表
看板
1.可以全局筛选, 可以局部筛选, 可以联动筛选
2.展示:
数量不要小数
金额不要小数
比率用1位小数
sql工具箱
code对应表
city_id -> city_name
1 北京
2 杭州
5 苏州
6 太原
7 天津
8 南京
9 上海
15 成都
18 郑州
19 无锡
20 武汉
67 广州
672 广州PARK
contract_state_code -> contract_state
1000100070001 已签约
1000100070003 已作废
1000100070004 已续约
1000100070005 解约中
1000100070006 已解约
1000100070008 续约中
1000100070009 签约中
1000100070010 草稿
signing_route_code -> signing_route
--非太原/太原
1000100790001/1000100820001 AMS纸版签约
1000100790002/1000100820002 APP电子签约
contract_type_code -> contract_type
SF 委托
CF 承租
property_check_state_code -> property_check_state
1000300270001 待审核
1000300270002 审核已通过
1000300270003 审核未通过
1000300270004 待补充
1000300270005 待客户确认
jy_type_code -> jy_type
--非太原/太原
1000100800010001/1000100830010001 AMS纸质解约
1000100800010002/1000100830010001 APP电子解约
ODS是原材料,DWD是清洗好的零件,DWS是组装好的半成品,那么ADS就是摆在货架上成品。
ods
设计ods表,数据类型按全城市的最大值创建
#流程
定时去拉去AMS的数据到ods表 , 链路猜测是ogg->spark->ods
全量定时: 每天全刷
增量定时: 几分钟一刷
dwd
application.yml 里配置了dwd需要执行哪些sql
dwd-micro: 业务
dws-ads-micro: 数据组用
zipper: ods备份表,比如监控到发生变化,就insert一条,时间是zip_valid_start,对应字段在项目的superset_fields_xxx文件
classpath配置里dwd的建表语句,写法像视图,11
${group}: sfContract
${dwdTable}: dwd_fact_sf
${odsTable}: ods_wk_sf_contract
${odsTables}: 都写的这个,但是实际用的时候还是odsTable
${isFull}: 是否全量
${lookbackSeconds}: 增量数据,前60秒的,一般不用
${jobParam}: XXL-JOB参数
${initSplitPredicate}: isFull=true且数据量很大时, 拆成多个小任务执行
自己尝试
dwd_fact_agreement:
enabled: true
ods-tables:
ods_wiwj_agreement_info:
enabled: true
sql-files:
- classpath:sql/dwd/sfContract/dwd_fact_sf_agreement_step1.sql
--委托协议测试表
DROP TABLE IF EXISTS warehouse.dwd_fact_agreement;
CREATE TABLE IF NOT EXISTS warehouse.dwd_fact_agreement (
dw_cityid INT COMMENT '城市ID',
agreement_id BIGINT COMMENT '协议ID',
city_name VARCHAR(20) COMMENT '城市',
contract_id BIGINT COMMENT '合同ID',
contract_type VARCHAR(40) COMMENT '协议类型(收房出房)',
confer_id BIGINT COMMENT '协议类型字典',
confer_name BIGINT COMMENT '协议类型名称',
status VARCHAR(100) COMMENT '协议风控审核状态',
letdatechange VARCHAR(2) COMMENT '首个招租期是否变更',
cycleLetDaysChange VARCHAR(2) COMMENT '托管招租期是否变更',
create_time DATETIME COMMENT '创建时间',
--共通
op_type VARCHAR(20) COMMENT '是否被物理删除',
etl_time DATETIMEV2(3) DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'ETL 加载时间'
)
UNIQUE KEY(dw_cityid, agreement_id)
COMMENT '委托协议测试表'
DISTRIBUTED BY HASH(dw_cityid, agreement_id) BUCKETS 16
PROPERTIES (
"replication_num" = "3",
"enable_unique_key_merge_on_write" = "true"
);
dwd_fact_sf_agreement_step1.sql
INSERT INTO dwd_fact_agreement
(
dw_cityid,
agreement_id,
city_name,
contract_id,
contract_type,
confer_id,
confer_name,
status,
letdatechange,
cycleLetDaysChange,
create_time,
op_type,
etl_time
)
SELECT
s.dw_cityid as dw_cityid,
s.ID as agreement_id,
dc.dict_name as city_name,
s.CONTRACTSID as contract_id,
s.CONTRACTTYPE as contract_type,
s.CONFERID as confer_id,
ods_conferid.DICTNAME as confer_name,
s.STATUS as status,
detail.letdatechange AS letdatechange,
detail.cycleLetDaysChange AS cycleLetDaysChange,
s.CREATETIME as create_time,
s.op_type,
s.etl_time
FROM ${odsTable} s
left join dict_config dc on dc.dict_id = s.dw_cityid and dc.dict_type = 'city'
left join ods_taw_system_dicttype ods_conferid on ods_conferid.dw_cityid = s.dw_cityid and ods_conferid.dictid = s.conferid
LEFT JOIN (
SELECT
dw_cityid,
CONFERID,
MAX(CASE WHEN name = 'letDateChange' AND value = 'Y' THEN 'Y' ELSE 'N' END) AS letdatechange,
MAX(CASE WHEN name = 'cycleLetDaysChange' AND value = 'Y' THEN 'Y' ELSE 'N' END) AS cycleLetDaysChange
FROM ods_wiwj_agreement_detail_info
WHERE name IN ('letDateChange', 'cycleLetDaysChange')
GROUP BY dw_cityid, CONFERID
) detail ON detail.dw_cityid = s.dw_cityid AND detail.CONFERID = s.id
INNER JOIN dwd_batch_window b
ON b.dwd_group = '${group}'
AND b.dwd_table = '${dwdTable}'
AND b.ods_table = '${odsTable}'
WHERE s.pos > b.batch_start_pos
AND s.pos <= b.batch_end_pos
AND s.CONTRACTTYPE = 'SF';