有关代码库大小的最佳实践
代码库大小会影响 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 中的代码生命周期简介。
- 如需详细了解代码生命周期的最佳实践,请参阅 管理代码生命周期。