注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

比较: 代码存储库 vs. 代码工作区 vs. 代码工作簿

Foundry 提供三种产品以进行基于代码的数据变换:代码工作簿、代码工作区和代码存储库。虽然这些产品之间存在某些功能重叠,但每种产品都针对不同的工作流程和用户类型。以下指南旨在帮助您确定哪种工具最适合您的需求。

代码存储库 推荐用于创建稳健的生产管道和支持需要额外治理和审查层的工作流程。通过代码存储库,数据工程师可以批量创建高效的管道。适合代码存储库的示例工作流程包括:

  • 在大规模数据上运行的每日管道,需要增量计算。
  • 具有严格治理要求的高可见性管道,以便能够恢复到历史代码的以前版本,或在单元测试通过时进行代码更改。

代码工作区 推荐用于使用 JupyterLab® 和 RStudio® Workbench 进行快速高效的探索性分析,将熟悉的 IDE 与 Foundry 平台的优势结合在一起,如数据安全性、分支、搭建调度和资源管理。适合代码工作区的示例工作流程包括:

  • 逐个单元格运行数据分析并将其内容导出到可共享的报告中
  • 原型设计数据变换管道或机器学习模型

代码工作簿 推荐用于对大规模数据进行基于代码的分析,这些数据不适合代码工作区。此类分析可以是一次性使用,也可以生成定期更新的成果。代码工作簿还可以用于原型设计管道,然后可以提升到存储库。适合代码工作簿的示例工作流程包括:

  • 通过测试不同的 p 值来调查临床试验的结果。
  • 创建交互式可视化以与他人共享。

比较摘要

代码存储库代码工作区代码工作簿
特性高级管道探索性分析高级分析
支持在长期数据管道中实现复杂工作流程,具有性能优化和代码生成的灵活性。利用熟悉的 IDE 实现互动式探索性工作流程,与 Foundry 原语结合。支持常用分析语言和可视化库的数据分析工作流程。
支持的语言Python, SQL, Java, MesaPython, RPython, R, SQL
支持的环境所有环境仅 Kubernetes 环境所有环境
批处理管道支持
增量计算
变换生成
多输出变换
文件系统访问
可视化支持
迭代周期迭代代码逻辑迭代数据发现和分析迭代洞察生成
设计用于帮助迭代代码逻辑。运行时调试器和预览可以协助验证变换逻辑。搭建后可以在 Foundry 中分析数据。设计用于快速迭代数据发现和分析,使用广为人知的工具与 Foundry 其他部分无缝集成。设计用于从数据中生成洞察;所有变换都在完整的输入数据上运行,交互式控制台支持临时查询,Spark 执行模型优化用于快速迭代。
完整数据预览预览数据样本,并能够预筛选输入样本完整数据预览完整数据预览
调试器
控制台支持调试模式下
Spark 模块管理在任务级别启动 Spark 模块快速反馈循环的无 Spark 环境为即时交互保持 Spark 模块处于温热状态,并在工作簿级别启动
操作数据管道管理数据探索管理数据分析管理
支持 Foundry 数据管理库和发布自定义 Python 库完全可调环境,能够使用 pip、CRAN 和 conda 库,包括从代码存储库发布的库能够使用从代码存储库发布的自定义库;用户可以将逻辑片段保存为代码模板,从而实现其他用户的点选分析。
数据期望
发布自定义库
使用自定义库是,在某些环境中
点选代码模板
变更管理治理灵活性快速变更
优先考虑变更可追溯性和治理,以确保关键管道保持安全和稳健;高级审核和审批工作流程以及完整的变更日志。优先考虑快速和灵活的迭代,支持完整的分支和自动 Git 版本控制。优先考虑快速迭代和协作,具有轻量级分支工作流程;不需要 CI 检查或单元测试。
完整 Git 工作流
合并后复制数据
管理和删除安全权限标记
影响分析视图
高级代码审核工作流程
单元测试
表格摘要
代码存储库特性
  • 代码存储库具有高级管道功能,支持在长期数据管道中实现复杂工作流程,具有性能优化和代码生成的灵活性。
  • 代码存储库支持的语言包括 Python、SQL、Java 和 Mesa。
  • 代码存储库支持增量计算变换生成多输出变换文件系统访问
  • 代码存储库不支持可视化。
代码工作区特性
  • 代码工作区具有快速高效的探索性工作流,嵌入了 Foundry 中 JupyterLab® 和 RStudio® Workbench 的支持。
  • 代码工作区支持的语言包括 Python 和 R。
  • 代码工作区支持文件系统访问,并提供基于笔记本的分析的完全灵活性。
  • 代码工作区不支持分布式 Spark,因此更适合可以适合工作区的计算限制内的数据。
代码工作簿特性
  • 代码工作簿具有高级分析工作流,支持常用分析语言和可视化库。
  • 代码工作簿支持的语言包括 Python、R 和 SQL。
  • 代码工作簿支持文件系统访问可视化
  • 代码工作簿不支持增量计算、变换生成或多输出变换。
代码存储库迭代周期
  • 代码存储库设计用于帮助迭代代码逻辑。搭建后可以在 Foundry 中分析数据。
  • 代码存储库支持数据样本预览,以验证变换逻辑,并具有预筛选输入样本的能力。
  • 代码存储库支持运行时调试
  • 在代码存储库中,Spark 模块在任务级别启动。
代码工作区迭代周期
  • 代码工作区设计用于帮助探索和分析数据。结果可以共享、发布到仪表盘、转化为可重用的变换,或导出到生产就绪的管道工具,如代码存储库或管道构建器。
  • 代码工作区提供 JupyterLab® 和 RStudio® Workbench IDE 的完全灵活性,包括完整的代码和数据预览。
  • 代码工作区提供逐个单元格的迭代,以便即时反馈代码执行。
  • 在代码工作区中,不需要 Spark 模块,并且提供完全可自定义的内核以临时调整环境。
代码工作簿迭代周期
  • 代码工作簿设计用于帮助从数据中生成洞察。所有变换都在完整的输入数据上运行,Spark 执行模型优化用于快速迭代。
  • 代码工作簿支持完整的数据预览。
  • 代码工作簿提供控制台支持,用于临时分析变换。
  • 在代码工作簿中,Spark 模块保持温热状态以实现即时交互,并在工作簿级别启动。
代码存储库操作
  • 代码存储库支持 Foundry 数据管理库和自定义 Python 库。
  • 代码存储库支持数据期望发布自定义库和使用自定义库。
  • 代码存储库不支持点选代码模板。
代码工作区操作
  • 代码工作区可以使用 pip、CRAN 和 conda 库,包括从代码存储库发布的库,并且环境可以快速修改。
  • 代码工作区不支持数据期望或发布自定义库。
  • 代码工作区不支持点选代码模板。
代码工作簿操作
  • 代码工作簿可以使用从代码存储库发布的自定义库,用户可以将逻辑片段保存为代码模板,从而实现其他用户的点选分析。
  • 代码工作簿不支持数据期望或发布自定义库。
  • 代码工作簿使用自定义库用于某些 Spark 环境。
  • 代码工作簿支持点选模板
代码存储库变更管理
代码工作区变更管理
  • 代码工作区优先考虑快速和灵活的迭代,支持完整的分支和自动 Git 版本控制。
  • 代码工作区完全由代码存储库支持,并受益于其完整的 Git 工作流
  • 代码工作区不支持合并后复制数据。
  • 代码工作区存储其笔记本内容的安全检查点达 30 天,允许用户安全保留和检索任何给定状态,同时也提供在 Git 存储库中永久存储代码备份的机会。
代码工作簿变更管理
  • 代码工作簿优先考虑快速迭代和协作,具有轻量级分支工作流程。代码工作簿不需要 CI 检查或单元测试。
  • 代码工作簿支持合并后复制数据。
  • 代码工作簿不提供完整的 Git 工作流、安全权限标记管理或删除、影响分析视图、高级代码审核工作流程或单元测试。

JupyterLab® 是 NumFOCUS 的注册商标。 RStudio® 是 Posit™ 的商标。