Este documento mostra como resolver problemas com o Dataform.
O acesso ao BigQuery é recusado
O seguinte erro ocorre quando 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 este erro, conceda acesso do Dataform ao BigQuery.
O token de acesso para um repositório remoto é rejeitado
O seguinte erro ocorre quando o seu token de autenticação para um repositório de terceiros associado não tem acesso a esse repositório:
The access token for remote repository REPOSITORY_NAME was rejected
Para resolver este erro, verifique as autorizações necessárias no seu fornecedor de Git e atualize o token de autenticação do Secret Manager em conformidade. Para mais informações sobre a autenticação de repositórios Git de terceiros no Dataform, consulte o artigo Estabeleça ligação a um repositório Git de terceiros.
A quota do BigQuery foi excedida
O seguinte erro ocorre quando o número de pedidos API que o Dataform envia para o BigQuery excede a quota do BigQuery:
Quota exceeded: Your user_method exceeded quota for concurrent api requests
per user per method.
Para resolver este erro, reduza o número de consultas paralelas para menos de 250 das seguintes formas:
- No Dataform, categorize as ações com etiquetas e execute apenas as etiquetas selecionadas de cada vez.
- No Dataform, introduza dependências entre ações.
- No Dataform, divida as execuções de ações entre diferentes Google Cloud projetos.
Para obter instruções sobre como resolver este erro no BigQuery, consulte o artigo Resolva problemas de erros de quota e limite.
O limite de simultaneidade de consultas do BigQuery foi excedido
Exceeded rate limits: too many concurrent queries for this project_and_region
Para resolver este erro, reduza o número de consultas paralelas para menos de 250 das seguintes formas:
- No Dataform, categorize as ações com etiquetas e execute apenas as etiquetas selecionadas de cada vez.
- No Dataform, introduza dependências entre ações.
- No Dataform, divida as execuções de ações entre diferentes Google Cloud projetos.
Para obter instruções sobre como resolver este erro no BigQuery, consulte o artigo Resolva problemas de erros de quota e limite.
Erros de invocação do pipeline do BigQuery
Ocorrem os seguintes erros durante a execução de um fluxo de trabalho para o BigQuery:
- Erros de invocação do pipeline que começam com mensagens de erro do BigQuery.
Para resolver estes erros, consulte as mensagens de erro do BigQuery.
Propriedades includeDependentAssertions
em conflito
O seguinte erro ocorre durante a compilação quando o parâmetro includeDependentAssertions
é definido para a mesma ação com valores diferentes num ficheiro:
Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.
Para resolver este erro, edite o ficheiro e remova as repetições em conflito do parâmetro includeDependentAssertions
.
Para mais informações sobre a utilização do parâmetro includeDependentAssertions
para definir afirmações como dependências, consulte o artigo Defina as afirmações de uma ação selecionada como dependências.
A compilação está a falhar
Ocorrem os seguintes erros 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 estes erros, siga estes passos:
- Atualize o Dataform core para a versão mais recente.
- Inspeccione o seu fluxo de trabalho para identificar e reduzir as ineficiências.
- Reduza o tamanho das consultas SQL.
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 ...
Para mais informações sobre os limites de recursos de compilação do Dataform, consulte o artigo Quotas e limites.
@dataform/core
erros de dependência
Ocorrem os seguintes erros 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 no package.json
. Quando inicializa o primeiro espaço de trabalho no seu repositório, o Dataform preenche automaticamente package.json
com a versão atual do @dataform/core
. Tem de atualizar o @dataform/core
para a versão mais recente assim que
esta for lançada.
Para resolver estes erros,
atualize @dataform/core
para a versão mais recente.
Falha ao resolver dataform.json
O seguinte erro ocorre quando 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 este erro, no espaço de trabalho, abra package.json
e clique em Instalar pacotes.
Falha ao resolver workflow_settings.yaml
O seguinte erro ocorre quando 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 este erro, no espaço de trabalho, abra workflow_settings.yaml
e clique em Instalar pacotes.
As segmentações de pacotes git+
não são suportadas
O seguinte erro ocorre quando define pacotes em package.json
com
alvos com o prefixo 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 suporta destinos de pacotes com o prefixo git+
.
Para resolver este erro, gere um URL tar.gz
do pacote e atualize o destino do pacote em package.json
. Para mais informações sobre a instalação de pacotes no Dataform, consulte o artigo Instale um pacote.
A instalação do pacote excede o tempo limite
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 este erro, remova os pacotes redundantes de package.json
. Certifique-se de que o ficheiro package.json
não contém @dataform/cli
e que o tamanho total das dependências do NPM definidas não excede 200 MB.
Se as suas
configurações de lançamento
fizerem referência a commits do Git, certifique-se de que os ficheiros package.json
nos respetivos
destinos são válidos.
Não é possível aceder ao registo de pacotes privados
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 este erro, verifique se os detalhes de autenticação do registo privado são válidos para cada registo do NPM. Para mais informações, consulte o artigo Autentique um pacote privado.
Não é possível aceder ao repositório remoto
O seguinte erro ocorre devido à instabilidade do Git ou quando a ligação ao repositório de terceiros não foi configurada corretamente:
Remote repository REPOSITORY_NAME could not be reached.
Para resolver este erro, verifique se foram seguidos todos os passos indicados em Estabeleça ligação a um repositório Git de terceiros. Em particular, confirme que o anfitrião do seu repositório Git está acessível a partir da Internet pública. Além disso, valide se o token de autenticação ou a chave privada está correto e tem as autorizações necessárias para aceder ao repositório.
Não é possível aceder ao repositório remoto: generic::invalid_argument
O seguinte erro ocorre na página Detalhes das configurações de lançamento quando um lançamento agendado encontra ocasionalmente uma ligaçã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ária nenhuma ação. A menos que os problemas do GitHub, GitLab ou Bitbucket Cloud persistam, as versões agendadas subsequentes podem ser bem-sucedidas.
Não é possível aceder ao Secret de um repositório remoto
O seguinte erro ocorre quando a sua conta de serviço do Dataform não consegue aceder ao segredo do Secret Manager para um repositório de terceiros ligado:
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 este erro, faça o seguinte:
- Confirme que a sua conta de serviço do Dataform tem acesso ao segredo.
- Exclua o segredo do seu perímetro de serviço do VPC-SC. De momento, o Dataform não suporta o VPC-SC.
Argumento desconhecido: tags
O seguinte erro ocorre quando a sua versão da
CLI Dataform
não reconhece o argumento tags
:
Unknown argument: tags
Para resolver este erro, faça o seguinte:
- Atualize a versão da
CLI
para
3.0.0
ou posterior. Teste sempre as novas versões de pacotes num ambiente de não produção antes da implementação no seu ambiente de produção. - Como prática recomendada, use sempre 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 outrasdependencies
opções depackage.json
, por exemplo,>version
.