Databricks

How a major freight railroad scaled pipeline creation with Genie Code

8.5内容质量

TL;DR · AI 摘要

加拿大货运铁路公司利用Databricks Genie Code将数据管道创建时间从天缩短至分钟,实现90%自动化。

核心要点

  • Genie Code结合Unity Catalog实现90%的新表摄入自动化
  • YAML提示可生成含历史加载逻辑的生产级代码
  • 湖仓架构使管道开发效率提升1000倍

结构提纲

按章节快速跳转。

  1. 加拿大铁路公司面临数据现代化规模化挑战,需处理20000英里铁路网络的2500亿加元货物数据。

  2. 采用Genie Code+Unity Catalog+Agent Skills构建自动化管道工厂,通过YAML生成完整代码。

  3. 新表摄入时间从天级压缩至分钟级,自动化率超90%,保留企业标准与元数据。

  4. 需在不增加人工开发量的前提下,现代化数百个管道并保持业务逻辑完整性。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Genie Code自动化数据管道
    • 技术栈
      • Genie Code
      • Unity Catalog
      • Agent Skills
    • 核心价值
      • 90%自动化
      • 元数据对齐
      • 企业标准保留
    • 实施效果
      • 天→分钟
      • 成本降低
      • 可扩展性

金句 / Highlights

值得收藏与分享的关键句。

#Databricks#数据管道#自动化#湖仓架构#Genie Code
打开原文

主要货运铁路公司如何利用Genie Code扩展管道创建 | Databricks 博客

跳至主要内容

客户

2026年8月12日

主要货运铁路公司如何利用Genie Code扩展管道创建

一家领先的加拿大运输和物流公司通过使用Genie Code、Unity Catalog和自定义Agent Skills,实现了受控的遗留管道现代化自动化,将新表数据摄入时间从数天缩短至分钟级。

由Dinesh Chandrasekaran、Subhadip Chanda、Julia Powell和Gal Oshri撰写

摘要

  • 该公司使用Databricks Genie Code自动现代化遗留管道,管道交付时间从每个表需要数天缩短至分钟级。
  • 通过Genie Code的Agent Skills和Unity Catalog集成,现代化过程保留了企业标准和元数据基础。
  • 通过解决手动重建数百个数据管道的核心规模问题,同时保留企业标准、元数据基础和专家评审,该方法实现了新表数据摄入超过90%的自动化,并将管道交付时间从每个表需要数天缩短至分钟级。

加拿大最大的铁路网络之一横跨加拿大境内约20,000英里的路线,并延伸至美国,每年支持价值超过2500亿加元的货物运输。对于一家运营规模如此庞大的企业来说,现代化一个几十年历史的数据体系从来都不是逐表进行的工程。

在数百个管道同时运行、对实时分析和AI的需求不断增长,以及大量机构知识深植于遗留系统的情况下,该公司需要一种方法来扩展现代化进程,而无需增加手动开发的工作量。

通过使用Databricks Genie Code、Unity Catalog、自定义Agent Skills以及基于Databricks Apps构建的Streamlit应用,团队将管道开发本身转变为可重复的工厂。现在,一个简短的YAML提示即可生成基于实时目录元数据、默认符合企业规范的生产就绪数据摄入代码,包括表定义、历史加载逻辑、流式数据摄入逻辑、增量合并逻辑和自动化测试。

其成果是新表数据摄入实现超过90%的自动化,管道交付时间从数天压缩至分钟级,同时现代化计划能够随着业务扩展而扩展,而非受限于开发人员的带宽。

在企业规模上现代化复杂的数据体系

与许多大型企业一样,该公司在数十年间通过主机系统、遗留数据仓库、企业ETL平台和专用设备构建了其分析体系。随着公司向现代湖仓架构转型,挑战不仅限于迁移本身:团队需要在保留大量遗留系统关键业务逻辑的同时,简化并标准化管道的构建方式。

在实现自动化之前,为单个表构建管道需要多天时间。团队需要检查源模式,在源到目标映射电子表格中定义业务逻辑,构建历史和流式数据摄入逻辑,编写增量合并管道,实施下游转换,并为模式演变、列重命名、类型转换和软删除等场景创建测试覆盖率。

对于单个表来说,这项工作是可管理的;但面对数百个表时就变得难以应对。真正的制约因素是需要反复且一致地将遗留逻辑转换为湖仓管道所需的大量手动工作。

公司不仅需要现代化其数据管道,还需要重新构建数百个管道的开发流程。

Databricks 作为现代化引擎

该解决方案围绕两项协同工作的能力展开:Genie Code 配合自定义 Agent Skill 生成可投入生产的摄入工件,以及 Databricks App 用于将源字段映射到目标湖仓表并生成转换逻辑。

二者共同构建了从元数据发现到代码生成的端到端工作流,全部在 Databricks 内完成。Genie Code 作为自主 AI 合作伙伴,自定义 Agent Skill 则封装了公司的摄入模式和合并逻辑。Unity Catalog 提供跨原始层、历史层和预处理层的模式内省能力,Databricks App 支持源到目标的映射体验。生成的管道使用 PySpark、Spark SQL 和 Delta Lake,并通过 Lakeflow Jobs 执行。

这种方案使团队能够将 Genie Code 扩展为符合自身摄入标准和管道规范的工具。审计规范、去重逻辑、变更序列合并保护、软删除对账和测试模式直接嵌入生成过程,而非依赖每位开发者手动应用。

为概率化工作流添加确定性是关键。我们选择自动化已知正确的部分,同时保留解释层作为可选。大语言模型在思考时提供帮助,框架则确保可解释性内建。——加拿大某领先运输与物流公司数据与 AI 部门负责人 Dinesh Chandrasekaran

这一理念成为整个方案的核心:在需要推理和发现的环节使用 AI,在需要一致性和可复现性的环节使用严格模式。

从简短提示到生产就绪管道

开发者从简洁的 YAML 提示开始。最简单情况下,该提示可短至两行用于原始数据摄入。对于完整表管道,提示包含核心输入如源表和目标表名称、主键、去重逻辑和刷新行为。

随后 Genie Code 按照结构化工作流执行。它解析并验证提示,通过 Unity Catalog 元数据发现历史层和可信层模式,自动匹配源字段,识别类型转换和重命名需求,解析转换模式,使用公司标准模式生成请求的工件,并将每个输出与必要的企业不变量进行验证。这些不变量包括主键覆盖范围、审计列位置、变更序列保护合并、REFRESH 意识的去重和测试套件覆盖率。

根据模式,工作流支持单表处理、单次请求多表处理,或由存储在 Unity Catalog 卷中的 CSV/Excel 文件驱动的批量运行。实际应用中,该工作流可生成六种生产就绪输出:DDL、历史加载、原始流式摄入、首次增量合并、持续增量合并和自动化测试套件。

每个生成的笔记本均遵循相同的审计列、去重、变更序列感知合并和软删除对账企业规范。

Agent Skill 使企业标准可复用

架构的关键部分是自定义 Agent Skill,它为 Genie Code 提供了可复用的方式,用于应用公司的摄入标准、命名规范和管道模式。

该技能的版本管理方式与其他代码库相同。它包含一个SKILL.md入口文件,以及用于目录发现、规范、原始数据摄入、历史数据加载、增量合并和测试生成的支持模式文件。这种结构使公司能够通过Genie Code集中管理生成逻辑,同时向开发者提供访问权限。

该技能是一个上传到workspace/.assistant/skills/lakehouse-ingestion/的单一文件夹。它包含一个SKILL.md入口文件,以及每个工件类型的七个模式文件:

$

/$

SKILL.md的frontmatter是Genie Code决定何时加载该技能的依据:

与其在一个地方文档化标准并要求每个开发者手动解读,团队将这些标准直接编码到工作流中。代理负责上下文收集和编排。技能确保生成的工件每次都能遵循相同的模式。

开发者通过Genie Code会话中的简短YAML提示启动代码生成。仅原始数据摄入的最小提示需要两行。完整管道需要六行。

最小示例,仅生成原始数据摄入笔记本:

完整示例,为单个表生成完整的六工件管道:

六个工件在运行时按以下顺序执行:

基于Unity Catalog,受默认治理

另一个关键设计原则是将代码生成建立在实时元数据之上,而非静态假设。

Genie Code使用Unity Catalog实时检查原始表、历史表和预处理表的模式。这种元数据驱动的方法消除了单独发现层的需求,并为代理提供了生成映射、推断转换和在代码生成前验证必填字段所需的上下文。

同样重要的是,所有生成的工件都保留在Databricks工作区,并与数据平台其余部分采用相同的治理模型。访问控制、元数据策略和修订历史保持原生Databricks特性。这种元数据基础与受控执行的结合帮助团队弥补了企业AI采用中的一个常见缺口:在不引入不一致或削弱控制的情况下加速推进。

在关键环节保留人工参与

公司并未将此视为完全无需人工干预的生成问题。在代码生成前,数据设计师使用Databricks应用检查来自遗留源系统的字段应如何映射到目标湖仓表。

这一步骤称为源到目标映射,捕获了不应盲目猜测或自动化的业务逻辑。基于Streamlit的Databricks应用扫描源系统表,预填充列映射,并允许数据设计师在浏览器中审查和优化转换逻辑。

每次编辑都会记录在变更日志中,最终映射可以导出并作为生成工作流的输入。这使流程更快,同时在仍需业务解释的关键环节保留专家审核。数据设计师可以专注于转换意图和业务逻辑,而Genie Code和生成框架处理重复的实现模式。

设计上确保确定性

架构中最关键的决策之一是保持推理层智能且自适应,同时使生成的管道代码具有确定性。

Genie Code 处理那些能从智能代理推理中获益的工作流部分:解析提示、发现模式、选择正确的生成路径并拼接正确的操作序列。但生成的 PySpark 代码本身是基于规则且可复现的。合并语句、去重窗口、审计列位置、类型转换和测试模式都是通过显式的模板和不变量定义的。

对公司而言,这至关重要。在生产流水线生成过程中,合并逻辑、去重窗口或审计列位置的细微差异都可能引发下游数据质量风险。确定性输出使系统具备足够的可信度以支持企业级规模应用,并保持足够的一致性以维护来之不易的工程标准。

结果:从开发者吞吐量到现代化吞吐量

影响是立竿见影且实际的:

  • 新表摄入 Databricks Lakehouse 的自动化率超过 90%
  • 流水线开发时间从每表数天缩短至分钟级
  • 支持单表、多表和批量生成模式,覆盖即席请求、批量迁移和冲刺级现代化项目
  • 所有生成的工件均一致应用企业标准,无需人工合规审查

发生变化的不仅是开发者生产力。公司还提升了现代化项目的整体吞吐量。

团队不再将每个表迁移视为定制化工程项目,而是创建了可重复的系统,将遗留资产规模化转换为受控的 Lakehouse 流水线。

未来展望

公司将此视为更广泛现代化自动化的基础。团队目前正在探索更模块化的技能架构,涵盖编排、转换、业务逻辑和可观测性;将发现范围从 Unity Catalog 扩展到更广泛的企业数据目录;评估 AI 辅助转换遗留 DataStage、COBOL 和存储过程逻辑到 PySpark 的可行性;并利用新兴的后台代理能力支持常规流水线排查、DBR 升级和模式不匹配修复。

长期目标超越更快的代码生成。目标是创建一个持续扩展的现代化模型,即使在遗留系统复杂性、业务需求和平台范围持续增长的情况下依然有效。

订阅最新文章

订阅我们的博客,将最新文章直接发送到您的邮箱。

立即订阅

查看所有博客

slice-start id="_gatsby-scripts-1"

slice-end id="_gatsby-scripts-1"