入行不久的程序员,最容易对自己和技术产生怀疑。整天担心学不到技术,不能在日活1亿的好项目里锻炼。其实完全没必要。项目一旦成为项目,它的新奇感也就没有了。剩下的就是苦的活儿,码字。
如何获取更多项目经验?看论文,看同行分享。拆解他们如何将需求分析到落地,如何来做技术选型,从中理清细节。
我在看《维度建模》的时候,也曾经懵逼。书上讲的知识是一回事,但没有看到实际的应用之前,觉得书本东西就是一层膜,朦朦胧胧,也云里雾里,不知道怎么用,哪里该用ODS,怎么分层,数据集市该怎么分类。
这一系列的概念,在我看到真正的案例时,才豁然开朗。
哪里才能看到真正的案例呢?最常见的做法,就是去看期刊论文。通常2-4页的论文,完整地介绍了一个实战项目的始终,有需求分析,也有架构实现,还有工具选型。资料丰富,内容精简,绝对好上手。
唯一缺少的是技术细节的剖析,但有价值的事情,不就是自己去实现嘛,你说没有项目经验,自己7周弄7个项目,不是项目经验是什么?
不废话了,今天闲逛期刊网时,看到一篇极好的论文,医院数据仓库项目及其OLAP分析系统,分享给大家。相信看完这个案例后,你一定会对传统行业,生产制造,医院学校,电信银行等数据仓库及其BI应用有所了解。
看病的经历,大家都有。挂号,等待,问诊,检查,确诊,拿药,回家。就是这么个流程,中间涉及到的每一步,现代化的医院都会替你如实地记录下来。
做业务系统的朋友,脑袋里肯定在琢磨的是,用的什么前端架构,是Vue,Angular,还是JQuery?服务端用的是c#还是Java Spring Boot?
做数据库的朋友,想法不一样了,除了问采用Oracle还是SQL Server,心里最大的疑问,莫过于他们需要用BI吗,会有哪些主题,驾驶舱怎么玩的,大屏怎么实现的,医生的字儿那么有个性,这些病症的全文检索怎么办?
这样一琢磨,整个医院的软件体系结构也就出来了。两大块内容,业务系统与分析系统。
业务系统,通常指那些记录病人与医生之间每一次交互的行为信息记录系统。有正常门诊急诊使用的问诊系统,身体各部分检查的影像系统,还有各类体液检测系统,等等。
分析系统,通常是院方用来分析经营利润,医疗评判和医护人员效率的工具。大家看病,通常都会调侃,现在看病贵,看个小病就要好几百。那么事实上,医院真的就很赚钱吗,看下他们的医院经营分析利润报表就可以知道了。
我没做过医院类的数仓也不好说,如果读者们有这个经验,不妨与我们分享下。对于医院来说,一个好名声,可能比利润更重要,所以依靠死亡率,重返率及手术并发率等指标,凸显院方医术先进,更是需要分析系统的保障。
所以,用简单的二分法来归类医院的信息系统,就非常简单的架构:
业务系统(OLTP)负责记录看病日志,而分析系统(OLAP)用来提供管理决策依据。
而具体而看决策分析系统,就有很多说法了:
几大配件:
- 元数据管理
- ETL
- 数据模型
- 数据可视化
- 应用服务层
- 管理运维层
上面的架构图看上去简单,分层也很清晰,所有的数据仓库及其BI平台,几乎都可以套用它。唯一不同的是实现方法。
在ETL方面,传统行业使用Batch方式多一些,比如SSIS, Informatica, DataStage 等等,走T+1的增量更新,今天的数据,明天才能反映在报表或者分析系统中。而互联网行业,使用 Kafka, Spark, Flink等等,走T+0的方式,做到实时更新。
在数据仓库和Cube方向,传统的企业使用Oracle, SQL Server, DB2的居多,大量的SQL Girl & Body 都会在这个方向上努力。而互联网行业,会加入Hadoop, Hive, Spark 等,来做分布式存储与计算。
Cube方面,曾经的SSAS红极一时,yahoo号称有4000台的Cube,现在也逐渐被Kyligence所取代。
应用服务层,大家可能不常见,尤其对于传统行业的设计人员,利用BO,Hyperion,SSRS等封装好的产品,直接开发与分发报表,所以看不到单独开来的服务层模块。这一层,主要是承接可视化的需求,按照用户角色权限,设计,分发和响应报表请求。
BO,Hyperion,SSRS的产品够好,但唯一的缺陷,是缺少定制化,比如角色权限控制,定时或实时发送警告等。这块我也正在发力,准备做得更深入些,前两天在我的知识星球里,开玩笑说最近开了很多坑,这块算一个。
比如 Web API 可以用NodeJS来完成,对于各类数据响应,使用Docker化部署的NodeJS API,可以线性扩展报表的响应性能。比如使用 Ado.net/Adomd.net 可以将数据库与Cube的访问同时写进一个Web Service里面,这样拉取数据的效率会高很多。
可视化,大家多少都了解些,Excel的Pivot就是简单的例子,各类报表工具,Tableau,FineBI,FineReport也是层出不穷。
当然还有完全可定制化的图表库,比如使用 Angular, D3.js等javascript库,可以开发出更人性化的报表和分析界面。
现在流行的大屏,驾驶舱等等,都是这样衍生出来的,功能上还是在提供数据可视化的表达窗口而已。
差不多了,对于一个基础入门来说,看懂这个框架图,详细地扣一扣技术细节,一个完整的项目经验,应该就算是有了。
今天的文章如何设计数据仓库_智慧医疗大数据平台[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84353.html