从旧版 Dataform 迁移

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 配置一致的出站 IP 地址。若要允许使用 Dataform IP 与第三方远程代码库,必须配置一致的出站 IP 地址。

  • 目前不支持在开发工作区的 Code 标签页中设置代码格式。

  • 手动运行单元测试。

  • 目前不支持在开发工作区中搜索文件名和文件内容。

  • 目前不支持在开发工作区中使用标签页。

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

已知限制

Google Cloud 中的 Dataform 具有以下已知限制:

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

    每次安装软件包时,package.json 中不含名称字段的项目都会在 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. dataform.json 中,添加 defaultLocation 参数。此参数会被 app.dataform.co 忽略。

    "defaultLocation": "DATASET_LOCATION",
    

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

  6. 删除 package-lock.json

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

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

      {
          "name": "PACKAGE_NAME",
          "dependencies": {
              "@dataform/core": "^2.3.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 配置提醒

后续步骤