开发者生态
morning
数字银行Monzo在100个团队与12000个dbt模型之上构建可治理的数据网格
2026-05-25
1 阅读
作者:Renato Losio
Monzo最近重新设计了其数据仓库 ",以支持100多个团队在12000多个dbt模型上的协作。通过引入所谓的“meshy”方法,Monzo将仓库成本降低了约40%,并将数据交付速度提升了25%。 在过去一年中,这家英国数字银行围绕清晰定义的建模分层重建了数据平台,明确声明了跨团队数据依赖的接口模型,并通过CI强制校验结构、命名与访问模式。本次迁移覆盖了数千个dbt模型,并引入了数百个受治理接口,减少了冗余查询与重复计算,缩短了数据落地时间,也扭转了仓库成本增长的趋势。 尽管每个团队都拥有并维护自己的数据模型,Monzo仍通过自动化护栏与共享工具支持分布式所有权。Monzo分析工程师 Antonia Badarau "、 Irina Mugford "和 Massimo Frangiamore "这样描述他们面临的挑战: 在Monzo,100多个独立且高度授权的团队共同为我们由12000多个dbt模型组成的数据仓库贡献内容。数据健康由这些团队共同负责。这样的分布式所有权很有力量,但在大规模下场景下也很难做好。另外,随着AI辅助编码成为常态、每个人都能参与生产级dbt项目,一个问题变得非常关键,那就是,我们如何确保产出仍然具备性能、一致性和高质量? dbt模型 "是将原始数据转换为结构化数据集的SQL查询,被设计为可模块化复用的组件,用于构建和维护数据管道。Monzo为其数据架构定义了三项原则:执行清晰的标准、通过显式接口规范数据共享、依靠自动化与CI检查而非人工审查来保障质量。 该银行将数据模型划分为四层:用于扁平化原始事件的自动落地模型、表示实体完整历史的生成式规范化模型、由业务逻辑组合实体的逻辑模型,以及面向特定下游用途的展示模型。 来源:Monzo博客 随后,团队通过所谓的Modelgen来强制实现一致性。它是一个命令行工具,可基于对象定义生成SQL与YAML模型。同时他们还通过CI支撑的数据标准校验结构、规范和最佳实践。Monzo Bank工程总监Luke Briscoe在LinkedIn上 这样写到 ": 在任何高速增长的组织里扩展数据能力都不容易,更不用说银行了……我并不了解有多少公司在使用这样的工具链(或者至少公开谈论它)。 Expeditious Software创始人Mateusz Ulas对此 评论说 ": 把数据接口当作一等代码来治理,至今仍然罕见。多数地方还是依赖文档然后寄希望于获得最好的结果。把标准接入CI,才是真正能落地改进的做法。 团队表示,清晰的数据分层、数据集之间稳定的接口以及CI中的自动化检查,能够保持系统一致性,让各团队独立协作的同时降低仓库成本和处理时长。 Monzo通过一组强制要求来保障数据质量与一致性:每个模型都必须定义唯一键、包含新鲜度测试、默认增量运行、声明归属团队、提供文档,并遵循在CI中校验的严格命名和元数据规范。 来源:Monzo博客 Badarau、Mugford和Frangiamore补充说: 目前我们在全公司范围内采用这些方法和系统的迁移大约完成了30%,前面还有很长的路。初步结果令人鼓舞。在一些领域,我们看到成本降低约40%、落地时间加快约25%,但现在还处于早期阶段。 在另一篇文章中,Monzo工程团队介绍了如何使用多任务神经网络来 学习欺诈模式的共享表述 ",从而提升对罕见行为和此前未见行为的识别能力,这超出了传统模型的检测范围。在今年的QCon London上,Suhail Patel还展示了 Monzo如何构建开发者平台 ",实现每天向生产环境交付数百项变更。 查看英文原文: Neobank Monzo Builds Governed Data Mesh Across 100 Teams and 12000 dbt Models "