4. 平台总体架构设计
医疗真实世界数据(RWD)平台面对的是多源异构、持续增长、强合规约束的数据环境:医院HIS/EMR/LIS/PACS、医保结算、随访App、可穿戴设备、第三方数据服务等,格式涵盖结构化、半结构化与影像/文本非结构化数据。总体架构设计不是“选一个最流行的技术栈”,而是围绕数据生命周期、业务时效、合规边界与团队能力做组合式权衡。本节先厘清五类架构要素的定位,再给出可落地的选型判断与参考架构。
五类架构要素的定位与边界
微服务解决的是“业务能力如何拆分与独立演进”。在RWD平台中,典型服务包括患者主索引(EMPI)、术语映射、数据质量校验、队列筛选、指标计算、脱敏与授权、审计日志等。微服务的价值在于按领域边界独立部署、独立扩缩容,例如队列筛选服务在科研高峰期可单独扩容,而不影响数据接入服务。代价是分布式事务、链路追踪、服务治理复杂度上升。
数据湖解决的是“原始与多模态数据如何低成本、保真地集中存储”。医疗数据湖通常以对象存储为底座,保留原始报文、影像、文本与设备流,支持Schema-on-Read。它的优势是写入灵活、成本低、可回溯;风险是容易退化为“数据沼泽”,缺乏元数据、血缘与质量约束时难以直接支撑分析。
数据仓库解决的是“面向分析的一致性、可复用与高性能查询”。在医疗场景中,仓库层通常承载标准化后的患者、就诊、诊断、用药、检验、费用等主题域,采用维度建模或Data Vault,提供稳定的指标口径。它的优势是治理成熟、查询性能好;局限是对半结构化与频繁变化的原始数据不够灵活,入仓前的清洗与建模周期较长。
湖仓一体试图在湖的灵活性与仓的治理能力之间取得平衡:在对象存储之上引入表格式(如Iceberg、Hudi、Delta Lake)与统一元数据/事务能力,使同一份数据既能被批处理、流处理,也能被SQL引擎高效查询,并支持ACID、时间旅行与Schema演进。对RWD平台而言,湖仓一体特别适合“原始层保真 + 标准化层可治理 + 指标层可复用”的分层诉求。
云原生不是单一技术,而是一组架构原则:容器化、声明式编排、弹性伸缩、可观测性、基础设施即代码、服务网格与托管中间件。它决定了上述微服务、湖、仓、湖仓能否以可运维、可弹性、可审计的方式落地。医疗行业的云原生还需叠加等保、数据不出域、密钥管理、审计留痕等要求,常见形态是私有云或混合云。
选型判断:从业务问题反推架构组合
选型不应从“哪个技术更先进”出发,而应从四类问题出发:数据时效要求、数据形态复杂度、分析负载类型、合规与运维约束。下表给出一个可操作的判断参考(示例参数为教学假设,用于说明判断逻辑,不代表实测结论)。
| 判断维度 | 典型问题 | 倾向选择 | 需警惕的代价 |
|---|---|---|---|
| 时效 | 是否需要分钟级/小时级更新? | 流式接入 + 湖仓增量表 | 小文件、并发写冲突、延迟抖动 |
| 数据形态 | 是否含大量文本、影像、设备流? | 数据湖保真存储 + 湖仓统一表 | 元数据与血缘缺失导致不可用 |
| 分析负载 | 是固定报表、探索式分析还是模型训练? | 仓库承载稳定指标,湖仓承载探索与特征 | 口径分裂、重复计算 |
| 合规 | 是否要求数据不出域、可审计、可追溯? | 私有云/混合云 + 云原生治理组件 | 弹性受限、成本上升 |
| 团队能力 | 是否具备平台工程与数据治理人力? | 先仓库+湖,再渐进湖仓一体 | 一步到位导致运维失控 |
一个常见的误区是把“湖仓一体”当作替代仓库的万能方案。实际上,仓库层沉淀的指标口径、维度一致性与权限模型,仍然是科研统计与监管报送的信任基础;湖仓一体的价值在于让原始层与标准化层之间的链路更短、更可治理,而不是取消分层。另一个误区是过早微服务化:如果领域边界尚未稳定,拆成十几个服务只会增加联调与排障成本。更稳妥的路径是先按“接入—治理—服务—应用”划分粗粒度模块,待边界清晰后再逐步拆分。
参考架构:分层与数据流
下图给出一个面向RWD平台的参考总体架构,重点表达五类要素在分层中的位置与数据流向:原始数据经接入层进入湖存储,经治理与标准化后形成湖仓统一表,再向仓库指标层与微服务化数据服务输出,最终支撑科研、监管与运营应用。云原生能力作为横向底座贯穿各层。
该参考架构的关键设计点有三处。第一,原始层与标准化层分离:ODS保留原始报文与影像索引,DWD完成清洗、去重与EMPI关联,避免“一入仓就丢失可回溯性”。第二,湖仓统一表作为共享底座:DWD与特征区以开放表格式组织,仓库指标层与微服务数据服务均可直接读取,减少重复搬运。第三,治理与云原生横向贯穿:术语映射、质量规则、脱敏授权、血缘审计不是某个层的附属功能,而是跨层能力;容器编排、弹性伸缩、可观测性与密钥管理则决定平台能否稳定运行并满足合规审计。
落地权衡:三条可执行的选型原则
原则一:按数据成熟度分层选型,而非全平台统一。原始层优先选数据湖,强调低成本与保真;标准化层优先选湖仓一体,强调ACID与Schema演进;指标层优先选仓库,强调口径稳定与查询性能。三层可以共存于同一对象存储底座,通过表格式与元数据服务打通。
原则二:微服务拆分以“独立变更频率”为准。如果两个能力的发布节奏、扩缩容需求、合规边界高度一致,就不必拆成两个服务。例如术语映射与质量校验常同步变更,可先合并为一个治理服务;而队列筛选与审计日志的访问模式差异大,适合独立部署。
原则三:云原生能力先补可观测性与密钥管理,再谈弹性。医疗平台的故障排查与合规审计优先级高于极致弹性。建议先落地统一日志、指标、链路追踪与密钥托管,再逐步引入自动扩缩容与IaC。否则弹性扩缩容带来的实例漂移会显著增加审计难度。
综上,微服务、数据湖、数据仓库、湖仓一体与云原生并非互斥选项,而是分别回答“业务如何拆分、原始数据如何存、分析口径如何稳、湖与仓如何协同、平台如何可运维可合规”五个问题。RWD平台的总体架构设计,本质上是在这五个问题上做组合与排序,并以治理与合规为约束条件持续演进。