Geopartitionierung – Übersicht

Auf dieser Seite wird die geografische Partitionierung vorgestellt und ihre Funktionsweise in Spanner erläutert.

Spanner bietet regionale und multiregionale Instanzkonfigurationen, mit denen Sie Daten an verschiedenen geografischen Standorten replizieren können. Mit der Geopartitionierung lassen sich Zeilen in einer Datenbanktabelle in verschiedenen Instanzkonfigurationen weiter segmentieren und speichern.

Vorteile und Anwendungsfälle

Mit der Geopartitionierung können Sie Zeilen in Ihrer Datenbank partitionieren. Das bietet folgende Vorteile:

  • Regionale Latenz in einer globalen Datenbank: Durch die Geopartitionierung verwaltet Spanner Ihre Daten in einer einzigen, einheitlichen Datenbank an geografisch verteilten Standorten und sorgt gleichzeitig für eine niedrige Latenz beim regionalen Zugriff. Die geografische Partitionierung vereinfacht den Betrieb und reduziert die Komplexität im Vergleich zur Verwaltung mehrerer Shard-Datenbanken.
  • Globale Datenbankfunktionen: Die geografische Partitionierung bietet Datenbankfunktionen wie globale Transaktionen, Datenübertragung zwischen Regionen und die Durchsetzung der Eindeutigkeit über geografische Regionen hinweg.
  • Compliance mit Datenstandort: Spanner bietet Zusagen zum Datenstandort auf Placement-Ebene. Weitere Informationen finden Sie unter Kompatibilität des Datenstandorts für Datenbanken, die Geo-Partitionierung verwenden.

Im Folgenden sind einige gängige Anwendungsfälle aufgeführt:

  • Nutzerbezogene Daten: Nutzerbezogene Daten werden geopartitioniert, 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 geografischen Aufteilung

Alle Spanner-Instanzen haben eine Hauptinstanzpartition, die als default-Instanzpartition bezeichnet wird. Wenn Sie keine zusätzlichen Instanzpartitionen erstellen, werden alle Datenbankobjekte in der Standardpartition gespeichert, die sich am selben Standort wie Ihre Instanzkonfiguration befindet. Wenn Sie die Daten in einer Datenbank partitionieren möchten, müssen Sie zusätzliche Instanzpartitionen in Ihrer Instanz erstellen.

So verwenden Sie die Geopartitionierung in einer Datenbank:

  1. Zusätzliche Instanzpartitionen in Ihrer Instanz erstellen Diese von Nutzern erstellten Instanzpartitionen haben eine eigene Konfiguration (entweder regional oder multiregional) und Knotenzahl.

  2. Erstellen Sie Ihre Datenbank wie gewohnt. Die Datenbank hat ein Standard-Placement, das der Standard-Instanzpartition der Instanz zugeordnet ist.

  3. Erstellen Sie Platzierungen in Ihrer Datenbank, die den zusätzlichen Instanzpartitionen zugeordnet sind. Ihre Datenbank kann mit den zusätzlichen Instanzpartitionen interagieren, die in derselben Instanz erstellt wurden.

  4. Placement-Tabellen erstellen, die ein Placement-Schlüsselattribut enthalten. Sie müssen den Placementschlüssel in Ihren DML-Anweisungen verwenden, um anzugeben, in welcher Instanzpartition sich die Zeilendaten befinden. Wenn Sie in Ihrer Datenbank Tabellen ohne Platzierung erstellen, werden die Daten in der Standardinstanzpartition von Spanner gespeichert.

Der Placement-Schlüssel für jede Zeile in einer Placement-Tabelle muss einem der folgenden Elemente zugewiesen werden:

  • Ein Wert, der mit dem Namen eines der benutzerdefinierten Placements übereinstimmt, die für diese Datenbank definiert sind.

  • Der Wert für den Placement-Schlüssel, default, mit dem die Daten im Standard-Placement gespeichert werden.

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

Was Sie bedenken sollten

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

  • Standort der Instanzpartition: Wählen Sie die Regionen für die Instanzpartition sorgfältig aus, die die meisten Vorteile für Ihre Anwendung bieten.

    Sie können zwar Instanzpartitionen in einer Instanz mit einer regionalen Instanzkonfiguration erstellen, wir empfehlen jedoch, Instanzpartitionen in einer Instanz mit einer multiregionalen Instanzkonfiguration zu erstellen, damit sich der Standardspeicherort der Instanzpartition auch in einer multiregionalen Konfiguration befindet.

    Wählen Sie außerdem einen multiregionalen Standardspeicherort für Instanzpartitionen aus, der Lese-/Schreib- und schreibgeschützte Regionen umfasst, die alle für Ihre Anwendung erforderlichen Gerichtsbarkeiten abdecken. Erstellen Sie dann zusätzliche Instanzpartitionen (die regional sein können) mit Leader-Regionen, die den Regionen in der multiregionalen Standardinstanzpartition entsprechen.

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

Beschränkungen

Die folgenden Einschränkungen gelten während der Vorschau und können sich mit der GA-Version oder danach ändern oder entfernt werden:

  • Sie können keine Instanzpartition mit einer Konfiguration mit zwei Regionen erstellen.
  • Die Rechenkapazität muss für jede Instanzpartition mindestens einen Knoten (1.000 Verarbeitungseinheiten) betragen.
  • Für eine bestimmte Instanz können Sie nicht mehr als eine Instanzpartition erstellen, die dieselbe Basiskonfiguration verwendet. Innerhalb von test-instance können Sie beispielsweise nicht zwei Partitionen, partition-1 und partition-2, erstellen, die beide us-central1 als Konfiguration für die Instanzpartition verwenden.
  • Für jeden Knoten in Ihrer Instanzpartition können Sie maximal 100 Millionen Platzierungszeilen platzieren. Auf der Seite „Instanzpartitionen“ der Google Cloud -Konsole können Sie die Anzahl der Placement-Zeilen sehen, die in jeder Ihrer Instanzpartitionen platziert wurden.
  • Für jeden Knoten in der Partition Ihrer Zielinstanz kann Spanner etwa 10 Platzierungszeilen pro Sekunde verschieben.
  • Sie können keine Sicherungen für Instanzen mit Instanzpartitionen erstellen.
  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel für Instanzen mit Instanzpartitionen verwenden.
  • Sie können keine Instanzpartitionen in einer Instanz mit aktiviertem verwalteten Autoscaler erstellen.
  • Sie können die Instanzpartition nicht in eine andere Instanzkonfiguration verschieben.
  • Instanzen mit Instanzpartitionen können nicht verschoben werden. Sie können einzelne Zeilen in andere Instanzpartitionen verschieben, sodass Sie die Instanz nicht verschieben müssen.
  • Die Verwendung von Instanzpartitionen ist keine Garantie für die Einhaltung von Compliance- und behördlichen Anforderungen.
  • Änderungsstreams unterstützen keine partitionierten Daten.
  • Wenn Sie die geografische Partitionierung verwenden möchten, müssen Sie eine neue, leere Datenbank erstellen und die Option opt_in_dataplacement_preview auf true festlegen. Weitere Informationen finden Sie unter Instanzpartitionen erstellen und verwalten.
  • Wenn Sie eine INSERT- oder DELETE-DML-Anweisung für eine Placement-Tabelle verwenden, muss diese Anweisung die einzige Anweisung in der Transaktion sein.
  • Im Lese-/Schreibtransaktionsmodus können Sie in der WHERE-Klausel nur auf die Primärschlüssel einer Placement-Tabelle verweisen. Wenn Sie in der WHERE-Klausel auf eine Spalte ohne Primärschlüssel einer Placement-Tabelle verweisen müssen, können Sie eine der folgenden Alternativen verwenden:
    • Wenn Sie nur Lesezugriff benötigen, wechseln Sie in den schreibgeschützten Transaktionsmodus.
    • Wenn Sie Aktualisierungen vornehmen müssen, verwenden Sie entweder den partitionierten DML-Transaktionsmodus oder suchen Sie die Primärschlüssel in einer schreibgeschützten Transaktionsabfrage und verweisen Sie dann in einer separaten Lese-/Schreibtransaktion in der WHERE-Klausel auf die zurückgegebenen Primärschlüssel.
  • Sie können keine benannten Schemas verwenden.
  • Sie können keine Instanzpartitionen in Instanzen im kostenlosen Testzeitraum oder in Instanzen mit einer granularen Größe erstellen, die kleiner als ein Knoten (1.000 Verarbeitungseinheiten) ist.

Zugriffssteuerung mit IAM

Sie benötigen die Berechtigungen spanner.instancePartitions.create, spanner.instancePartitions.update und spanner.instancePartitions.delete, um Instanzpartitionen zu erstellen und zu verwalten. Wenn Sie nur die Instanzpartitionen aufrufen müssen, 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 mehrere Messwerte, mit denen Sie Ihre Instanzpartitionen überwachen können. Nachdem Sie eine zusätzliche Instanzpartition erstellt haben, wird auf der Seite „Systemstatistiken“ in der Google Cloud Konsole ein zusätzlicher Drop-down-Filter für Instanzpartitionen angezeigt. Standardmäßig werden Messwerte für Alle Instanzpartitionen angezeigt. Über das Drop-down-Menü können Sie die Messwerte für eine bestimmte Instanzpartition filtern.

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

Preise

Für die Verwendung der geografischen Aufteilung fallen keine zusätzlichen Kosten an. Ihnen werden die Standardpreise für Spanner für die von Ihrer Instanz verwendete Rechenkapazität und den von Ihrer Datenbank verwendeten Speicherplatz berechnet.

Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte