代码库大小方面的最佳实践
代码库大小会影响 Dataform 的多方面开发,例如:
- 协作
- 代码库可读性
- 开发流程
- 工作流编译
- 工作流执行
Dataform 会对编译资源强制执行 API 配额和限制。代码库大小过大可能会导致您的代码库超出这些配额和限制。这可能会导致 SQL 工作流的编译和执行失败。
为降低此风险,我们建议拆分大型代码库。拆分大型代码库时,您需要将大型 SQL 工作流拆分为多个较小的 SQL 工作流,这些工作流存储在不同的代码库中,并通过跨代码库依赖项进行连接。
这种方法可让您遵守 Dataform 配额和限制、精细流程和权限,并提高代码库的可读性和协作能力。不过,与管理单个代码库相比,管理分屏代码库可能更具挑战性。
如需详细了解 Dataform 中代码库大小的影响以及拆分代码库的最佳实践,请参阅拆分代码库。
代码库结构的最佳实践
我们建议您在 definitions
目录中构建文件结构,以反映工作流的各个阶段。请注意,您可以采用最符合您需求的自定义结构。
以下 definitions
子目录的推荐结构反映了大多数 SQL 工作流的关键阶段:
sources
,用于存储数据源声明intermediate
,用于存储数据转换逻辑output
,用于存储输出表的定义- 可选:
extras
,用于存储其他文件
Dataform 中的所有文件的名称都必须符合 BigQuery 表命名准则。我们建议 Dataform 仓库中 definitions
目录中的文件名反映子目录结构。
如需详细了解在代码库中设置文件结构和命名文件的最佳实践,请参阅在代码库中设置代码结构。
代码生命周期最佳实践
Dataform 中的默认代码生命周期包括以下阶段:
在 Dataform 工作区中开发 SQL 工作流代码
您可以使用 Dataform 核心或仅使用 JavaScript 进行开发。
-
您可以使用版本配置和工作区编译替换配置自定义编译结果。
借助发布配置,您可以配置整个代码库的自定义编译结果。您稍后可以在工作流配置中安排其执行。
借助工作区编译替换,您可以为代码库中的所有工作区配置编译替换,从而为每个工作区创建自定义编译结果。
在 BigQuery 中执行编译结果
您可以使用工作流配置安排执行作业或代码库编译结果。
如需在 Dataform 中管理代码生命周期,您可以创建执行环境,例如开发环境、预演环境和生产环境。
如需详细了解 Dataform 中的代码生命周期,请参阅 Dataform 中代码生命周期简介。
您可以选择将执行环境保存在单个代码库中,也可以保存在多个代码库中。
单个代码库中的执行环境
您可以使用工作区编译替换和版本配置,在单个 Dataform 代码库中创建隔离的执行环境,例如开发环境、预演环境和生产环境。
您可以通过以下方式创建隔离的执行环境:
- 按架构拆分开发环境表和生产环境表
- 按架构和 Google Cloud 项目拆分开发环境表和生产环境表
- 按 Google Cloud 项目拆分开发、预演和生产表
然后,您可以使用工作流配置在预演环境和生产环境中安排执行作业。我们建议您在开发环境中手动触发执行。
如需详细了解在 Dataform 中管理代码生命周期的最佳实践,请参阅管理代码生命周期。
多个代码库中的代码生命周期
如需根据代码生命周期的每个阶段量身定制 Identity and Access Management 权限,您可以创建代码库的多个副本,并将其存储在不同的Google Cloud 项目中。
每个 Google Cloud 项目都充当一个执行环境,与代码生命周期的某个阶段相对应,例如开发和生产。
在此方法中,我们建议在所有 Google Cloud 项目中保持代码库的代码库一致。如需在代码库的每个副本中自定义编译和执行,请使用工作区编译替换、发布配置和工作流配置。
后续步骤
- 如需详细了解 Dataform 中的代码库大小,请参阅代码库大小概览。
- 如需详细了解拆分代码库的最佳实践,请参阅拆分代码库。
- 如需详细了解代码库结构的最佳实践,请参阅在代码库中构建代码
- 如需详细了解 Dataform 中的代码生命周期以及配置代码生命周期的不同方法,请参阅 Dataform 中代码生命周期简介。
- 如需详细了解代码生命周期的最佳实践,请参阅管理代码生命周期。