从旧版 Dataform 迁移

Legacy Dataform 将于 2024 年 2 月 26 日弃用,在该日期之后,您将无法再访问旧版项目。 本文档介绍了 Google Cloud 中的旧版 Dataform 与 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。
  • 移除了工作流设置文件中的查询并发限制 (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 中没有名称字段的项目都会在 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. 启用 BigQuery and Dataform API。

    启用 API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  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 参数:

defaultLocation: DATASET_LOCATION,

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

app.dataform.co 会忽略 defaultLocation 参数。

dataform.json

按以下格式添加 defaultLocation 参数:

"defaultLocation": "DATASET_LOCATION",

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

app.dataform.co 会忽略 defaultLocation 参数。

  1. 删除 package-lock.json
  2. 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 发布页面)上查看更新后的安装说明。

  3. 配置 BigQuery 权限用户权限

  4. 将环境从 environments.json 迁移版本配置

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

  6. 使用 Cloud Logging 配置提醒

后续步骤