4. 平台总体架构设计

医疗真实世界数据(RWD)平台面对的是多源异构、持续增长、强合规约束的数据环境:医院HIS/EMR/LIS/PACS、医保结算、随访App、可穿戴设备、第三方数据服务等,格式涵盖结构化、半结构化与影像/文本非结构化数据。总体架构设计不是“选一个最流行的技术栈”,而是围绕数据生命周期、业务时效、合规边界与团队能力做组合式权衡。本节先厘清五类架构要素的定位,再给出可落地的选型判断与参考架构。

五类架构要素的定位与边界

微服务解决的是“业务能力如何拆分与独立演进”。在RWD平台中,典型服务包括患者主索引(EMPI)、术语映射、数据质量校验、队列筛选、指标计算、脱敏与授权、审计日志等。微服务的价值在于按领域边界独立部署、独立扩缩容,例如队列筛选服务在科研高峰期可单独扩容,而不影响数据接入服务。代价是分布式事务、链路追踪、服务治理复杂度上升。

数据湖解决的是“原始与多模态数据如何低成本、保真地集中存储”。医疗数据湖通常以对象存储为底座,保留原始报文、影像、文本与设备流,支持Schema-on-Read。它的优势是写入灵活、成本低、可回溯;风险是容易退化为“数据沼泽”,缺乏元数据、血缘与质量约束时难以直接支撑分析。

数据仓库解决的是“面向分析的一致性、可复用与高性能查询”。在医疗场景中,仓库层通常承载标准化后的患者、就诊、诊断、用药、检验、费用等主题域,采用维度建模或Data Vault,提供稳定的指标口径。它的优势是治理成熟、查询性能好;局限是对半结构化与频繁变化的原始数据不够灵活,入仓前的清洗与建模周期较长。

湖仓一体试图在湖的灵活性与仓的治理能力之间取得平衡:在对象存储之上引入表格式(如Iceberg、Hudi、Delta Lake)与统一元数据/事务能力,使同一份数据既能被批处理、流处理,也能被SQL引擎高效查询,并支持ACID、时间旅行与Schema演进。对RWD平台而言,湖仓一体特别适合“原始层保真 + 标准化层可治理 + 指标层可复用”的分层诉求。

云原生不是单一技术,而是一组架构原则:容器化、声明式编排、弹性伸缩、可观测性、基础设施即代码、服务网格与托管中间件。它决定了上述微服务、湖、仓、湖仓能否以可运维、可弹性、可审计的方式落地。医疗行业的云原生还需叠加等保、数据不出域、密钥管理、审计留痕等要求,常见形态是私有云或混合云。

选型判断:从业务问题反推架构组合

选型不应从“哪个技术更先进”出发,而应从四类问题出发:数据时效要求、数据形态复杂度、分析负载类型、合规与运维约束。下表给出一个可操作的判断参考(示例参数为教学假设,用于说明判断逻辑,不代表实测结论)。

判断维度 典型问题 倾向选择 需警惕的代价
时效 是否需要分钟级/小时级更新? 流式接入 + 湖仓增量表 小文件、并发写冲突、延迟抖动
数据形态 是否含大量文本、影像、设备流? 数据湖保真存储 + 湖仓统一表 元数据与血缘缺失导致不可用
分析负载 是固定报表、探索式分析还是模型训练? 仓库承载稳定指标,湖仓承载探索与特征 口径分裂、重复计算
合规 是否要求数据不出域、可审计、可追溯? 私有云/混合云 + 云原生治理组件 弹性受限、成本上升
团队能力 是否具备平台工程与数据治理人力? 先仓库+湖,再渐进湖仓一体 一步到位导致运维失控

一个常见的误区是把“湖仓一体”当作替代仓库的万能方案。实际上,仓库层沉淀的指标口径、维度一致性与权限模型,仍然是科研统计与监管报送的信任基础;湖仓一体的价值在于让原始层与标准化层之间的链路更短、更可治理,而不是取消分层。另一个误区是过早微服务化:如果领域边界尚未稳定,拆成十几个服务只会增加联调与排障成本。更稳妥的路径是先按“接入—治理—服务—应用”划分粗粒度模块,待边界清晰后再逐步拆分。

参考架构:分层与数据流

下图给出一个面向RWD平台的参考总体架构,重点表达五类要素在分层中的位置与数据流向:原始数据经接入层进入湖存储,经治理与标准化后形成湖仓统一表,再向仓库指标层与微服务化数据服务输出,最终支撑科研、监管与运营应用。云原生能力作为横向底座贯穿各层。

医疗真实世界数据平台总体架构(参考) 数据源层 HIS / EMR / LIS PACS / 影像 医保结算 随访 / 可穿戴 第三方数据 接入与采集层 批量抽取 / CDC 消息队列 / 流接入 文件 / 影像归档 接口 / API 网关 设备流接入 数据湖存储层(对象存储 + 表格式) 原始层 ODS 保真、可回溯、Schema-on-Read 明细层 DWD 清洗、去重、主索引关联 湖仓统一表 ACID、时间旅行、Schema演进 特征 / 探索区 模型训练、即席分析 数据治理与标准化层 术语映射 / 编码 质量校验规则 主索引 EMPI 脱敏 / 授权 血缘 / 审计 数据仓库层(主题域 / 指标) 患者 / 就诊 诊断 / 用药 检验 / 费用 / 指标 微服务化数据服务层 队列筛选 指标计算 数据 API / 权限 应用层 科研分析 / 真实世界研究 监管报送 / 药物警戒 临床决策支持 运营与质量管理 云原生底座:容器编排 · 弹性伸缩 · 可观测性 · 密钥与审计 · IaC · 混合云/私有云合规

该参考架构的关键设计点有三处。第一,原始层与标准化层分离:ODS保留原始报文与影像索引,DWD完成清洗、去重与EMPI关联,避免“一入仓就丢失可回溯性”。第二,湖仓统一表作为共享底座:DWD与特征区以开放表格式组织,仓库指标层与微服务数据服务均可直接读取,减少重复搬运。第三,治理与云原生横向贯穿:术语映射、质量规则、脱敏授权、血缘审计不是某个层的附属功能,而是跨层能力;容器编排、弹性伸缩、可观测性与密钥管理则决定平台能否稳定运行并满足合规审计。

落地权衡:三条可执行的选型原则

原则一:按数据成熟度分层选型,而非全平台统一。原始层优先选数据湖,强调低成本与保真;标准化层优先选湖仓一体,强调ACID与Schema演进;指标层优先选仓库,强调口径稳定与查询性能。三层可以共存于同一对象存储底座,通过表格式与元数据服务打通。

原则二:微服务拆分以“独立变更频率”为准。如果两个能力的发布节奏、扩缩容需求、合规边界高度一致,就不必拆成两个服务。例如术语映射与质量校验常同步变更,可先合并为一个治理服务;而队列筛选与审计日志的访问模式差异大,适合独立部署。

原则三:云原生能力先补可观测性与密钥管理,再谈弹性。医疗平台的故障排查与合规审计优先级高于极致弹性。建议先落地统一日志、指标、链路追踪与密钥托管,再逐步引入自动扩缩容与IaC。否则弹性扩缩容带来的实例漂移会显著增加审计难度。

选型检查清单(示例,可按项目裁剪):① 原始数据是否保留可回溯副本?② 标准化层是否有统一元数据与血缘?③ 指标口径是否只在仓库层定义一次?④ 微服务是否按领域边界而非技术分层拆分?⑤ 是否具备跨层审计与密钥管理?⑥ 是否明确数据不出域与混合云边界?

综上,微服务、数据湖、数据仓库、湖仓一体与云原生并非互斥选项,而是分别回答“业务如何拆分、原始数据如何存、分析口径如何稳、湖与仓如何协同、平台如何可运维可合规”五个问题。RWD平台的总体架构设计,本质上是在这五个问题上做组合与排序,并以治理与合规为约束条件持续演进。