AB
AiBoss
ニュース

Databricks 开源 Funke:在湖仓中原生解析 HL7v2 消息

Databricks 发布开源加速器 Funke,可将 HL7v2 医疗消息直接解析为原生 Spark 类型,保留完整的段、字段、组件与子组件层级,无需先转换为 FHIR 或借助第三方引擎扁平化。它是 2021 年 Scala 库 Smolder 的继任者,改用 Python 与 PySpark 重写。

核心事实

Databricks 在其官方博客发布开源加速器 Funke,用于在 Databricks Lakehouse 上原生解析 HL7v2 消息。据该博客介绍,Funke 会把 HL7v2 消息直接解析为原生 Spark 类型,并保留原始消息中段(segment)、字段(field)、组件(component)与子组件(subcomponent)的完整层级结构,解析过程以无损为目标,不经过 FHIR 转换,也不依赖第三方引擎把层级扁平化为宽表。

Funke 是 Databricks 于 2021 年开源的 Scala 库 Smolder 的继任者,改用 Python 与 PySpark 重写,围绕 Unity Catalog、Declarative Automation Bundles 与 Spark Declarative Pipelines 构建。名称取自德语中「火花」之意。博客称其支持所有 HL7 消息类型与版本,并附带可运行的演示。

背景与影响

HL7v2 是医疗行业部署最广泛的集成标准之一,用于临床系统之间传递入院、检验申请、结果回报等运营数据。但其消息是嵌套的分隔符编码结构,且规范留有灵活性,不同发送系统的实际消息存在差异。博客指出,团队通常采用两种变通方式:先统一转换为 FHIR,这会增加翻译层并可能丢失没有干净 FHIR 对应物的细节;或交给第三方引擎扁平化,这意味着额外付费、数据移出平台,并失去对底层细粒度结构的直接访问。

Funke 以声明式管道形式部署,遵循 medallion 分层模式:新 HL7 文件落入 Unity Catalog 卷,Auto Loader 读取并写入 raw_messages 表;parsed_messages 表读取原始流并应用解析器,新增一个原生类型的 hl7 列。用户可在此基础上自行构建 gold 表。博客还提到随附的演示包含合成 ADT 事件生成器与基于 Databricks Apps 的控制台应用。

限制与来源

博客明确说明,Funke 是解析器与摄取加速器,不是接口引擎,也不能替代正确解读这些消息所需的临床与 HL7 专业知识;从段和字段到业务概念的映射仍需用户结合自身领域知识决定。上述内容均来自 Databricks 官方博客,具体功能、部署方式与可用范围请以官网当前信息为准。