Geo-Partitionierung – Übersicht

Auf dieser Seite wird die Funktionsweise der Geopartitionierung in Spanner vorgestellt und erläutert.

Spanner bietet regionale und multiregionale Instanzkonfigurationen, mit denen Sie Ihre Daten über geografische Standorte hinweg replizieren können. Mit der Geopartitionierung können Sie Zeilen in Ihrer Datenbanktabelle über verschiedene Instanzkonfigurationen weiter segmentieren und speichern.

Vorteile und Anwendungsfälle

Die Geopartitionierung bietet unter anderem folgende Vorteile:

  • Reduziert die Schreiblatenz und die starke Leselatenz, da Sie Ihre Daten am selben geografischen Standort wie Ihre Abfrage speichern können.

  • Optimiert die Kosten für asymmetrische globale Arbeitslasten, z. B. die Verwendung einer Partition us-central1 mit 10 Knoten und einer Partition asia-south1 mit 2 Knoten.

Im Folgenden sind einige häufige Anwendungsfälle aufgeführt:

  • Nutzerbezogene Daten: Geo-Partitionierung, die benutzerbezogene Daten partitioniert, um Daten in einer Region zu verarbeiten und zu speichern, die dem Nutzer am nächsten ist.

  • Lokalisierte Daten: Standortspezifische Informationen wie Verkehr und besondere Ereignisse.

Funktionsweise der Geopartitionierung

Alle Spanner-Instanzen haben eine Hauptinstanzpartition, die als default-Partition bezeichnet wird. Wenn Sie keine zusätzlichen Partitionen erstellen, werden alle Datenbankobjekte in der Standardpartition gespeichert, die sich am selben Speicherort wie Ihre Instanzkonfiguration befindet.

Wenn Sie die Daten in einer Datenbank partitionieren möchten, müssen Sie zusätzliche Partitionen in der Instanz erstellen. Diese vom Nutzer erstellten Partitionen haben eine eigene Konfiguration (entweder regional oder multiregional) und eine eigene Knotenanzahl. Erstellen Sie die Datenbank wie gewohnt. Ihre Datenbank kann mit den Partitionen interagieren, die in derselben Instanz erstellt wurden. Dann erstellen Sie Placements in Ihrer Datenbank, die mit der Partition verknüpft sind. Außerdem können Sie Placement-Tabellen erstellen, die ein Placement-Schlüsselattribut enthalten. Sie müssen den Platzierungsschlüssel in Ihren DML-Anweisungen verwenden, um anzugeben, in welcher Partition sich die Zeilendaten befinden. Wenn Sie in der Datenbank Tabellen erstellen, die keine Placements sind, speichert Spanner diese Daten in der Standardpartition.

Eine Anleitung zur Verwendung von Partitionen finden Sie unter Partitionen erstellen und verwalten.

Was Sie bedenken sollten

Beachten Sie Folgendes, bevor Sie Partitionen, Placements und Placement-Tabellen erstellen:

  • Partitionsstandort: Wählen Sie Partitionsregionen sorgfältig aus, die für Ihre Anwendung die meisten Vorteile bieten.

    Obwohl Sie Partitionen in einer Instanz mit einer regionalen Instanzkonfiguration erstellen können, empfehlen wir, dass Sie Partitionen in einer Instanz mit einer multiregionalen Instanzkonfiguration erstellen, damit sich der Standardpartitionsstandort auch in einer multiregionalen Konfiguration befindet.

    Wählen Sie darüber hinaus einen multiregionalen Standardpartitionsspeicherort mit nicht schreibgeschützten und schreibgeschützten Regionen aus, die alle für Ihre Anwendung erforderlichen Gerichtsbarkeiten abdecken. Erstellen Sie dann zusätzliche (regionale) Partitionen mit führenden Regionen, die den Regionen in der multiregionalen Standardpartition entsprechen.

  • Anzahl der Partitionen: Zu viele Partitionen können zu einem Mehraufwand führen, zu wenige bieten jedoch möglicherweise nicht genügend Vorteile. Sie können maximal zehn Partitionen pro Instanz erstellen.

Beschränkungen

Die Geopartitionierung unterliegt den folgenden Einschränkungen:

  • Die Geopartitionierung unterstützt keine PostgreSQL-Dialekt-Datenbanken.
  • Für jede Partition muss die Rechenkapazität mindestens einen Knoten (1.000 Verarbeitungseinheiten) betragen.
  • Sie können für eine bestimmte Instanz nicht mehr als eine Instanzpartition erstellen, die dieselbe Basisinstanzkonfiguration verwendet. In test-instance können Sie beispielsweise nicht die zwei Partitionen partition-1 und partition-2 erstellen, die beide us-central1 als Partitionskonfiguration verwenden.
  • Auf jeden Knoten in Ihrer Partition können maximal 20 Millionen Zeilen platziert werden. Auf der Seite „Partitionen“ der Google Cloud Console können Sie die Anzahl der Zeilen ansehen, die in den einzelnen Partitionen platziert wurden.
  • Für jeden Knoten in der Zielinstanzpartition kann Spanner etwa zehn Platzierungszeilen pro Sekunde verschieben.
  • Sie können keine Partitionen in kostenlosen Testinstanzen oder Instanzen mit detaillierter Größe erstellen, die kleiner als ein Knoten (1.000 Verarbeitungseinheiten) sind.
  • Sie können keine Sicherungen für Instanzen mit Partitionen erstellen.
  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel für Instanzen mit Partitionen verwenden.
  • Sie können keine Instanzpartitionen in einer Instanz mit aktiviertem verwaltetem Autoscaling erstellen.
  • Sie können die Partition nicht in eine andere Instanzkonfiguration verschieben.
  • Sie können keine Instanz verschieben, die Partitionen enthält.
  • Die Verwendung von Partitionen garantiert keine Sicherheits-, Compliance- und regulatorischen Anforderungen.
  • Änderungsstreams unterstützen keine partitionierten Daten.
  • Wenn Sie die Geopartitionierung verwenden möchten, müssen Sie eine neue, leere Datenbank erstellen und die Option opt_in_dataplacement_preview auf true setzen. Weitere Informationen finden Sie unter Daten-Placements erstellen und verwalten.
  • Wenn Sie die DML-Anweisung INSERT oder DELETE für eine Placement-Tabelle verwenden, muss diese Anweisung die einzige Anweisung in der Transaktion sein.

Zugriffssteuerung mit IAM

Sie benötigen die Berechtigungen spanner.instancePartitions.create, spanner.instancePartitions.update und spanner.instancePartitions.delete, um Partitionen zu erstellen und zu verwalten. Wenn Sie die Partitionen nur ansehen möchten, benötigen Sie die Berechtigung spanner.instancePartitions.list oder spanner.instancePartitions.get. Weitere Informationen finden Sie in der IAM-Übersicht.

Informationen zum Gewähren von Spanner-IAM-Berechtigungen finden Sie unter IAM-Berechtigungen anwenden.

Monitoring

Spanner bietet verschiedene Messwerte zum Überwachen Ihrer Partitionen. Nachdem Sie eine zusätzliche Partition erstellt haben, wird in der Google Cloud Console auf der Seite „Systemstatistiken“ ein zusätzlicher Drop-down-Filter für Partitionen angezeigt. Standardmäßig werden Messwerte für Alle Partitionen angezeigt. Sie können das Drop-down-Menü verwenden, um die Messwerte für eine bestimmte Partition zu filtern.

Weitere Informationen zum Überwachen Ihrer Spanner-Ressourcen finden Sie unter Instanzen mit Cloud Monitoring überwachen.

Preise

Für die Verwendung der Geopartitionierung fallen keine zusätzlichen Kosten an. Ihnen werden die Spanner-Standardpreise für die von Ihrer Instanz genutzte Rechenkapazität und den von der Datenbank genutzten Speicher berechnet.

Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte