[论文解读] Building a serverless Data Lakehouse from spare parts
本文提出了 Bauplan,一个通过复用开源组件而非从零重写或依赖传统大数据工具构建的无服务器数据湖house。通过整合 Apache Iceberg、DuckDB 和自定义容器化运行时等现有系统,该平台为交互式查询和可扩展的流水线执行提供了统一、以开发人员为中心的体验,具备低延迟函数执行和高效缓存能力。
The recently proposed Data Lakehouse architecture is built on open file formats, performance, and first-class support for data transformation, BI and data science: while the vision stresses the importance of lowering the barrier for data work, existing implementations often struggle to live up to user expectations. At Bauplan, we decided to build a new serverless platform to fulfill the Lakehouse vision. Since building from scratch is a challenge unfit for a startup, we started by re-using (sometimes unconventionally) existing projects, and then investing in improving the areas that would give us the highest marginal gains for the developer experience. In this work, we review user experience, high-level architecture and tooling decisions, and conclude by sharing plans for future development.
研究动机与目标
- 解决理想化的数据湖house愿景与现有实现中糟糕的开发人员体验之间的差距。
- 构建一个灵活、可扩展且低摩擦的数据平台,同时支持交互式查询和生产级数据流水线。
- 通过复用现有开源工具而非从零构建或改造传统大数据框架,降低开发开销。
- 通过以 CLI 优先的设计提升开发人员的使用体验,支持开发与生产环境中的同步和异步工作流。
- 探索一条务实的路径来实现数据湖house愿景,平衡创新与初创企业技术可行性。
提出的方法
- 该平台复用成熟的开源项目,如使用 Apache Iceberg 作为表格式、DuckDB 作为 SQL 引擎、Nessie 作为版本控制,将其视为基础的‘乐高积木’。
- 针对 Python 执行,构建了自定义的容器化运行时,并采用本地磁盘缓存,利用包使用模式的幂律分布特性,优化启动时间并减少依赖下载开销。
- 轻量级容器管理器支持在 DAG 执行中实现函数级别的隔离和可定制的共享策略,同时支持同步和异步模式。
- 系统利用对象存储进行缓存,在单租户、'自带云'部署场景下支持无服务器执行,具备 300ms 快速启动和极低开销。
- CLI 优先的界面提供两个核心命令:'bauplan query' 用于同步的、时间点的数据探索,'bauplan run' 用于异步的、基于 DAG 的流水线执行,支持重放和调试功能。
- 通过分支感知的查询原生支持时间旅行语义,允许用户检查版本历史中不同时间点的数据。
实验结果
研究问题
- RQ1是否可以通过复用现有开源组件而非从零重写或扩展传统大数据框架,有效构建一个无服务器数据湖house?
- RQ2在可组合的无服务器架构中,如何在交互式查询和生产级流水线执行之间实现一致的开发人员体验?
- RQ3在无服务器数据平台中使用容器化运行时执行 Python 函数时,会带来哪些性能与使用体验的权衡?
- RQ4基于包使用模式的缓存策略在多大程度上可以减少无服务器数据函数的冷启动开销?
- RQ5在可组合的数据管理系统中,如何原生支持版本化数据、时间旅行和可重现的流水线?
主要发现
- 通过高效、本地的磁盘缓存机制,平台实现了无服务器 Python 函数 300ms 的快速启动时间,显著提升了性能。
- 利用包使用模式的幂律分布特性,缓存策略显著减少了整体下载时间,提升了函数初始化性能。
- CLI 优先的设计使平台能无缝集成到现有开发工作流中,同时支持交互式探索和复杂、可重现的流水线执行。
- 系统在开发与生产环境中均支持同步和异步执行模式,语义一致,并通过 Nessie 实现完整版本控制。
- 使用具备细粒度隔离和可定制共享策略的容器化运行时,可在单个 DAG 内安全、可扩展地执行数据流水线。
- 通过复用开源组件,团队得以快速收敛到一个端到端可用的系统,并通过早期采用者验证了核心假设。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。