FAQ

Der folgende Abschnitt enthält Antworten auf einige häufig gestellte Fragen zu Dataflow.

Allgemeine Fragen

Wo erhalte ich weiteren Support?

Sie können sich an den Google Cloud-Support wenden, um ein Supportpaket für Google Cloud einschließlich Dataflow zu erhalten.

Sie können StackOverflow verwenden, um nach Ihrer Frage zu suchen oder eine neue Frage zu senden. Wenn Sie Ihre Frage stellen, markieren Sie sie mit dem Tag google-cloud-dataflow. Diese Gruppe wird durch technische Mitarbeiter von Google überwacht, die Ihre Fragen gerne beantworten.

Sie können Fragen, Funktionsanfragen, Fehler- oder Mängelberichte sowie anderes Feedback zudem an das UserVoice-Forum übermitteln.

Ist es möglich, Daten über Pipelineinstanzen hinweg zu teilen?

Es gibt keinen Dataflow-spezifischen pipelineübergreifenden Kommunikationsmechanismus zum Teilen von Daten oder zum Verarbeiten von Kontextinformationen zwischen Pipelines. Sie können eine langfristige Speichermöglichkeit wie Cloud Storage oder einen In-Memory-Cache wie App Engine für den Austausch von Daten zwischen Pipelineinstanzen verwenden.

Gibt es einen integrierten Planungsmechanismus, um Pipelines zu einem bestimmten Zeitpunkt oder Intervall ausführen zu können?

Sie können die Pipelineausführung automatisieren, indem Sie:

Woher weiß ich, welche Version des Dataflow-SDK in meiner Umgebung installiert ist bzw. ausgeführt wird?

Einzelheiten zur Installation hängen von Ihrer Entwicklungsumgebung ab. Wenn Sie Maven nutzen, können mehrere Versionen des Dataflow SDK in einem oder mehreren lokalen Maven-Repositories "installiert" sein.

Java

Wenn Sie herausfinden möchten, welche Version des Dataflow SDK eine bestimmte Pipeline ausführt, können Sie bei der Ausführung mit DataflowPipelineRunner oder BlockingDataflowPipelineRunner die Konsolenausgabe ansehen. Die Konsole liefert etwa folgende Informationen zur Dataflow SDK-Version:

Python

Wenn Sie herausfinden möchten, welche Version des Dataflow SDK eine bestimmte Pipeline ausführt, können Sie bei der Ausführung mit DataflowRunner die Konsolenausgabe ansehen. Die Konsole liefert etwa folgende Informationen zur Dataflow SDK-Version:

  INFO: Executing pipeline on the Dataflow Service, ...
  Dataflow SDK version: <version>

Interaktion mit dem Cloud Dataflow-Job

Ist es möglich, auf die Worker-Maschinen (Compute Engine-VMs) in meinem Job zuzugreifen, während meine Pipeline ausgeführt wird?

Sie können die VM-Instanzen für eine bestimmte Pipeline mithilfe der Google Cloud Console anzeigen lassen. Von dort aus können Sie SSH verwenden, um auf die Instanzen zuzugreifen. Sobald Ihr Job entweder abgeschlossen oder fehlgeschlagen ist, fährt der Dataflow-Dienst die VM-Instanzen jedoch automatisch herunter und bereinigt sie.

Warum wird die reservierte CPU-Zeit für meinen Streamingjob nicht in der Monitoring-Oberfläche von Cloud Dataflow angezeigt?

Der Dataflow-Dienst meldet die reservierte CPU-Zeit nach dem Abschluss von Jobs. Bei unbegrenzten Jobs bedeutet dies, dass die reservierte CPU-Zeit erst gemeldet wird, nachdem sie abgebrochen wurden oder fehlgeschlagen sind.

Warum sind die Jobstatus- und Wasserzeicheninformationen für kürzlich aktualisierte Streamingjobs nicht in der Monitoring-Oberfläche von Cloud Dataflow verfügbar?

Der Aktualisierungsvorgang nimmt mehrere Änderungen vor, deren Weitergabe an die Monitoring-Oberfläche von Dataflow einige Minuten dauern kann. Aktualisieren Sie die Monitoring-Oberfläche 5 Minuten nach der Aktualisierung Ihres Jobs.

Warum erscheinen meine benutzerdefinierten zusammengesetzten Transformationen in der Dataflow Monitoring-Benutzeroberfläche erweitert?

In Ihrem Pipeline-Code haben Sie Ihre zusammengesetzte Transformation möglicherweise so aufgerufen:

result = transform.apply(input);

In zusammengesetzten Transformationen, die auf diese Weise aufgerufen werden, wird die erwartete Verschachtelung weggelassen. Aus diesem Grund können sie in der Monitoring-Oberfläche von Dataflow erweitert angezeigt werden. Ihre Pipeline kann während der Pipelineausführung außerdem Warnmeldungen oder Fehler zu stabilen eindeutigen Namen generieren.

Achten Sie darauf, Ihre Transformation im empfohlenen Format aufzurufen, um diese Probleme zu vermeiden:

result = input.apply(transform);

Warum kann ich die Informationen zu meinem laufenden Job nicht mehr in der Monitoring-Oberfläche von Cloud Dataflow sehen, obwohl sie dort zuvor angezeigt wurden?

Es gibt ein bekanntes Problem, das sich derzeit auf einige Dataflow-Jobs auswirken kann, die seit mindestens einem Monat ausgeführt werden. Solche Jobs werden in der Monitoring-Oberfläche von Dataflow möglicherweise nicht geladen, auch wenn sie dort schon einmal zu sehen waren. Es kann auch passieren, dass veraltete Informationen angezeigt werden.

Der Status Ihres Jobs lässt sich aber in der Jobliste über die Monitoring-Oberfläche oder die Befehlszeilen von Dataflow einsehen. Sollte dieses Problem jedoch auftreten, können Sie keine Einzelheiten zu Ihrem Job ansehen.

Programmierung mit dem Apache Beam SDK für Java

Kann ich weitere (Out-of-Band-)Daten in einen bestehenden ParDo-Vorgang übergeben?

Ja. Je nach Anwendungsfall gibt es mehrere Muster, die Sie befolgen können:

  • Sie können Informationen als Felder in Ihrer DoFn-Unterklasse serialisieren.
  • Alle Variablen, auf die in den Methoden in einem anonymen DoFn verwiesen wird, werden automatisch serialisiert.
  • Sie können Daten innerhalb eines DoFn.startBundle() berechnen.
  • Sie können Daten über ParDo.withSideInputs übergeben.

Weitere Informationen finden Sie in der ParDo-Dokumentation, insbesondere in den Abschnitten "DoFn erstellen" und "Nebeneingaben", sowie in der Referenzdokumentation zu den APIs für Java unter "ParDo".

Wie werden Java-Ausnahmen in Cloud Dataflow gehandhabt?

Die Pipeline kann während der Datenverarbeitung Ausnahmen ausgeben. Einige dieser Fehler sind temporär, wie etwa vorübergehende Schwierigkeiten beim Zugriff auf einen externen Dienst. Andere treten hingegen permanent auf. Hierzu zählen beispielsweise durch beschädigte oder nicht parsingfähige Eingabedaten verursachte Fehler oder während der Berechnung ausgegebene Nullzeiger.

Dataflow verarbeitet Elemente in beliebigen Gruppierungen. Sollte für eines der Elemente in der Gruppierung ein Fehler ausgegeben werden, wird die gesamte Gruppierung noch einmal verarbeitet. Im Batchmodus wird die Verarbeitung von Gruppierungen mit einem fehlerhaften Element viermal wiederholt. Wenn eine Gruppierung viermal fehlgeschlagen ist, fällt die gesamte Pipeline aus. Im Streamingmodus wird die Verarbeitung einer Gruppierung mit einem fehlerhaften Element unendlich oft wiederholt. Dies kann zur permanenten Blockierung der Pipeline führen.

Ausnahmen im Nutzercode, zum Beispiel in Ihren DoFn-Instanzen, werden in der Monitoring-Oberfläche von Dataflow angezeigt. Wenn Sie Ihre Pipeline mit BlockingDataflowPipelineRunner ausführen, werden auch Fehlermeldungen in der Konsole oder im Terminalfenster ausgegeben.

Fügen Sie Ihrem Code ggf. einen Ausnahme-Handler hinzu, um Fehler zu vermeiden. Wenn Sie beispielsweise Elemente auslassen möchten, die einige benutzerdefinierte Eingabevalidierungen in einem ParDo fehlschlagen lassen, verwenden Sie einen Try/Catch-Block in Ihrem ParDo für die Ausnahme und lassen Sie das Element weg. Sie können auch einen Aggregator verwenden, um die Fehlerzahl zu verfolgen.

Programmierung mit dem Cloud Dataflow SDK für Python

Wie gehe ich mit NameErrors um?

Wenn beim Ausführen Ihrer Pipeline mit dem Dataflow-Dienst ein NameError ausgegeben wird, nicht jedoch bei lokaler Ausführung (z. B. mit DirectRunner), verwenden Ihre DoFns möglicherweise Werte im globalen Namespace, die im Dataflow-Worker nicht verfügbar sind.

Standardmäßig werden globale Importe, Funktionen und Variablen, die in der Hauptsitzung definiert werden, während der Serialisierung eines Dataflow-Jobs nicht gespeichert. Wenn Ihre DoFns zum Beispiel in der Hauptdatei definiert sind und auf Importe und Funktionen im globalen Namespace verweisen, können Sie die Pipelineoption --save_main_session auf True setzen. Hierdurch wird der Status des globalen Namespace mit der Pickle-Methode serialisiert und in den Dataflow-Worker geladen.

Beachten Sie, dass Sie einen Pickling-Fehler erhalten, wenn Objekte in Ihrem globalen Namespace vorhanden sind, für den die Pickle-Methode nicht verwendet werden kann. Wenn der Fehler sich auf ein Modul bezieht, das in der Python-Verteilung verfügbar sein sollte, können Sie dies lösen, indem Sie das Modul lokal importieren, wo es verwendet wird.

Anstelle von:

import re
…
def myfunc():
  # use re module

verwenden Sie zum Beispiel:

def myfunc():
  import re
  # use re module

Wenn Ihre DoFn-Instanzen auf mehrere Dateien verteilt sind, sollten Sie bei der Paketerstellung für Ihren Workflow und bei der Verwaltung von Abhängigkeiten anders vorgehen.

Pipeline-E/A

Unterstützen TextIO-Quelle- und Senke komprimierte Dateien, wie GZip?

Ja. Dataflow-Java kann Dateien lesen, die mit gzip und bzip2 komprimiert wurden. Weitere Informationen finden Sie in der TextIO-Dokumentation.

Kann ich für die TextIO-Quelle einen regulären Ausdruck für die Ausrichtung auf spezifische Dateien verwenden?

Dataflow unterstützt allgemeine Platzhaltermuster. Ihr glob-Ausdruck kann an beliebiger Stelle im Dateipfad angegeben werden. Allerdings unterstützt Dataflow keine rekursiven Platzhalter (**).

Unterstützt die TextIO-Eingabequelle JSON?

Ja. Damit der Dataflow-Dienst Eingabe und Ausgabe jedoch parallelisieren kann, müssen Ihre Quelldaten durch einen Zeilenumbruch getrennt werden.

Warum wird der dynamische Work-Ausgleich nicht mit meiner benutzerdefinierten Quelle aktiviert?

Der dynamische Work-Ausgleich verwendet den Rückgabewert der getProgress()-Methode Ihrer benutzerdefinierten Quelle zur Aktivierung. Die Standardimplementierung für getProgress() gibt null zurück. Achten Sie für die Aktivierung der automatischen Skalierung darauf, dass Ihre benutzerdefinierte Quelle getProgress() umgeht, um einen entsprechenden Wert auszugeben.

Wie greife ich auf BigQuery-Datasets oder Pub/Sub-Themen bzw. -Abos zu, die zu einem anderen Google Cloud Platform-Projekt gehören (also nicht zu dem Projekt, mit dem ich Cloud Dataflow verwende)?

Im Dataflow-Leitfaden Sicherheit und Berechtigungen finden Sie Informationen darüber, wie Sie in einem anderen Google Cloud-Projekt als dem, mit dem Sie Dataflow verwenden, auf BigQuery- oder Pub/Sub-Daten zugreifen.

Warum erhalte ich den Fehler „rateLimitExceeded“, wenn ich den BigQuery-Connector verwende, und was soll ich dagegen tun?

BigQuery hat kurzfristige Kontingentlimits, die gelten, wenn zu viele API-Anfragen innerhalb kurzer Zeit gesendet werden. Es ist möglich, dass Ihre Dataflow-Pipeline ein solches Kontingent vorübergehend überschreitet. In jedem Fall können API-Anfragen von Ihrer Dataflow-Pipeline an BigQuery fehlschlagen, was zu rateLimitExceeded-Fehlern in den Worker-Logs führen kann. Beachten Sie, dass Dataflow solche Fehler wiederholt, sodass Sie diese Fehler ignorieren können. Wenn Sie der Meinung sind, dass Ihre Pipeline aufgrund von rateLimitExceeded-Fehlern erheblich beeinträchtigt ist, wenden Sie sich an den Google Cloud-Support.

Ich verwende den BigQuery-Connector, um mithilfe von Streaming-Insert-Anweisungen in BigQuery zu schreiben, und mein Durchsatz für Schreibvorgänge ist geringer als erwartet. Was kann ich tun, um dies zu beheben?

Ein langsamer Durchsatz kann darauf zurückzuführen sein, dass Ihre Pipeline das verfügbare Kontingent für Streaming-Insert-Anweisungen in BigQuery überschreitet. In diesem Fall sollten in den Dataflow-Worker-Logs kontingentbezogene Fehlermeldungen von BigQuery angezeigt werden (suchen Sie nach quotaExceeded-Fehlern). Wenn solche Fehler auftreten, sollten Sie die BigQuery-Senkenoption ignoreInsertIds() festlegen, wenn Sie das Apache Beam SDK für Java verwenden. Oder verwenden Sie die Option ignore_insert_ids, wenn Sie das Apache Beam SDK für Python verwenden, um automatisch einen Durchsatz von Streaming-Insert-Anweisungen in BigQuery von 1 GB/s pro Projekt zu erhalten. Weitere Informationen zu Vorbehalten im Zusammenhang mit der automatischen Deduplizierung von Nachrichten finden Sie in der BigQuery-Dokumentation. Senden Sie eine Anfrage über die Cloud Console, um das BigQuery-Kontingent für Streaming-Insert-Anweisungen auf über 1 GB/s zu erhöhen.

Wenn in Worker-Logs keine kontingentbezogenen Fehler angezeigt werden, besteht das Problem möglicherweise darin, dass Standardparameter für die Bündelung oder das Batching keine ausreichende Parallelität für die Skalierung Ihrer Pipeline bieten. Es gibt verschiedene Dataflow BigQuery-Connector-bezogene Konfigurationen, die Sie anpassen können, um die erwartete Leistung zu erzielen, wenn Sie mithilfe von Streaming-Insert-Anweisungen in BigQuery schreiben. Passen Sie beispielsweise für Apache Beam SDK für Java numStreamingKeys an die maximale Anzahl von Workern an und erhöhen Sie insertBundleParallelism, um den BigQuery-Connector so zu konfigurieren, dass er mit mehr parallelen Threads in BigQuery schreibt. Informationen zu Konfigurationen, die im Apache Beam SDK für Java verfügbar sind, finden Sie unter BigQueryPipelineOptions. Informationen zu Konfigurationen, die im Apache Beam SDK für Python verfügbar sind, finden Sie unter WriteToBigQuery-Transformation.

Streaming

Wie führe ich meine Pipeline im Streaming-Modus aus?

Sie können das Flag --streaming in der Befehlszeile angeben, wenn Sie die Pipeline ausführen. Außerdem lässt sich der Streamingmodus beim Erstellen der Pipeline programmatisch festlegen.

Welche Datenquellen und Senken werden im Streamingmodus unterstützt?

Sie können Streamingdaten aus Pub/Sub lesen und in Pub/Sub oder BigQuery schreiben.

Inwiefern ist der Streamingmodus derzeit eingeschränkt?

Dataflows Streaming-Modus hat folgende Einschränkungen:

  • Batchquellen werden noch nicht im Streamingmodus unterstützt.
  • Die Autoscaling-Features des Dataflow-Dienstes werden nur in der Betaversion unterstützt.

Anscheinend wird meine Streamingpipeline, die aus Pub/Sub liest, immer langsamer. Was kann ich tun?

Ihr Projekt hat möglicherweise eine unzureichende Pub/Sub-Quote. Suchen Sie nach 429 (Rate limit exceeded)-Clientfehlern, um herauszufinden, ob Ihr Projekt ein ausreichendes Kontingent hat:

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie im Dreistrich-Menü auf der linken Seite APIs & Dienste aus.
  3. Suchen Sie im Suchfeld nach Cloud Pub/Sub.
  4. Klicken Sie auf den Tab Nutzung.
  5. Gehen Sie die Antwortcodes durch und suchen Sie nach Clientfehlercodes vom Typ (4xx).

Warum wird mein Streamingjob nicht richtig skaliert, wenn ich meine Pipeline mit einem größeren Worker-Pool aktualisiere?

Java

Bei Streaming-Jobs, die nicht Streaming Engine verwenden, können Sie keine Skalierung über die ursprüngliche Anzahl von Workern und Ressourcen an nichtflüchtigem Speicher hinaus vornehmen, die zu Beginn Ihres ursprünglichen Jobs zugewiesen wurden. Wenn Sie einen Dataflow-Job aktualisieren und eine größere Anzahl von Workern im neuen Job angeben, können Sie nur so viele Worker angeben, wie Sie über --maxNumWorkers für Ihren ursprünglichen Job festgelegt haben.

Python

Bei Streaming-Jobs, die nicht Streaming Engine verwenden, können Sie keine Skalierung über die ursprüngliche Anzahl von Workern und Ressourcen an nichtflüchtigem Speicher hinaus vornehmen, die zu Beginn Ihres ursprünglichen Jobs zugewiesen wurden. Wenn Sie einen Dataflow-Job aktualisieren und eine größere Anzahl von Workern im neuen Job angeben, können Sie nur so viele Worker angeben, wie Sie über --max_num_workers für Ihren ursprünglichen Job festgelegt haben.

Streaming-Autoscaling

Was soll ich tun, wenn ich eine feste Anzahl von Workern möchte?

Zum Aktivieren von Streaming-Autoscaling müssen Sie dieses auswählen. Es ist standardmäßig nicht aktiviert. Die Semantik der derzeitigen Optionen ändert sich nicht. Sie müssen daher nichts unternehmen, um weiterhin eine feste Anzahl von Workern nutzen zu können.

Ich befürchte, dass das Autoscaling zulasten meiner Rechnung gehen wird. Wie kann ich dies begrenzen?

Java

Indem Sie --maxNumWorkers festlegen, begrenzen Sie den Skalierungsbereich, der zur Verarbeitung Ihres Jobs verwendet wird.

Python

Indem Sie --max_num_workers festlegen, begrenzen Sie den Skalierungsbereich, der zur Verarbeitung Ihres Jobs verwendet wird.

Wie groß ist der Skalierungsbereich für Streaming-Autoscaling-Pipelines?

Java

Bei Streaming-Autoscaling-Jobs, die nicht Streaming Engine verwenden, werden jedem Worker vom Dataflow-Dienst 1 bis 15 nichtflüchtige Speicher zugeordnet. Die Mindestanzahl der Worker, die für eine Streaming-Autoscaling-Pipeline verwendet werden, ist also N/15, wobei N der Wert von --maxNumWorkers ist.

Für Streaming-Autoscaling-Jobs, die Streaming Engine verwenden, ist die Mindestanzahl von Workern 1.

Dataflow gleicht die Anzahl der nichtflüchtigen Speicher zwischen den Workern aus. Wenn die Pipeline beispielsweise im stabilen Zustand 3 oder 4 Worker benötigt, können Sie --maxNumWorkers=15 festlegen. Die Pipeline führt in diesem Fall automatisch eine Skalierung zwischen 1 und 15 Workern durch. Dabei werden 1, 2, 3, 4, 5, 8 oder 15 Worker verwendet, die jeweils 15, 8, 5, 4, 3, 2 oder 1 nichtflüchtige(n) Speicher pro Worker entsprechen.

--maxNumWorkers kann maximal 1.000 sein.

Python

Bei Streaming-Autoscaling-Jobs, die nicht Streaming Engine verwenden, werden jedem Worker vom Dataflow-Dienst 1 bis 15 nichtflüchtige Speicher zugeordnet. Die Mindestanzahl der Worker, die für eine Streaming-Autoscaling-Pipeline verwendet werden, ist also N/15, wobei N der Wert von --max_num_workers ist.

Für Streaming-Autoscaling-Jobs, die Streaming Engine verwenden, ist die Mindestanzahl von Workern 1.

Dataflow gleicht die Anzahl der nichtflüchtigen Speicher zwischen den Workern aus. Wenn die Pipeline beispielsweise im stabilen Zustand 3 oder 4 Worker benötigt, können Sie --max_num_workers=15 festlegen. Die Pipeline führt in diesem Fall automatisch eine Skalierung zwischen 1 und 15 Workern durch. Dabei werden 1, 2, 3, 4, 5, 8 oder 15 Worker verwendet, die jeweils 15, 8, 5, 4, 3, 2 oder 1 nichtflüchtige(n) Speicher pro Worker entsprechen.

--max_num_workers kann maximal 1.000 sein.

Was ist die maximale Anzahl an Workern, die für Autoscaling eingesetzt werden kann?

Java

Die Ausführung von Dataflow wird durch das Compute Engine-Kontingent für die Instanzanzahl für Ihr Projekt oder durch maxNumWorkers begrenzt, je nachdem, welcher Wert geringer ist.

Python

Die Ausführung von Dataflow wird durch das Compute Engine-Kontingent für die Instanzanzahl für Ihr Projekt oder durch max_num_workers begrenzt, je nachdem, welcher Wert geringer ist.

Kann ich Autoscaling für meine Streamingpipeline abschalten?

Java

Ja. Legen Sie dazu --autoscalingAlgorithm=NONE fest. Aktualisieren Sie die Pipeline mit festen Clusterspezifikationen (wie in der Dokumentation zur manuellen Skalierung beschrieben), wobei numWorkers innerhalb des Skalierungsbereichs liegen muss.

Python

Ja. Legen Sie dazu --autoscaling_algorithm=NONE fest. Aktualisieren Sie die Pipeline mit festen Clusterspezifikationen (wie in der Dokumentation zur manuellen Skalierung beschrieben), wobei num_workers innerhalb des Skalierungsbereichs liegen muss.

Kann ich den Skalierungsbereich für meine Streamingpipeline ändern?

Java

Ja, dies ist jedoch nicht über Update* möglich. Sie müssen die Pipeline anhalten, indem Sie sie abbrechen oder per Drain beenden, und dann mit der neuen gewünschten Anzahl in maxNumWorkers noch einmal bereitstellen.

Python

Ja, dies ist jedoch nicht über Update* möglich. Sie müssen die Pipeline anhalten, indem Sie sie abbrechen oder per Drain beenden, und dann mit der neuen gewünschten Anzahl in max_num_workers noch einmal bereitstellen.

Einrichtung des Google Cloud Platform-Projekts zur Verwendung von Cloud Dataflow

Wie kann ich feststellen, ob dem mit Cloud Dataflow verwendeten Projekt ein Cloud Storage-Bucket zum Lesen und Schreiben von Daten zugewiesen ist?

Um festzustellen, ob Ihr Google Cloud-Projekt zu einem bestimmten Cloud Storage-Bucket gehört, können Sie den folgenden Console-Befehl verwenden:

gsutil acl get gs://<your-bucket>

Der Befehl gibt einen JSON-String aus, der dem Folgenden ähnelt:

[
  {
    "entity": "project-owners-123456789",
    "projectTeam": {
      "projectNumber": "123456789",
      "team": "owners"
    },
    "role": "OWNER"
  },
  ....
]

Die relevanten Einträge haben die "Rolle" als Eigentümer. Die damit verbundene projectNumber zeigt Ihnen, zu welchem Projekt dieser Bucket gehört. Wenn die Projektnummer nicht mit der Nummer Ihres Projekts übereinstimmt, müssen Sie entweder:

  • Einen neuen Bucket erstellen, der zu Ihrem Projekt gehört.
  • Dem Bucket den entsprechenden Kontozugriff gewähren.

Wie erstelle ich einen neuen Bucket, der zu meinem Cloud Dataflow-Projekt gehört?

Um einen neuen Bucket in dem Google Cloud-Projekt zu erstellen, in dem Sie Dataflow verwenden, können Sie den folgenden Befehl in der Console verwenden:

gsutil mb -p <Project to own the bucket> <bucket-name>

Wie können Daten in einem Bucket, der zu einem anderen Projekt gehört, von dem Google Cloud Platform-Projekt gelesen oder geschrieben werden, das ich mit Cloud Dataflow verwende?

Im Dataflow-Leitfaden Sicherheit und Berechtigungen finden Sie Informationen dazu, wie Ihre Dataflow-Pipeline auf Google Cloud-Ressourcen zugreifen kann, die zu einem anderen Google Cloud-Projekt gehören.

Beim Ausführen meines Cloud Dataflow-Jobs wird eine Fehlermeldung mit der Information angezeigt, dass einige Cloud APIs für mein Projekt aktiviert werden müssen, damit Cloud Dataflow den Job ausführen kann. Was soll ich tun?

Zum Ausführen eines Dataflow-Jobs müssen Sie die folgenden Google Cloud APIs in Ihrem Projekt aktivieren:

  • Compute Engine API (Compute Engine)
  • Cloud Logging API
  • Cloud Storage
  • Cloud Storage JSON API
  • BigQuery API
  • Pub/Sub
  • Datastore API

Eine ausführliche Anleitung finden Sie in den Kurzanleitungen zu Dataflow.