排查 Dataform 问题

本文档介绍了如何解决 Dataform 问题。

对 BigQuery 的访问遭拒

如果您在向 Dataform 授予对 BigQuery 的访问权限之前触发流水线调用,则会发生以下错误:

Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.

如需解决此错误,请向 Dataform 授予对 BigQuery 的访问权限。

远程仓库的访问令牌被拒绝

如果连接的第三方代码库的身份验证令牌无权访问该代码库,则会发生以下错误:

The access token for remote repository REPOSITORY_NAME was rejected

如需解决此错误,请检查 Git 提供商中的所需权限,并相应地更新 Secret Manager 身份验证令牌。如需详细了解如何在 Dataform 中对第三方 Git 代码库进行身份验证,请参阅连接到第三方 Git 代码库

超出 BigQuery 查询并发限制

如果针对 BigQuery 运行的并发查询数量超出 BigQuery 查询并发 限制,则会发生以下错误:

Exceeded rate limits: too many concurrent queries for this project_and_region

如需解决此错误,请通过以下方式将并行查询的数量减少到 250 以下:

如需了解如何在 BigQuery 中解决此错误的说明,请参阅排查 配额和限制 错误

超出 BigQuery 配额

如果 Dataform 发送到 BigQuery 的 API 请求数量超出 BigQuery 配额,则会发生以下错误:

Quota exceeded: Your user_method exceeded quota for concurrent api requests
per user per method.

如需解决此错误,请通过以下方式将并行查询的数量减少到 250 以下:

如需了解如何在 BigQuery 中解决此错误的说明,请参阅排查 配额和限制 错误

BigQuery 流水线调用错误

在执行到 BigQuery 的工作流期间,会发生以下错误:

如需解决这些错误,请参阅 BigQuery 错误 消息

编译失败

由于编译查询的大小或数量,在编译期间会发生以下错误:

  • Compilation timed out. Reduce the complexity of your project to ensure it can compile within limits.
  • Compilation exceeded its allowed heap memory limits. Reduce the complexity of your project to ensure it can compile within limits.
  • Compilation exceeded its allowed ArrayBuffer or string memory limits. Reduce the complexity of your project to ensure it can compile within limits.

如需解决这些错误,请按以下步骤操作:

  1. 将 Dataform 核心更新到最新 版本。
  2. 检查工作流以找出并减少低效之处。
  3. 减小 SQL 查询的大小。
  4. 减少内存中的 JavaScript 操作量,例如:

    config { config {type: "table" }}
    js {
        const tooBig = new Uint8Array(110_000_000);
    }
    SELECT ...
    
  5. 拆分代码库

如需详细了解 Dataform 编译资源限制,请参阅 配额和限制

存在冲突的 includeDependentAssertions 属性

如果在同一文件中为同一操作设置了具有不同值的 includeDependentAssertions 参数,则在编译期间会发生以下错误: