Risolvere i problemi relativi a Dataform

Questo documento mostra come risolvere i problemi relativi a Dataform.

L'accesso a BigQuery è negato

Quando attivi un'invocazione del workflow prima di concedere a Dataform l'accesso a BigQuery, si verifica il seguente errore:

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

Per risolvere questo errore, concedi a Dataform l'accesso a BigQuery.

Il token di accesso per un repository remoto viene rifiutato

Il seguente errore si verifica quando il token di autenticazione per un repository di terze parti collegato non ha accesso a quel repository:

The access token for remote repository REPOSITORY_NAME was rejected

Per risolvere questo errore, controlla le autorizzazioni richieste nel tuo provider Git e aggiorna di conseguenza il token di autenticazione di Secret Manager. Per ulteriori informazioni sull'autenticazione dei repository Git di terze parti in Dataform, consulta Eseguire il collegamento a un repository Git di terze parti.

Quota BigQuery superata

Il seguente errore si verifica quando il numero di richieste API inviate da Dataform a BigQuery supera la quota di BigQuery:

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

Per risolvere questo errore, riduci il numero di query parallele a meno di 250 nei modi seguenti:

Per istruzioni su come risolvere questo errore in BigQuery, consulta Risolvere gli errori relativi a quote e limiti.

Il limite di concorrenza delle query BigQuery è stato superato

Il seguente errore si verifica quando il numero di query simultanee eseguite su BigQuery supera il limite di concorrenza delle query BigQuery:

Exceeded rate limits: too many concurrent queries for this project_and_region

Per risolvere questo errore, riduci il numero di query parallele a meno di 250 nei modi seguenti:

Per istruzioni su come risolvere questo errore in BigQuery, consulta Risolvere gli errori relativi a quote e limiti.

Errori di chiamata del flusso di lavoro BigQuery

Durante l'esecuzione di un flusso di lavoro SQL in BigQuery si verificano i seguenti errori:

Per risolvere questi errori, consulta i messaggi di errore di BigQuery.

Proprietà includeDependentAssertions in conflitto

Durante la compilazione si verifica il seguente errore quando il parametro includeDependentAssertions è impostato per la stessa azione con valori diversi all'interno di un file:

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

Per risolvere questo errore, modifica il file e rimuovi le ripetizioni in conflitto del parametroincludeDependentAssertions.

Per saperne di più sull'utilizzo del parametro includeDependentAssertions per impostare le asserzioni come dipendenze, consulta Impostare le asserzioni di un'azione selezionata come dipendenze.

La compilazione non riesce

Durante la compilazione si verificano i seguenti errori a causa delle dimensioni o del numero di query compilate:

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

Per risolvere questi errori:

  1. Aggiorna il nucleo di Dataform alla versione più recente.
  2. Controlla il flusso di lavoro SQL per identificare e ridurre le inefficienze.
  3. Riduci le dimensioni delle query SQL.
  4. Riduci la quantità di operazioni JavaScript in memoria, ad esempio:

    config { config {type: "table" }}
    js {
        const tooBig = new Uint8Array(110_000_000);
    }
    SELECT ...
    
  5. Dividi il repository.

Per ulteriori informazioni sui limiti delle risorse di compilazione di Dataform, consulta Quote e limiti.

@dataform/core errori di dipendenza

Durante la compilazione si verificano i seguenti errori se la dipendenza dataform-core in package.json è obsoleta:

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

La dipendenza @dataform/core è obbligatoria in package.json. Quando inizili a eseguire l'inizializzazione della prima area di lavoro nel tuo repository, Dataform compila automaticamente package.json con la versione corrente di @dataform/core. Devi aggiornare @dataform/core alla versione più recente non appena viene rilasciata.

Per risolvere questi errori, aggiorna @dataform/core all'ultima versione.

Impossibile risolvere dataform.json

Quando inizili uno spazio di lavoro Dataform, si verifica il seguente errore, ma il processo di inizializzazione non riesce a installare tutti i pacchetti:

Uncaught Error: Failed to resolve dataform.json

Per risolvere questo errore, apri package.json nella tua area di lavoro e fai clic su Installa pacchetti.

Impossibile risolvere workflow_settings.yaml

Quando inizili uno spazio di lavoro Dataform, si verifica il seguente errore, ma il processo di inizializzazione non riesce a installare tutti i pacchetti:

Uncaught Error: Failed to resolve workflow_settings.yaml

Per risolvere questo errore, apri workflow_settings.yaml nello spazio di lavoro e fai clic su Installa pacchetti.

I target dei pacchetti git+ non sono supportati

Quando definisci i pacchetti in package.json con obiettivi con prefisso git+, si verifica il seguente errore:

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

Dataform non supporta i target del pacchetto con prefisso git+.

Per risolvere questo errore, genera un URL tar.gz del pacchetto e aggiorna il target del pacchetto in package.json. Per saperne di più sull'installazione dei pacchetti in Dataform, consulta Installare un pacchetto.

L'installazione del pacchetto ha esaurito il tempo di attesa

Il seguente errore si verifica quando le dimensioni dei pacchetti definiti in package.json superano le dimensioni massime delle dipendenze NPM:

API request error: Package installation timed out

Per risolvere questo errore, rimuovi i pacchetti ridondanti da package.json. Assicurati che il file package.json non contenga @dataform/cli e che le dimensioni totali delle dipendenze NPM definite non superino i 200 MB.

Se le configurazioni di release fanno riferimento ai commit Git, assicurati che i file package.json nei relativi target siano validi.

Impossibile raggiungere il registry dei pacchetti privati

Quando l'autenticazione Dataform per un pacchetto privato scade, si verifica il seguente errore:

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

Per risolvere questo errore, verifica che i dettagli di autenticazione del registry privato siano validi per ogni registry NPM. Per ulteriori informazioni, consulta Autenticare un pacchetto privato.

Impossibile raggiungere il repository remoto

Il seguente errore si verifica a causa dell'instabilità di Git o quando il nome di un ramo nel repository Git di terze parti collegato contiene un carattere non ASCII o non inglese:

Remote repository REPOSITORY_NAME could not be reached.

Per risolvere questo errore, controlla i nomi dei rami nel repository di terze parti collegato. Se il nome di un ramo contiene un carattere non ASCII o non inglese, elimina il ramo.

Impossibile raggiungere il repository remoto: generic::invalid_argument

Il seguente errore si verifica nella pagina Dettagli configurazioni release quando una release pianificata occasionalmente riscontra una connessione GitHub, GitLab o Bitbucket lenta, instabile o interrotta:

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

Non è richiesta alcuna azione da parte tua. A meno che i problemi relativi a GitHub, GitLab o Bitbucket Cloud non persistano, le release pianificate successive possono essere eseguite correttamente.

Impossibile raggiungere il secret per un repository remoto

Il seguente errore si verifica quando il tuo account di servizio Dataform non riesce ad accedere al secret di Secret Manager per un repository di terze parti collegato:

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.

Per risolvere questo errore:

  • Verifica che il tuo account di servizio Dataform abbia accesso al secret.
  • Escludi il segreto dal perimetro di servizio VPC-SC. Al momento Dataform non supporta VPC-SC.

Argomento sconosciuto: tag

Il seguente errore si verifica quando la versione del comando a riga di comando Dataform non riconosce l'argomento tags:

Unknown argument: tags

Per risolvere questo errore:

  • Aggiorna la versione del comando a riga di comando a 3.0.0 o versioni successive. Testa sempre le nuove versioni dei pacchetti in un ambiente non di produzione prima di eseguirne il deployment nell'ambiente di produzione.
  • Come best practice, utilizza sempre la versione più recente disponibile del package Dataform Core.
  • Specifica esplicitamente la versione del pacchetto in package.json, ad esempio 3.0.0. Non utilizzare altre opzioni dependencies di package.json, ad esempio >version.