3. 平台架构总体设计

药物研发数据平台面对的不是单一业务系统,而是从靶点发现、化合物筛选、体外/体内实验、临床前安评到临床运营的多阶段数据流。不同阶段的数据形态差异极大:组学数据是海量文件,化合物与实验结果是结构化表格,临床数据受 CDISC 标准约束,影像与流式细胞数据则是大对象。因此,架构选型的核心问题不是“哪种架构更先进”,而是“哪种架构能让不同阶段的数据以可治理、可追溯、可复用的方式流动”。本节围绕分层架构、微服务与数据网格三种主流范式,给出面向药物研发场景的对比与决策方法。

三种范式的本质差异

分层架构按技术职责纵向切分,典型为采集层、存储层、计算层、服务层与应用层。它的优势是边界清晰、依赖单向、易于建立统一的数据标准与安全策略,适合作为平台的“骨架”。在药物研发中,分层架构能保证原始实验记录、处理后数据集与对外服务接口之间形成明确的血缘链路,满足 GxP 审计对数据完整性的要求。

微服务架构按业务能力横向切分,把化合物注册、实验数据采集、生物信息分析、统计编程等拆成独立部署单元。每个服务可独立迭代、独立扩缩容,适合研发流程中频繁变化的分析需求。但微服务若缺乏统一的数据契约,容易形成“服务间数据口径不一致”,在跨阶段关联分析时产生严重偏差。

数据网格把数据视为产品,由最了解数据的领域团队负责其采集、质量与发布,平台层只提供自助式基础设施与联邦治理。它特别适合药物研发中“领域知识高度分散”的现实:化学家最懂化合物数据,生物信息学家最懂组学数据,临床数据管理员最懂 CDISC 映射。数据网格能减少中央数据团队的瓶颈,但要求组织具备较强的领域数据负责人机制。

药物研发平台三种架构范式对比 分层架构 · 微服务 · 数据网格 —— 按“切分维度”与“治理归属”区分 分层架构(纵向切分) 应用层 研发门户 / 分析看板 / 申报导出 服务层 API 网关 / 权限 / 审计日志 计算层 Spark / 生信流程 / 统计引擎 存储层 对象存储 / 关系库 / 图数据库 采集层 仪器接口 / EDC / LIMS / 文件网关 优势:边界清晰、血缘完整、合规友好 局限:中央团队易成瓶颈,领域响应慢 适用:平台骨架、统一治理底座 GxP 审计、数据完整性要求高的场景 微服务(按业务能力切分) 化合物注册 结构/编号/盐型 实验数据采集 板式/孔位/读数 生信分析 比对/变异/表达 统计编程 SDTM/ADaM 安全信号 AE/SAE 聚合 申报文档 eCTD 组装 优势:独立迭代、按需扩缩容、技术异构 局限:数据契约分散,跨服务口径易漂移 适用:分析流程频繁变化、需快速上线的模块 需配套统一数据契约与 API 版本管理 关键约束:每个服务必须发布 可版本化的数据契约(Schema) 否则跨阶段关联分析不可信 数据网格(按领域切分) 联邦治理层 统一标准 / 互操作契约 / 审计策略 化学领域 化合物数据产品 负责人:化学信息学 组学领域 测序数据产品 负责人:生物信息 临床领域 CDISC 数据产品 负责人:临床数据管理 安评领域 毒理数据产品 负责人:毒理学家 优势:领域自治、贴近业务、减少中央瓶颈 局限:需成熟领域数据负责人机制 适用:领域知识分散、数据产品化程度高 跨领域关联分析需强契约支撑 关键前提:每个领域须设数据产品负责人 并发布可发现、可寻址、可信任的数据产品 否则退化为“分布式数据孤岛”

面向药物研发场景的架构决策方法

三种范式并非互斥。实际平台通常以分层架构为骨架,在计算与服务层内部按业务能力采用微服务,在数据资产层按领域引入数据网格的产品化治理。决策的关键是识别“变化维度”:如果变化来自技术栈与部署节奏,用微服务;如果变化来自领域知识归属,用数据网格;如果变化来自合规与血缘要求,用分层架构固化边界。

下面给出一份可直接用于架构评审的决策表。评审时逐行打分,每行取最高分对应的范式作为该维度的主导选择,再综合判断是否需要混合。

决策维度 分层架构 微服务 数据网格 药物研发场景判断依据
数据血缘与审计 强 中 中 GxP 要求原始记录到申报数据可追溯,优先分层
领域响应速度 慢 快 快 分析流程频繁调整时,微服务或数据网格更优
跨阶段关联分析 强 弱 中 靶点到临床的关联需统一主数据,分层+契约
团队自治程度 低 高 高 领域专家能否承担数据产品负责人角色
异构技术栈支持 弱 强 强 组学、影像、临床工具链差异大,需异构支持
初期建设成本 低 中 高 数据网格需先建立联邦治理与产品目录

落地示例:某抗肿瘤小分子项目的架构组合

假设一个抗肿瘤小分子项目,数据源包括化合物注册系统、高通量筛选读数、RNA-seq 表达矩阵、临床前毒理报告与 I 期临床 EDC 数据。平台采用如下组合:

  • 分层骨架:采集层通过文件网关接收测序 FASTQ 与仪器原始文件,存储层用对象存储保存原始数据、关系库保存结构化实验记录,计算层运行生信流程与统计程序,服务层统一暴露 API 并记录审计日志。
  • 微服务:化合物注册、实验数据采集、生信分析、统计编程各自独立部署。每个服务发布 JSON Schema 契约,例如化合物服务输出 compound_id、smiles、salt_form、batch_no;实验服务输出 assay_id、plate_id、well、readout_value、unit。
  • 数据网格:化学、组学、临床三个领域各自维护数据产品。化学领域发布“化合物主数据产品”,组学领域发布“表达矩阵产品”,临床领域发布“CDISC SDTM 产品”。每个产品带负责人、更新频率、质量指标与访问契约。

关键实现细节在于主数据对齐。化合物编号在化学领域为 CMP-2024-0017,在实验服务中作为外键引用,在组学数据产品中通过 compound_id 关联处理组,在临床数据中通过 study_drug_code 映射。平台在服务层维护一张映射表,任何跨领域查询都先经过映射服务,避免各领域自行解释编号含义。

-- 跨领域关联查询示例(经映射服务解析后)
SELECT c.compound_id,
       c.smiles,
       e.assay_id,
       e.readout_value,
       g.gene_symbol,
       g.log2_fold_change
FROM   compound_master c
JOIN   assay_result e   ON e.compound_id = c.compound_id
JOIN   expression_product g ON g.compound_id = c.compound_id
WHERE  c.project_code = 'ONCO-2024-01'
  AND  e.assay_type   = 'IC50'
  AND  g.comparison   = 'treated_vs_control';

结果判读时,若同一化合物在 IC50 与表达数据中均能命中,说明主数据映射与数据产品契约有效;若出现化合物编号无法关联,应优先检查映射表版本与各领域数据产品的发布时间戳,而不是直接修改查询逻辑。这一判断依据来自分层架构提供的血缘记录:映射服务的每次变更都写入审计日志,可回溯到具体版本。

架构决策不是一次性选择,而是随项目阶段演进的。早期项目数据源少、团队规模小,可先用分层架构快速建立统一底座;当分析需求增多、领域团队成熟后,再逐步把领域数据产品化,引入数据网格治理;微服务则适合在分析流程频繁变化的模块中先行试点。三种范式的组合比例,应由数据血缘要求、领域自治成熟度与跨阶段关联频率共同决定。