Resolver problemas com o Dataform

Neste documento, mostramos como resolver problemas com o Dataform.

O acesso ao BigQuery foi negado

O seguinte erro ocorre quando você aciona uma invocação de pipeline antes de conceder acesso do Dataform ao BigQuery:

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

Para resolver esse erro, conceda acesso ao BigQuery para o Dataform.

O token de acesso de um repositório remoto é rejeitado

O erro a seguir ocorre quando o token de autenticação de um repositório conectado de terceiros não tem acesso a ele:

The access token for remote repository REPOSITORY_NAME was rejected

Para resolver esse erro, verifique as permissões necessárias no seu provedor Git e atualize o token de autenticação do Secret Manager de acordo com isso. Para mais informações sobre como autenticar repositórios Git de terceiros no Dataform, consulte Conectar a um repositório Git de terceiros.

A cota do BigQuery foi excedida

O erro a seguir ocorre quando o número de solicitações de API que o Dataform envia ao BigQuery excede a cota do BigQuery:

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

Para resolver esse erro, reduza o número de consultas paralelas para menos de 250 das seguintes maneiras:

Para instruções sobre como resolver esse erro no BigQuery, consulte Solucionar problemas de erros de cota e limite.

O limite de simultaneidade de consultas do BigQuery foi excedido

O seguinte erro ocorre quando o número de consultas simultâneas executadas no BigQuery excede o limite de simultaneidade de consultas do BigQuery:

Exceeded rate limits: too many concurrent queries for this project_and_region

Para resolver esse erro, reduza o número de consultas paralelas para menos de 250 das seguintes maneiras:

Para instruções sobre como resolver esse erro no BigQuery, consulte Solucionar problemas de erros de cota e limite.

Erros de invocação do pipeline do BigQuery

Os seguintes erros ocorrem durante a execução de um fluxo de trabalho para o BigQuery:

Para resolver esses erros, consulte Mensagens de erro do BigQuery.

Propriedades conflitantes do includeDependentAssertions

O erro a seguir ocorre durante a compilação quando o parâmetro includeDependentAssertions é definido para a mesma ação com valores diferentes em um arquivo:

Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.

Para resolver esse erro, edite o arquivo e remova as repetições conflitantes do parâmetro includeDependentAssertions.

Para mais informações sobre como usar o parâmetro includeDependentAssertions para definir asserções como dependências, consulte Definir as asserções de uma ação selecionada como dependências.

A compilação está falhando

Os seguintes erros ocorrem durante a compilação devido ao tamanho ou ao número de consultas compiladas:

  • 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.

Para resolver esses erros, siga estas etapas:

  1. Atualize o núcleo do Dataform para a versão mais recente.
  2. Inspecione seu fluxo de trabalho para identificar e reduzir ineficiências.
  3. Reduza o tamanho das consultas SQL.
  4. Reduza a quantidade de operações JavaScript na memória. Por exemplo:

    config { config {type: "table" }}
    js {
        const tooBig = new Uint8Array(110_000_000);
    }
    SELECT ...
    
  5. Divida o repositório.

Para mais informações sobre os limites de recursos de compilação do Dataform, consulte Cotas e limites.

@dataform/core erros de dependência

Os seguintes erros ocorrem durante a compilação se a dependência dataform-core em package.json estiver desatualizada:

Failed to resolve @dataform/core
@dataform/core version should be X.X.X or newer

A dependência @dataform/core é obrigatória em package.json. Quando você inicializa o primeiro espaço de trabalho no repositório, o Dataform preenche automaticamente package.json com a versão atual de @dataform/core. Atualize o @dataform/core para a versão mais recente assim que ela for lançada.

Para resolver esses erros, atualize o @dataform/core para a versão mais recente.

Falha ao resolver dataform.json

O erro a seguir ocorre quando você inicializa um espaço de trabalho do Dataform, mas o processo de inicialização não instala todos os pacotes:

Uncaught Error: Failed to resolve dataform.json

Para resolver esse erro, abra package.json no seu espaço de trabalho e clique em Instalar pacotes.

Falha ao resolver workflow_settings.yaml

O erro a seguir ocorre quando você inicializa um espaço de trabalho do Dataform, mas o processo de inicialização não instala todos os pacotes:

Uncaught Error: Failed to resolve workflow_settings.yaml

Para resolver esse erro, abra workflow_settings.yaml no seu espaço de trabalho e clique em Instalar pacotes.

Os destinos de pacote git+ não são compatíveis

O seguinte erro ocorre quando você define pacotes em package.json com destinos prefixados com git+:

'git+' prefixed package targets are not currently supported. However,
in most cases they can be used via a '.tar.gz' suffixed target instead.

O Dataform não é compatível com destinos de pacotes prefixados com git+.

Para resolver esse erro, gere um URL tar.gz do pacote e atualize o destino do pacote em package.json. Para mais informações sobre como instalar pacotes no Dataform, consulte Instalar um pacote.

O tempo limite da instalação do pacote expira

O seguinte erro ocorre quando o tamanho dos pacotes definidos em package.json excede o tamanho máximo das dependências do NPM:

API request error: Package installation timed out

Para resolver esse erro, remova os pacotes redundantes de package.json. Verifique se o arquivo package.json não contém @dataform/cli e se o tamanho total das dependências NPM definidas não excede 200 MB.

Se as configurações de lançamento fizerem referência a commitishes do Git, verifique se os arquivos package.json nos respectivos destinos são válidos.

Não é possível acessar o registro de pacote particular

O seguinte erro ocorre quando a autenticação do Dataform para um pacote privado expira:

Permission denied when fetching one or more npm packages. Please verify that
private registry authentication details are valid for each npm registry

Para resolver esse erro, verifique se os detalhes de autenticação do registro particular são válidos para cada registro do NPM. Para mais informações, consulte Autenticar um pacote privado.

Não foi possível acessar o repositório remoto

O erro a seguir ocorre devido à instabilidade do Git ou quando a conexão do repositório de terceiros não foi configurada corretamente:

Remote repository REPOSITORY_NAME could not be reached.

Para resolver esse erro, verifique se todas as etapas listadas em Conectar a um repositório Git de terceiros foram seguidas. Em particular, confirme se o host do repositório Git está acessível na Internet pública. Além disso, valide se o token de autenticação ou a chave privada está correta e tem as permissões necessárias para acessar o repositório.

Não foi possível acessar o repositório remoto: generic::invalid_argument

O seguinte erro ocorre na página Detalhes das configurações de lançamento quando um lançamento programado encontra ocasionalmente uma conexão lenta, instável ou interrompida do GitHub, GitLab ou Bitbucket:

generic::invalid_argument: Remote repository 'REMOTE_REPOSITORY_URL' could not be reached.

Não é necessário fazer nada. A menos que os problemas do GitHub, GitLab ou Bitbucket Cloud persistam, as versões programadas subsequentes poderão ser bem-sucedidas.

Não foi possível acessar o secret de um repositório remoto

O seguinte erro ocorre quando a conta de serviço do Dataform não consegue acessar o secret do Secret Manager para um repositório de terceiros conectado:

Dataform's service account is unable to reach the configured secret.
Make sure the secret exists and is shared with your Dataform service account:
SERVICE_ACCOUNT_ID.

Para resolver esse erro, faça o seguinte:

  • Verifique se a conta de serviço do Dataform tem acesso ao secret.
  • Exclua o secret do perímetro de serviço do VPC-SC. No momento, o Dataform não é compatível com o VPC-SC.

Argumento desconhecido: tags

O erro a seguir ocorre quando sua versão da CLI do Dataform não reconhece o argumento tags:

Unknown argument: tags

Para resolver esse erro, faça o seguinte:

  • Atualize a versão da CLI para 3.0.0 ou mais recente. Sempre teste novas versões de pacotes em um ambiente de não produção antes de implantar no ambiente de produção.
  • Como prática recomendada, sempre use a versão mais recente disponível do pacote principal do Dataform.
  • Especifique explicitamente a versão do pacote em package.json, por exemplo, 3.0.0. Não use outras opções de dependencies do package.json, por exemplo, >version.