| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- -- ============================================================
- -- ADS 层(应用数据层)建表语句
- -- 说明:患者检查周期全量宽表,以末次取镜时间为中心点
- -- ============================================================
- -- 患者检查周期宽表事实表
- CREATE TABLE IF NOT EXISTS fact_patient_exam_wide (
- -- 患者基本信息
- patient_id BIGINT COMMENT '患者ID',
- patient_id_str VARCHAR(50) COMMENT '病历号',
- patient_name VARCHAR(100) COMMENT '姓名',
- sex VARCHAR(10) COMMENT '性别',
- age INT COMMENT '年龄',
- birthday DATE COMMENT '生日',
- mobile VARCHAR(20) COMMENT '手机号',
- identity VARCHAR(50) COMMENT '身份证号',
- -- 商品和视光师信息
- fee_class VARCHAR(50) COMMENT '收费分类',
- customer_optometrist_name VARCHAR(100) COMMENT '专属视光师',
- customer_optometrist_org_name VARCHAR(200) COMMENT '专属视光师归属机构',
- last_pickup_time DATETIME COMMENT '末次取镜时间',
- last_pickup_date DATE COMMENT '末次取镜日期',
- last_pickup_goods VARCHAR(200) COMMENT '末次取镜商品名称',
- last_pickup_goods_id BIGINT COMMENT '末次取镜商品ID',
- -- 购买统计
- buy_cnt INT COMMENT '购买片数',
- refund_cnt INT COMMENT '退货片数',
- is_both_bs_xq TINYINT COMMENT '是否同时购买铂视控和星趣控:0=否,1=是',
- -- 基线时间
- baseline_date DATE COMMENT '基线时间',
- baseline_org_id INT COMMENT '基线检查机构ID',
- baseline_org_name VARCHAR(200) COMMENT '基线检查机构名称',
- -- 基线检查数据
- baseline_right_se_val DECIMAL(10,2) COMMENT '基线右眼SE等效球镜',
- baseline_left_se_val DECIMAL(10,2) COMMENT '基线左眼SE等效球镜',
- baseline_right_sph_val DECIMAL(10,2) COMMENT '基线右眼球镜',
- baseline_left_sph_val DECIMAL(10,2) COMMENT '基线左眼球镜',
- baseline_al_od_val DECIMAL(10,2) COMMENT '基线右眼眼轴',
- baseline_al_os_val DECIMAL(10,2) COMMENT '基线左眼眼轴',
- -- 1个月前检查数据
- m1_right_se_val DECIMAL(10,2) COMMENT '1个月前右眼SE等效球镜',
- m1_left_se_val DECIMAL(10,2) COMMENT '1个月前左眼SE等效球镜',
- m1_right_sph_val DECIMAL(10,2) COMMENT '1个月前右眼球镜',
- m1_left_sph_val DECIMAL(10,2) COMMENT '1个月前左眼球镜',
- m1_al_od_val DECIMAL(10,2) COMMENT '1个月前右眼眼轴',
- m1_al_os_val DECIMAL(10,2) COMMENT '1个月前左眼眼轴',
- -- 3个月前检查数据
- m3_right_se_val DECIMAL(10,2) COMMENT '3个月前右眼SE等效球镜',
- m3_left_se_val DECIMAL(10,2) COMMENT '3个月前左眼SE等效球镜',
- m3_right_sph_val DECIMAL(10,2) COMMENT '3个月前右眼球镜',
- m3_left_sph_val DECIMAL(10,2) COMMENT '3个月前左眼球镜',
- m3_al_od_val DECIMAL(10,2) COMMENT '3个月前右眼眼轴',
- m3_al_os_val DECIMAL(10,2) COMMENT '3个月前左眼眼轴',
- -- 6个月前检查数据
- m6_right_se_val DECIMAL(10,2) COMMENT '6个月前右眼SE等效球镜',
- m6_left_se_val DECIMAL(10,2) COMMENT '6个月前左眼SE等效球镜',
- m6_right_sph_val DECIMAL(10,2) COMMENT '6个月前右眼球镜',
- m6_left_sph_val DECIMAL(10,2) COMMENT '6个月前左眼球镜',
- m6_al_od_val DECIMAL(10,2) COMMENT '6个月前右眼眼轴',
- m6_al_os_val DECIMAL(10,2) COMMENT '6个月前左眼眼轴',
- -- 1个月后检查数据
- p1_right_se_val DECIMAL(10,2) COMMENT '1个月后右眼SE等效球镜',
- p1_left_se_val DECIMAL(10,2) COMMENT '1个月后左眼SE等效球镜',
- p1_right_sph_val DECIMAL(10,2) COMMENT '1个月后右眼球镜',
- p1_left_sph_val DECIMAL(10,2) COMMENT '1个月后左眼球镜',
- p1_al_od_val DECIMAL(10,2) COMMENT '1个月后右眼眼轴',
- p1_al_os_val DECIMAL(10,2) COMMENT '1个月后左眼眼轴',
- -- 3个月后检查数据
- p3_right_se_val DECIMAL(10,2) COMMENT '3个月后右眼SE等效球镜',
- p3_left_se_val DECIMAL(10,2) COMMENT '3个月后左眼SE等效球镜',
- p3_right_sph_val DECIMAL(10,2) COMMENT '3个月后右眼球镜',
- p3_left_sph_val DECIMAL(10,2) COMMENT '3个月后左眼球镜',
- p3_al_od_val DECIMAL(10,2) COMMENT '3个月后右眼眼轴',
- p3_al_os_val DECIMAL(10,2) COMMENT '3个月后左眼眼轴',
- -- 6个月后检查数据
- p6_right_se_val DECIMAL(10,2) COMMENT '6个月后右眼SE等效球镜',
- p6_left_se_val DECIMAL(10,2) COMMENT '6个月后左眼SE等效球镜',
- p6_right_sph_val DECIMAL(10,2) COMMENT '6个月后右眼球镜',
- p6_left_sph_val DECIMAL(10,2) COMMENT '6个月后左眼球镜',
- p6_al_od_val DECIMAL(10,2) COMMENT '6个月后右眼眼轴',
- p6_al_os_val DECIMAL(10,2) COMMENT '6个月后左眼眼轴',
- -- 9个月后检查数据
- p9_right_se_val DECIMAL(10,2) COMMENT '9个月后右眼SE等效球镜',
- p9_left_se_val DECIMAL(10,2) COMMENT '9个月后左眼SE等效球镜',
- p9_right_sph_val DECIMAL(10,2) COMMENT '9个月后右眼球镜',
- p9_left_sph_val DECIMAL(10,2) COMMENT '9个月后左眼球镜',
- p9_al_od_val DECIMAL(10,2) COMMENT '9个月后右眼眼轴',
- p9_al_os_val DECIMAL(10,2) COMMENT '9个月后左眼眼轴',
- -- 1年后检查数据
- y1_right_se_val DECIMAL(10,2) COMMENT '1年后右眼SE等效球镜',
- y1_left_se_val DECIMAL(10,2) COMMENT '1年后左眼SE等效球镜',
- y1_right_sph_val DECIMAL(10,2) COMMENT '1年后右眼球镜',
- y1_left_sph_val DECIMAL(10,2) COMMENT '1年后左眼球镜',
- y1_al_od_val DECIMAL(10,2) COMMENT '1年后右眼眼轴',
- y1_al_os_val DECIMAL(10,2) COMMENT '1年后左眼眼轴',
- -- 15个月后检查数据
- p15_right_se_val DECIMAL(10,2) COMMENT '15个月后右眼SE等效球镜',
- p15_left_se_val DECIMAL(10,2) COMMENT '15个月后左眼SE等效球镜',
- p15_right_sph_val DECIMAL(10,2) COMMENT '15个月后右眼球镜',
- p15_left_sph_val DECIMAL(10,2) COMMENT '15个月后左眼球镜',
- p15_al_od_val DECIMAL(10,2) COMMENT '15个月后右眼眼轴',
- p15_al_os_val DECIMAL(10,2) COMMENT '15个月后左眼眼轴',
- -- 18个月后检查数据
- p18_right_se_val DECIMAL(10,2) COMMENT '18个月后右眼SE等效球镜',
- p18_left_se_val DECIMAL(10,2) COMMENT '18个月后左眼SE等效球镜',
- p18_right_sph_val DECIMAL(10,2) COMMENT '18个月后右眼球镜',
- p18_left_sph_val DECIMAL(10,2) COMMENT '18个月后左眼球镜',
- p18_al_od_val DECIMAL(10,2) COMMENT '18个月后右眼眼轴',
- p18_al_os_val DECIMAL(10,2) COMMENT '18个月后左眼眼轴',
- -- 2年后检查数据
- y2_right_se_val DECIMAL(10,2) COMMENT '2年后右眼SE等效球镜',
- y2_left_se_val DECIMAL(10,2) COMMENT '2年后左眼SE等效球镜',
- y2_right_sph_val DECIMAL(10,2) COMMENT '2年后右眼球镜',
- y2_left_sph_val DECIMAL(10,2) COMMENT '2年后左眼球镜',
- y2_al_od_val DECIMAL(10,2) COMMENT '2年后右眼眼轴',
- y2_al_os_val DECIMAL(10,2) COMMENT '2年后左眼眼轴',
- -- 数据日期(用于分区和管理)
- data_date DATE COMMENT '数据日期(末次取镜日期)',
- -- 元数据
- create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
- )
- UNIQUE KEY (patient_id, data_date)
- PROPERTIES (
- "replication_num" = "1",
- "in_memory" = "false",
- "storage_format" = "V2"
- );
- -- 按数据日期分区(可选,根据数据量决定)
- -- ALTER TABLE fact_patient_exam_wide
- -- ADD PARTITION BY RANGE(`data_date`) (
- -- PARTITION p202401 VALUES LESS THAN ('2024-02-01'),
- -- PARTITION p202402 VALUES LESS THAN ('2024-03-01'),
- -- ...
- -- );
- -- 创建常用查询的 Rollup(提升查询性能)
- -- ALTER TABLE fact_patient_exam_wide
- -- ADD ROLLUP recent_data (
- -- patient_id, patient_name, mobile,
- -- baseline_right_se_val, baseline_left_se_val,
- -- m3_right_se_val, m3_left_se_val,
- -- p3_right_se_val, p3_left_se_val,
- -- p6_right_se_val, p6_left_se_val
- -- );
|