数据开发的思考

1.背景

数据中台是管理数据资产的地方,那么使用数据时要重复考虑数据资产的复用,而非重复建设浪费资源。那么数据建模就需要设计才能实施。

2.好的模型

如何判断建模后的数据模型是一个好的模型,可从下面两个方向评估:

2.1 可复用的模型

(1)引用次数,被引用的次数越多,证明价值越大,所以引用次数需要记录下来,这也能表现数据资产的价值。

怎么提高引用次数

从血缘上看,自下而上就是只有一条,那么相对来说是比较差的。好的是相互交织发散

(2)查询次数

2.2 设计数据模型需要统一的标准

(1)要有主体域、业务过程

(2)规范表名、字段名

3.主题域划分方法

3.1 按照所属系统划分

业务系统有几种,就划分几种

3.2 按照业务(功能模块/业务线)或业务过程划分

如按照考勤主题、项目管理主题、日志管理主题等

3.3按照部门划分主题域

如按照领导、企管科室、运营科室等

3.4 常见的医疗主题域

参考:http://chisc.net/shangye/baike/fenxibaogao/zhuanlan/yejiejingying/yiliaoxinxihualunwen/2013-05-15/1637.html

4.数据生命周期

参考:https://www.cn-healthcare.com/article/20220117/content-565189.html

一般包括大数据组织、现 状评估、制定大数据战略、数据定 义、数据采集、数据分析、数据呈 现、数据治理及持续改进

5.维度:group by 维度

5.1 示例

参考https://doc.mbalib.com/view/155693a34c8c48ade4ff59cf75a1d19b.html

5.2 粒度:维度的层次

例如时间维度的粒度:时分秒;地域维度的粒度:省市区

5.3 维度角色:left join 维度表 as 维度角色

同个维度(如时间),但是不同动作产生的时间有不通含义,所以时间维度会有不同的维度角色

如表A是需要审批的数据记录,里面涉及4个时间:提交时间、审批时间、创建时间、更新时间,都是关联【时间维度】,为了让中台理解并自动生成sql,需要给不同时间字段设置不同维度角色

字段名字段类型描述关联维度维度角色
idbigint(20)主键
contentvarchar(1000)内容
submit_user_idbigint(20)提交人id
submit_datedate提交日期时间维度time_role_submit
apply_user_idbigint(20)审批人id
apply_datedate审批日期时间维度time_role_apply
create_datedate创建日期时间维度time_role_create
update_datedate更新日期时间维度time_role_update

时间维度表

字段名字段类型描述
valdate日期值(主键)
dayint(2)日期(dd)
day_yyyyMMddvarchar(20)日期(yyyy-MM-dd)
monthint(2)月份(MM)
month_yyyyMMvarchar(20)yyyy-MM
yearint(4)年份(yyyy)

从而根据上面【关联维度】和【维度角色】,自动生成sql

select 
    count(t.id) as total,
    submit_date,
    apply_date,
    create_date,
    update_date
from tableA as t
    left join `时间维度` as time_role_submit on time_role_submit.val=t.submit_date
    left join `时间维度` as time_role_apply on time_role_apply.val=t.apply_date
    left join `时间维度` as time_role_create on time_role_create.val=t.create_date
    left join `时间维度` as time_role_update on time_role_update.val=t.update_date
where 1=1
group by 
    time_role_submit.val,
    time_role_apply.val,
    time_role_create.val,
    time_role_update.val

5.4 sql的注意事项

select 
    t.*
from ods as t
    left join 维度表 on t.xxx = 维度表.主键
    ....
group by 维度表.主键

group by 维度表主键,而不是group by ods的时间字段,方便后期可以将这样事实表 left join 时间维度表,从而获取时间维度表的其他字段

6.厂商

6.1 阿里云-医疗健康数智平台 用户指南

https://apsara-doc.oss-cn-hangzhou.aliyuncs.com/apsara-pdf/agile-distack/v_1_2_0_20220901/drp/zh/healthcare-intelligence-platform-product-user-guide.pdf?spm=a2c4g.14484438.10003.1&file=healthcare-intelligence-platform-product-user-guide.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值