Files
docusaurus/docs/相寓资料/Doris说明.md
T
2026-08-14 15:28:57 +08:00

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';