平台规划-数据平台-数据采集
医疗大数据采集:抽取PACS(影像归档传输系统),LIS(检验信息管理系统),CIS(临床信息管理系统),EMR(电子病历系统),PIMS(个人信息管理系统)等系统中的医疗信息,通过异构数据融合,初步清洗转换后上传到数据存储中心,实现各个平台间的数据采集、数据交换以及医疗业务部门之间的数据共享、业务协同的过程。
采集有3个关键环节
- 多源异构数据采集融合:消除多源数据之前的冗余和矛盾,加以互补,改善数据提取的及时性和可靠性,并加以数据关联,消除数据孤岛,提高数据使用效率和价值
- 数据清洗转换:遵循清洗规则,不全不完整数据,检查并修正错误数据,对重复数据进行去重
- 数据脱敏:基于特定脱敏规则对敏感信息进行变形,实现隐私数据的保护,让其能正常使用,而不是被非法利用
平台规划-数据平台-数仓建设
医疗大数据的处理包括:大数据的采集,清洗,管理,分析等环节的处理,目的是妥善管理有用数据,并从海量数据中挖掘价值。
医疗大数据中心的建设也是分阶段进行完善,不同的业务场景和项目标的需要采用不同的技术底座,并允许各个系统之间的接口和数据的衔接。
一、库仓混合
之前医疗行业一直采用Oracle软件,根据数仓建模理论进行事实表和维度表的建设,业务库,前置库均由Oracle建设,因为是统一的数据库,在开发过程中还是有方便之处。根据以往经验,基于区域平台县级规模在100w人口,业务库和数仓可以采用同一套数据库系统,另外为确保系统能够支撑这个规模,进一步在某些表采用分库分表的技术进行优化。
如果是部署在云机之上,需要考虑到虚拟机的性能折损,存储需要使用ssd磁盘,并做一次磁盘的IO随机读写测试,确保IO性能达标。
二、库仓分离
随着数据的的增加,面对区域平台市级规模超过300w人口,Oracle在超过一定规模的数据体量下做分析,性能会下降很多。在商业领域可以采用Teradata,但价格昂贵,且于前段时间退出中国市场。当下可采用老牌开源的MPP数据库,Greenplum作为数仓的基础底座。
GP6宣称是HTAP数据库,兼顾AP和TP性能,偏向AP。因为规划数仓的时候,需要在dwd做数据聚合和数据共享的基础源,要求有增删改查的能力。等GP7正式GA,TP性能应该会更强。也可以用OceanBase4和tidb作为数仓底座,相比GP更加偏向TP能力。
三、离线数仓
离线数仓是很成熟的技术体系了,可以采用apache Hadoop ,或者CDH 6.3.2 Hadoop 体系,都可以实现T+1的指标计算是标准模式了。只是数据融合和数据共享的功能,需要其他平行系统中提供。
四、实时数仓
去年与合作伙伴去北方做技术交流,分道扬镳后他回杭州,中午12点到,下午3点就收到了核酸检测居家隔离的信息;而我回到自己的城市后按照当时要求自我隔离每天检测,无恙后第四条准备上班,上班途中接到信息,说是从外地返回,需要自我隔离每天检测,之前做过的事情再做一次。有此感慨了一下,杭州的技术体系还是先进些,是T+0模式了。
要实现T+0的能力,需要Kakfa + Flink + Doris的技术栈,处理的链路不能太长,考虑到数据量和硬件资源,不可能所有的指标都是实时的,只能把关键的指标进行重点监管。数据聚合和数据共享和离线数仓一样,需要其他在其他的平行系统中提供。
五、数据湖
作为一个用于存储海量数据的系统,数据湖可以支持多种不同形态的数据,包括结构化数据、非结构化数据和半结构化数据。在开源领域中,提供了Hudi、Delta 和 Iceberg 的解决方案。
考虑到表格式以及流批一体的价值能力,与 Flink 结合的成熟度,以及数据的增量更新和删除操作的特点,可以选择采用 Hudi 作为 ODS 层来搭建新型的数据处理架构。同时,由于数据湖本身并不是一个完整的数据处理框架,因此还需要考虑使用湖仓并举或者湖上建仓的模式来进行湖仓一体的建设,从而实现数据的存储、管理和分析等全生命周期的管理。
除了前面提到的3种开源数据湖的解决方案,GP也能支持多种数据类型的存储,同时提供强大的数据处理和分析能力,尤其在硬件资源受限,技术储备不足的场景下,GP是一种合适的选择。
Greenplum有自己的特点,特别适合重度依赖SQL业务处理的模式
- 使用PostgreSQL作为底层引擎,支持结构化、半结构化和非结构化数据的存储和处理,也支持行存,列存以及混合存储的模式。
- 提供统一的SQL查询接口,方便用户对不同类型的数据进行查询和分析。
- 提供与机器学习相集成的功能,可以通过内置的机器学习库和算法来进行数据挖掘和预测建模等任务。