从旧版 Dataform 迁移

旧版 Dataform 将于 2024 年 2 月 26 日弃用,之后您将无法访问旧版项目。 本文档介绍了旧版 Dataform 与 Google Cloud 中的 Dataform 之间的区别,并说明了如何将旧版 Dataform 项目导入 Google Cloud 中的 Dataform。

关于 Google Cloud 中的旧版 Dataform 和 Dataform 之间的差异

Dataform 是一项无服务器服务,可供数据分析师用来开发表、增量表或视图并将其部署到 BigQuery。Dataform 为 SQL 工作流开发、与 GitHub、GitLab、Bitbucket 和 Azure DevOps Services 连接、持续集成、持续部署和工作流执行提供了一个 Web 环境。

Google Cloud 中的 Dataform 与旧版 Dataform 的不同之处体现在以下几个方面:

  • Google Cloud 中的 Dataform 支持将 Dataform 代码库连接到 Bitbucket 代码库。
  • 访问权限控制基于 IAM。
  • 移除了 workflow_settings.yaml 中的查询并发限制 (concurrentQueryLimit) 配置。

    在旧版 Dataform 中,并发限制阻止了 Dataform 向 BigQuery 发送过多的并发查询。如需在 Google Cloud 的 Dataform 中管理并发,我们建议您启用 BigQuery 查询队列

  • 旧环境被版本配置取代。

  • 旧版时间表被工作流配置取代。

  • 工作流失败提醒在 Cloud Logging 中配置

  • Google Cloud 中的 Dataform 和旧版 Dataform 使用不同的 NPM 版本和不同格式的 package-lock.json

    如需在 Google Cloud 中使用旧版 Dataform 和 Dataform 开发 SQL 工作流,请使用旧版 package-lock.json 格式进行软件包安装。在完全迁移到 Google Cloud 中的 Dataform 之前,请勿在 Google Cloud 的 Dataform 中安装软件包

如需详细了解 Google Cloud 中 Dataform 的功能,请参阅 Dataform 功能概览

Google Cloud 目前不支持的旧版 Dataform 功能

目前,Google Cloud 的 Dataform 不支持旧版 Dataform 的以下功能:

  • 手动运行单元测试。
  • 在开发工作区中搜索文件内容。

随着 Google Cloud 中 Dataform 新功能的发布,此列表将不断更新。

已知限制

Google Cloud 中的 Dataform 存在以下已知限制:

  • Google Cloud 中的 Dataform 在普通的 V8 运行时上运行,不支持 Node.js 提供的其他功能和模块。如果您的现有代码库需要任何 Node.js 模块,您需要移除这些依赖项。

    每次安装软件包时,package.json 中没有 name 字段的项目都会在 package-lock.json 上生成差异。为避免出现这种情况,您需要在 package.json 中添加 name 属性。

  • package.json 中的依赖项不支持 git+https:// 网址。

    将此类网址转换为普通的 https:// 归档网址。例如,将 git+https://github.com/dataform-co/dataform-segment.git#1.5 转换为 https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 BigQuery and Dataform API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 BigQuery and Dataform API。

    启用 API

所需的角色

如需获取导入旧版项目所需的权限,请让管理员授予您代码库的 Dataform Admin (roles/dataform.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

导入旧版项目

如需在 Google Cloud 的 Dataform 中导入旧版项目,请在 Google Cloud 控制台中执行以下步骤:

  1. 确保 app.dataform.co 中的 Dataform 项目已连接到 GitHub 或 GitLab。
  2. 在 Google Cloud 控制台中,前往 Dataform 页面。

    转到 Dataform 页面

  3. 创建新代码库

  4. 将代码库连接到包含旧版项目的远程 Git 代码库。

配置导入的 Dataform 项目

如需在 Google Cloud 中将旧版项目调整为使用 Dataform,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Dataform 页面。

    转到 Dataform 页面

  2. 选择您的代码库。

  3. 创建开发工作区

  4. 前往开发工作区。

  5. workflow_settings.yaml 中,添加 defaultLocation 参数。此参数会被 app.dataform.co 忽略。

    "defaultLocation": "DATASET_LOCATION",
    

    DATASET_LOCATION 替换为 BigQuery 数据集的默认位置,例如 USEUus-east1

  6. 删除 package-lock.json

  7. package.json 中,执行以下操作:

    1. @dataform/core 升级到 3.0.0-beta.2 或更高版本。
    2. 请按以下格式添加软件包名称:

      {
          "name": "PACKAGE_NAME",
          "dependencies": {
              "@dataform/core": "^3.0.0-beta.2"
          }
      }
      

      PACKAGE_NAME 替换为您的 Dataform 软件包的名称,例如您的项目名称。

    3. package.json 依赖项中的 git+https:// 网址转换为普通的 https:// 归档网址。

      例如,将 git+https://github.com/dataform-co/dataform-segment.git#1.5 转换为 https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz

      如果您在预构建的 Dataform 软件包中使用 git+https:// 网址,请在这些软件包的发布页面(例如 dataform-segment 发布页面)上查看更新后的安装说明。

  8. 配置 BigQuery 权限用户权限

  9. 将环境从 environments.json 迁移发布配置

  10. 将时间表environments.json迁移到工作流配置

  11. 使用 Cloud Logging 配置提醒

后续步骤