Dataflow-Regionen

Die Dataflow-Region speichert und verarbeitet Metadaten zu Dataflow-Jobs, stellt Dataflow-Worker bereit und steuert diese.

Namen von Regionen entsprechen einer Standardkonvention basierend auf Compute Engine-Regionsnamen. Der Name für die zentrale Region der USA ist beispielsweise us-central1.

Diese Funktion ist in allen Regionen verfügbar, in denen Dataflow unterstützt wird. Informationen zu den verfügbaren Speicherorten finden Sie unter Dataflow-Standorte.

Richtlinien für die Auswahl einer Region

Die Angabe einer Region in einem Dataflow-Job ist obligatorisch.

Sicherheit und Compliance

Sie müssen möglicherweise die Dataflow-Jobverarbeitung auf eine bestimmte geografische Region beschränken, um die Sicherheits- und Complianceanforderungen Ihres Projekts zu erfüllen.

Datenlokalität

Sie können die Netzwerklatenz und die Netzwerktransportkosten minimieren. Dazu führen Sie einen Dataflow-Job in derselben Region aus, in der sich auch dessen Quellen und Senken sowie Speicherorte für Staging-Dateien und temporäre Dateien befinden. Wenn Sie Quellen und Senken sowie Speicherorte für Staging-Dateien und temporäre Dateien verwenden, die sich außerhalb der Region Ihres Jobs befinden, werden Ihre Daten möglicherweise regionenübergreifend gesendet.

Beim Ausführen einer Pipeline werden Nutzerdaten nur vom Dataflow-Worker-Pool verarbeitet und die Verschiebung der Daten ist auf die Netzwerkpfade beschränkt, die die Dataflow-Worker im Pool verbinden.

Hinweis: Während Nutzerdaten grundsätzlich von Dataflow-Workern in ihrer zugewiesenen geografischen Region verarbeitet werden, werden Pipeline-Lognachrichten in Cloud Logging gespeichert, das in Google Cloud global verfügbar ist.

Wenn Sie mehr Kontrolle über den Speicherort von Pipeline-Lognachrichten benötigen, können Sie so vorgehen:

  1. Erstellen Sie einen Ausschlussfilter für die Log-Router-Senke _Default, um zu verhindern, dass Dataflow-Logs in den Log-Bucket _Default exportiert werden.
  2. Erstellen Sie einen Log-Bucket in der Region Ihrer Wahl.
  3. Konfigurieren Sie eine neue Log-Router-Senke, die Ihre Dataflow-Logs in Ihren neuen Log-Bucket exportiert.

Weitere Informationen zur Konfiguration des Loggings finden Sie unter Routing und Speicher und Log-Routing.

Hinweise zu gängigen Dataflow-Jobquellen:

  • Wenn Sie einen Cloud Storage-Bucket als Quelle verwenden, empfehlen wir auch, Lesevorgänge in der gleichen Region wie der Bucket durchzuführen.
  • Pub/Sub-Themen, die im globalen Pub/Sub-Endpunkt veröffentlicht werden, werden in der nächstgelegenen Google Cloud-Region gespeichert. Sie können jedoch die Themenspeicherrichtlinie in eine bestimmte Region oder eine Gruppe von Regionen ändern. In Pub/Sub Lite-Themen wird ähnlich nur zonaler Speicher unterstützt.

Robustheit und geografische Trennung

Vielleicht möchten Sie Ihre normalen Dataflow-Vorgänge vor Ausfällen abschirmen, die in anderen geografischen Regionen auftreten können. Sonst müssen Sie andere Standorte planen, damit bei einem Notfall in der Region keine Ausfälle auftreten.

In Ihre Pläne für die Notfallwiederherstellung und Geschäftskontinuität empfehlen wir, Details zu Quellen und Senken aufzunehmen, die mit Ihren Dataflow-Jobs verwendet werden. Das Google Cloud-Vertriebsteam kann Ihnen dabei helfen, Ihre Anforderungen zu erfüllen.

Regionale Platzierung

Standardmäßig konfiguriert die ausgewählte Region den Dataflow-Worker-Pool so, dass alle verfügbaren Zonen innerhalb der Region verwendet werden. Die Zonenauswahl wird zum Zeitpunkt der Erstellung des Workers für jeden Worker berechnet und für die Ressourcengewinnung und -nutzung nicht verwendeter Reservierungen optimiert.

Die regionale Platzierung bietet folgende Vorteile:

  • Verbesserte Ressourcenverfügbarkeit: Dataflow-Jobs sind widerstandsfähiger gegenüber zonalen Ressourcenverfügbarkeitsfehlern, da Worker weiterhin in anderen Zonen mit verbleibender Verfügbarkeit erstellt werden können.
  • Verbesserte Zuverlässigkeit: Bei einem Zonenausfall können Dataflow-Jobs weiterhin ausgeführt werden, da Worker in anderen Zonen neu erstellt werden.

Es gelten folgende Einschränkungen:

  • Die regionale Platzierung wird nur für Jobs mit Streaming Engine oder Dataflow Shuffle unterstützt. Jobs, die Streaming Engine oder Dataflow Shuffle deaktiviert haben, können keine regionale Platzierung verwenden.
  • Die regionale Platzierung gilt nur für VMs und nicht für Backend-Ressourcen für Streaming Engine und Dataflow Shuffle.
  • VMs werden nicht über mehrere Zonen repliziert. Wenn eine VM zum Beispiel nicht mehr verfügbar ist, gelten ihre Arbeitselemente als verloren und werden von einer anderen VM noch einmal verarbeitet.
  • Wenn eine regionsweiter Ressourcenmangel auftritt, kann der Dataflow-Dienst keine weiteren VMs mehr erstellen.

Automatische Zonenplatzierung

Bei Jobs, die für die regionale Platzierung nicht unterstützt werden, wird automatisch die beste Zone innerhalb der Region basierend auf der verfügbaren Zonenkapazität zum Zeitpunkt der Anfrage für die Joberstellung ausgewählt. Die automatische Zonenauswahl gewährleistet, dass Job-Worker in der für Ihren Job optimalen Zone ausgeführt werden.

Da der Job für die Ausführung in einer einzelnen Zone konfiguriert ist, schlägt der Vorgang möglicherweise mit einem zonalen Ressourcenverfügbarkeitsfehler fehl, wenn nicht genügend Compute Engine-Ressourcen verfügbar sind.

Außerdem kann es vorkommen, dass das Streaming-Backend nicht mehr verfügbar ist, wenn eine Zone nicht verfügbar ist, was zu Datenverlust führen kann.

Region angeben

Sie können eine Region für Ihren Job angeben, indem Sie für die Option --region eine der unterstützten Regionen festlegen. Das Option --region überschreibt die Standardregion, die auf dem Metadatenserver, auf Ihrem lokalen Client oder in Umgebungsvariablen festgelegt ist.

Die Dataflow-Befehlszeile unterstützt ebenfalls die Option --region, um Regionen anzugeben.

Worker-Region oder -Zone überschreiben

Wenn Sie einen Job mit der Option --region übertragen, werden Worker automatisch entweder aufZonen in der Region oder auf dieeinzige beste Zone innerhalb der Region verteilt, je nach Jobtyp.

Wenn Sie sicherstellen möchten, dass die Worker für Ihren Dataflow-Job ausschließlich in einer bestimmten Zone ausgeführt werden, können Sie die Zone mit der folgenden Pipelineoption angeben. Dieses Nutzungsmuster ist für Dataflow-Jobs ungewöhnlich.

Java

--workerZone

Python

--worker_zone

Go

--worker_zone

In allen anderen Fällen sollten Sie den Worker-Standort nicht überschreiben. Die Tabelle "Häufige Szenarien" enthält entsprechende Nutzungsempfehlungen für diese Situationen.

Da der Job für die Ausführung in einer einzelnen Zone konfiguriert ist, schlägt der Vorgang möglicherweise mit einem zonalen Ressourcenverfügbarkeitsfehler fehl, wenn nicht genügend Compute Engine-Ressourcen verfügbar sind.

Mit dem Befehl gcloud compute regions list können Sie eine Liste der Regionen und Zonen aufrufen, die für die Worker-Bereitstellung verfügbar sind.

Gängige Szenarien

Die folgende Tabelle enthält Nutzungsempfehlungen für häufige Szenarien.

Szenario Empfehlung
Ich möchte eine unterstützte Region verwenden und ohne Zonenpräferenz innerhalb der Region arbeiten. In diesem Fall wird automatisch die beste Zone anhand der verfügbaren Kapazität ausgewählt. Verwenden Sie --region, um eine Jobregion anzugeben. Dadurch wird sichergestellt, dass Dataflow Ihren Job verwaltet und Ihre Daten innerhalb der angegebenen Region verarbeitet.
Ich möchte, dass die Verarbeitung durch Worker in einer bestimmten Zone einer Region stattfindet. Geben Sie sowohl --region als auch --workerZone oder --worker_zone an.

Verwenden Sie --region, um die Jobregion anzugeben. Verwenden Sie entweder --workerZone oder --worker_zone, um die bestimmte Zone innerhalb dieser Region anzugeben.