In diesem Dokument wird beschrieben, wie Sie Probleme mit Dataform beheben.
Zugriff auf BigQuery verweigert
Der folgende Fehler tritt auf, wenn Sie eine Pipeline-Invocation auslösen, bevor Sie Dataform Zugriff auf BigQuery gewähren:
Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.
Gewähren Sie Dataform Zugriff auf BigQuery, um diesen Fehler zu beheben.
Zugriffstoken für ein Remote-Repository wird abgelehnt
Der folgende Fehler tritt auf, wenn Ihr Authentifizierungstoken für ein verbundenes Drittanbieter-Repository keinen Zugriff auf dieses Repository hat:
The access token for remote repository REPOSITORY_NAME was rejected
Prüfen Sie die erforderlichen Berechtigungen bei Ihrem Git-Anbieter und aktualisieren Sie das Secret Manager-Authentifizierungstoken entsprechend, um diesen Fehler zu beheben. Weitere Informationen zur Authentifizierung von Git-Repositories von Drittanbietern in Dataform finden Sie unter Mit einem Git-Repository eines Drittanbieters verbinden.
BigQuery-Kontingent überschritten
Der folgende Fehler tritt auf, wenn die Anzahl der API-Anfragen, die Dataform an BigQuery sendet, das BigQuery-Kontingent überschreitet:
Quota exceeded: Your user_method exceeded quota for concurrent api requests
per user per method.
Reduzieren Sie die Anzahl der parallelen Abfragen auf weniger als 250, um diesen Fehler zu beheben. Dazu haben Sie folgende Möglichkeiten:
- Kategorisieren Sie Aktionen in Dataform mit Tags, und führen Sie jeweils nur ausgewählte Tags aus.
- Führen Sie in Dataform Abhängigkeiten zwischen Aktionen ein.
- Verteilen Sie in Dataform die Ausführungen von Aktionen auf verschiedene Google Cloud Projekte.
Eine Anleitung zum Beheben dieses Fehlers in BigQuery finden Sie unter Fehler bei Kontingenten und Limits beheben.
Limit für die Parallelität von BigQuery-Abfragen überschritten
Der folgende Fehler tritt auf, wenn die Anzahl der gleichzeitigen Abfragen, die für BigQuery ausgeführt werden, das Limit für die Parallelität von BigQuery-Abfragen überschreitet:
Exceeded rate limits: too many concurrent queries for this project_and_region
Reduzieren Sie die Anzahl der parallelen Abfragen auf weniger als 250, um diesen Fehler zu beheben. Dazu haben Sie folgende Möglichkeiten:
- Kategorisieren Sie Aktionen in Dataform mit Tags, und führen Sie jeweils nur ausgewählte Tags aus.
- Führen Sie in Dataform Abhängigkeiten zwischen Aktionen ein.
- Verteilen Sie in Dataform die Ausführungen von Aktionen auf verschiedene Google Cloud Projekte.
Eine Anleitung zum Beheben dieses Fehlers in BigQuery finden Sie unter Fehler bei Kontingenten und Limits beheben.
Fehler bei der Pipeline-Invocation in BigQuery
Die folgenden Fehler treten bei der Ausführung eines Workflows für BigQuery auf:
- Fehler bei der Pipeline-Invocation, die mit BigQuery-Fehler meldungen beginnen.
Informationen zum Beheben dieser Fehler finden Sie unter BigQuery-Fehler meldungen.
Konfliktierende includeDependentAssertions-Attribute
Der folgende Fehler tritt bei der Kompilierung auf, wenn der Parameter includeDependentAssertions für dieselbe Aktion mit unterschiedlichen Werten in einer Datei festgelegt ist:
Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.
Bearbeiten Sie die Datei und entfernen Sie die widersprüchlichen Wiederholungen des Parameters includeDependentAssertions, um diesen Fehler zu beheben.
Weitere Informationen zum Festlegen von Assertions als Abhängigkeiten mit dem includeDependentAssertions Parameter
finden Sie unter
Assertions einer ausgewählten Aktion als Abhängigkeiten festlegen.
Kompilierung schlägt fehl
Die folgenden Fehler treten bei der Kompilierung aufgrund der Größe oder Anzahl der kompilierten Abfragen auf:
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.
So beheben Sie diese Fehler:
- Aktualisieren Sie Dataform Core auf die neueste Version.
- Prüfen Sie Ihren Workflow, um Ineffizienzen zu erkennen und zu reduzieren.
- Reduzieren Sie die Größe von SQL-Abfragen.
Reduzieren Sie die Anzahl der JavaScript-Vorgänge im Arbeitsspeicher, z. B.:
config { config {type: "table" }} js { const tooBig = new Uint8Array(110_000_000); } SELECT ...
Weitere Informationen zu den Ressourcenlimits für die Dataform-Kompilierung finden Sie unter Kontingente und Limits.
@dataform/core-Abhängigkeitsfehler
Die folgenden Fehler treten bei der Kompilierung auf, wenn die dataform-core-Abhängigkeit in package.json veraltet ist:
Failed to resolve @dataform/core
@dataform/core version should be X.X.X or newer
Die @dataform/core-Abhängigkeit ist in package.json erforderlich. Wenn Sie den ersten Arbeitsbereich in Ihrem Repository initialisieren, füllt Dataform package.json automatisch mit der aktuellen Version von @dataform/core auf. Sie müssen @dataform/core immer auf die neueste Version aktualisieren.
Aktualisieren Sie
@dataform/core auf die neueste Version, um diese Fehler zu beheben.
dataform.json kann nicht aufgelöst werden
Der folgende Fehler tritt auf, wenn Sie einen Dataform-Arbeitsbereich initialisieren, aber bei der Initialisierung nicht alle Pakete installiert werden können:
Uncaught Error: Failed to resolve dataform.json
Öffnen Sie package.json in Ihrem Arbeitsbereich und klicken Sie auf Pakete installieren , um diesen Fehler zu beheben.
workflow_settings.yaml kann nicht aufgelöst werden
Der folgende Fehler tritt auf, wenn Sie einen Dataform-Arbeitsbereich initialisieren, aber bei der Initialisierung nicht alle Pakete installiert werden können:
Uncaught Error: Failed to resolve workflow_settings.yaml
Öffnen Sie workflow_settings.yaml in Ihrem Arbeitsbereich und klicken Sie auf Pakete installieren , um diesen Fehler zu beheben.
git+-Paketziele werden nicht unterstützt
Der folgende Fehler tritt auf, wenn Sie Pakete in package.json mit Zielen definieren, die mit git+ beginnen:
'git+' prefixed package targets are not currently supported. However,
in most cases they can be used via a '.tar.gz' suffixed target instead.
Dataform unterstützt keine Paketziele, die mit git+ beginnen.
Generieren Sie eine tar.gz-URL des Pakets und aktualisieren Sie das Paketziel in package.json, um diesen Fehler zu beheben. Weitere Informationen zum Installieren von Paketen
in Dataform finden Sie unter Paket installieren.
Berechtigung für Anmeldedaten von Endnutzern verweigert
Der folgende Fehler tritt auf, wenn Sie Ihre Arbeitslast mit Anmeldedaten für ein Google-Konto ausführen, Dataform aber nicht die erforderlichen Berechtigungen hat:
Dataform does not have the necessary permissions to run your workload using end user credentials. Error details: Account restricted: https://accounts.google.com/info/servicerestricted?...
Dieser Fehler kann auftreten, wenn Ihre Organisation kontextbezogene Zugriffsregeln verwendet, die den Zugriff auf Google Cloud Dienste basierend auf der Nutzeridentität und dem Kontext einschränken.
Um diesen Fehler zu beheben, müssen Sie möglicherweise Ihre kontextbezogene Zugriffskonfiguration aktualisieren, damit Dataform Anmeldedaten von Google-Konten verwenden kann. Dazu müssen Sie die OAuth-Client-ID von Dataform in Ihrer Zugriffsebenenkonfiguration ausnehmen. Weitere Informationen zum Ausnehmen von Anwendungen finden Sie unter Zugriffsebenen für unterstützte Anwendungen konfigurieren.
Die OAuth-Client-ID für Dataform erhalten Sie vom Cloud Customer Care.
Zeitüberschreitung bei der Paketinstallation
Der folgende Fehler tritt auf, wenn die Größe der in package.json definierten Pakete die maximale Größe von NPM-Abhängigkeiten überschreitet:
API request error: Package installation timed out
Entfernen Sie redundante Pakete aus package.json, um diesen Fehler zu beheben. Achten Sie darauf, dass die Datei package.json nicht @dataform/cli enthält und die Gesamtgröße der definierten NPM-Abhängigkeiten 200 MB nicht überschreitet.
Wenn Ihre
Releasekonfigurationen
auf Git-Commits verweisen, prüfen Sie, ob die package.json Dateien an den
Zielen gültig sind.
Berechtigung zum Handeln als Dienstkonto verweigert
Der folgende Fehler tritt auf, wenn dem Hauptkonto, das die Aktion ausführt, die Berechtigung iam.serviceAccounts.actAs für das effektive Dienstkonto fehlt:
Permission denied: Principal CALLER_EMAIL is missing 'iam.serviceAccounts.actAs' permission on service account SERVICE_ACCOUNT_EMAIL.
Dieser Fehler kann bei den folgenden Aktionen auftreten:
- Repository erstellen oder aktualisieren
- Workflowkonfiguration erstellen oder aktualisieren
- Workflow-Invocation erstellen
- Releasekonfiguration aktualisieren
Weisen Sie dem Hauptkonto für das effektive Dienstkonto die Rolle „
Dienstkontonutzer
“ (roles/iam.serviceAccountUser) zu, um diesen Fehler zu beheben. Weitere Informationen finden Sie unter
Erforderliche IAM-Rollen zuweisen.
Anhängen von projektübergreifenden Dienstkonten blockiert
Der folgende Fehler tritt auf, wenn Sie versuchen, ein benutzerdefiniertes Dienstkonto aus einem anderen Projekt als Ihrem Dataform-Repository zu verwenden, und der Vorgang durch eine Einschränkung der Organisationsrichtlinie blockiert wird:
The caller does not have permission to act as service account: SERVICE_ACCOUNT_EMAIL
So beheben Sie diesen Fehler:
- Ermitteln Sie das Google Cloud Projekt, in dem sich das benutzerdefinierte Dienstkonto befindet.
- Deaktivieren Sie in diesem Projekt die Einschränkung der Organisationsrichtlinie
iam.disableCrossProjectServiceAccountUsage. Weitere Informationen finden Sie unter Ermöglichen, dass Dienstkonten projektübergreifend angehängt werden können. - Achten Sie darauf, dass das aufrufende Hauptkonto die
Rolle „Dienstkontonutzer“
(
roles/iam.serviceAccountUser) für das benutzerdefinierte Dienstkonto hat.
Weitere Informationen finden Sie unter Anhängen von projektübergreifenden Dienstkonten verwalten.
Dienstkonto nicht im Drop-down-Menü sichtbar
Beim Konfigurieren eines Repositorys oder einer Workflow-Invocation wird im Menü Dienstkonto möglicherweise kein vorhandenes benutzerdefiniertes Dienstkonto aufgeführt.
Dataform verwendet die Identity and Access Management API, um Dienstkonten aufzulisten. Dazu ist die Berechtigung iam.serviceAccounts.list auf Projektebene erforderlich.
Führen Sie einen der folgenden Schritte aus, um dieses Problem zu beheben:
- Klicken Sie auf Manuell eingeben und geben Sie die Dienstkonto-ID ein.
- Bitten Sie Ihren Projektadministrator, Ihnen die
Rolle „Dienstkonten ansehen“
(
roles/iam.serviceAccountViewer) oder eine andere Rolle zuzuweisen, die dieiam.serviceAccounts.listBerechtigung für das Projekt enthält.
Private Paketregistrierung nicht erreichbar
Der folgende Fehler tritt auf, wenn die Dataform-Authentifizierung für ein privates Paket abläuft:
Permission denied when fetching one or more npm packages. Please verify that
private registry authentication details are valid for each npm registry
Prüfen Sie, ob die Authentifizierungsdetails für die private Registrierung für jede NPM-Registrierung gültig sind, um diesen Fehler zu beheben. Weitere Informationen finden Sie unter Privates Paket authentifizieren.
Remote-Repository nicht erreichbar
Der folgende Fehler tritt aufgrund von Git-Instabilität oder auf, wenn die Verbindung zum Drittanbieter-Repository nicht richtig eingerichtet wurde:
Remote repository REPOSITORY_NAME could not be reached.
Prüfen Sie, ob alle Schritte unter Mit einem Git-Repository eines Drittanbieters verbinden ausgeführt wurden, um diesen Fehler zu beheben. Achten Sie insbesondere darauf, dass der Host Ihres Git-Repositorys über das öffentliche Internet erreichbar ist. Prüfen Sie außerdem, ob das Authentifizierungstoken oder der private Schlüssel korrekt ist und die erforderlichen Berechtigungen für den Zugriff auf das Repository hat.
Remote-Repository nicht erreichbar: generic::invalid_argument
Der folgende Fehler tritt auf der Seite Details zur Releasekonfiguration auf, wenn bei einer geplanten Veröffentlichung gelegentlich eine langsame, instabile oder unterbrochene GitHub-, GitLab- oder Bitbucket-Verbindung auftritt:
generic::invalid_argument: Remote repository 'REMOTE_REPOSITORY_URL' could not be reached.
Sie müssen nichts unternehmen. Sofern die Probleme mit GitHub, GitLab oder Bitbucket Cloud nicht anhalten, können die nachfolgenden geplanten Releases erfolgreich sein.
Secret für ein Remote-Repository nicht erreichbar
Der folgende Fehler tritt auf, wenn Ihr benutzerdefiniertes Dienstkonto nicht auf Ihr Secret Manager-Secret für ein verbundenes Drittanbieter-Repository zugreifen kann:
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.
So beheben Sie diesen Fehler:
- Prüfen Sie, ob Ihr benutzerdefiniertes Dienstkonto Zugriff auf das Secret hat.
- Schließen Sie das Secret aus Ihrem VPC-SC-Dienstperimeter aus. Dataform unterstützt VPC-SC derzeit nicht.
Unbekanntes Argument: Tags
Der folgende Fehler tritt auf, wenn Ihre Version der
Dataform CLI
das tags Argument nicht erkennt:
Unknown argument: tags
So beheben Sie diesen Fehler:
- Aktualisieren Sie die Version der
CLI
auf
3.0.0oder höher. Testen Sie neue Paketversionen immer in einer Nicht-Produktionsumgebung, bevor Sie sie in Ihrer Produktionsumgebung bereitstellen. - Verwenden Sie als Best Practice immer die neueste verfügbare Version des Dataform Core-Pakets.
- Geben Sie die Paketversion explizit in
package.jsonan, z. B.3.0.0. Verwenden Sie keine anderendependenciesOptionen vonpackage.json, z. B.>version.