Geo-Partitionierung – Übersicht

Auf dieser Seite wird die Funktionsweise der Geo-Partitionierung in Spanner.

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

Vorteile und Anwendungsfälle

Die Geopartitionierung bietet unter anderem folgende Vorteile:

  • Schreib- und Leselatenz werden reduziert, da Sie Ihre Daten am selben geografischen Standort wie die Abfrage speichern können.

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

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

  • Nutzerbezogene Daten: Geo-Partitionierung für zu verarbeitende benutzerbezogene Daten und die Daten in einer Region 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 default-Partition genannt 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 in Ihrer Instanz zusätzliche Partitionen erstellen. Diese von Nutzern erstellten Partitionen haben eine eigene Konfiguration (regional oder multiregional) und Knotenanzahl. Erstellen Sie Ihre Datenbank wie gewohnt. kann Ihre Datenbank mit die in derselben Instanz erstellten Partitionen. Erstellen Sie dann Placements in Ihrer Datenbank, die mit der Partition verknüpft sind. Außerdem können Sie Placement-Tabellen mit einem Placement-Schlüsselattribut erstellen. Sie müssen den Placement-Schlüssel in der DML verwenden. um anzugeben, in welcher Partition sich die Zeilendaten befinden. Wenn Sie nicht-Placement-Tabellen in Ihrer Datenbank enthalten, 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:

  • Partitionsspeicherort: Wählen Sie Partitionsregionen mit Bedacht aus, die für Ihre Anwendung am vorteilhaftesten sind.

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

    Wählen Sie außerdem einen multiregionalen Standardpartitionsspeicherort aus, nicht schreibgeschützte und schreibgeschützte Regionen, die alle erforderlichen Gerichtsbarkeiten abdecken durch Ihre Anwendung. Erstellen Sie dann zusätzliche Partitionen (die auch regional sein können) mit Leitregionen, die mit den Regionen in der standardmäßigen Multi-Region-Partition übereinstimmen.

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

Beschränkungen

Die folgenden Einschränkungen gelten während der Vorabversion und können nach der Veröffentlichung der GA-Version geändert oder entfernt werden:

  • Geopartitionierung wird für PostgreSQL-Datenbanken nicht unterstützt.
  • Sie können keine Instanzpartition mit einer Konfiguration mit zwei Regionen erstellen.
  • Für jede Partition muss die Rechenkapazität mindestens einem Knoten (1.000 Verarbeitungseinheiten) entsprechen.
  • Sie können für eine bestimmte Instanz nicht mehr als eine Instanzpartition erstellen, die verwendet dieselbe Basisinstanzkonfiguration. Beispiel: test-instance, Sie können nicht die beiden Partitionen partition-1 und partition-2, die beide us-central1 als Partitionskonfiguration verwenden.
  • Auf jeden Knoten in Ihrer Partition können Sie maximal 20 Millionen Placement-Zeilen Die Anzahl der Placement-Zeilen, die in jede Ihrer Partitionen eingefügt wurden, sehen Sie in der Google Cloud Console auf der Seite „Partitionen“.
  • Spanner für jeden Knoten in der Zielinstanzpartition Etwa zehn Placement-Zeilen pro Sekunde verschieben
  • Sie können keine Partitionen in kostenlosen Testinstanzen erstellen oder Instanzen mit detaillierter Größe, die kleiner als ein Knoten sind (1.000 Verarbeitungseinheiten).
  • Für Instanzen mit Partitionen können keine Sicherungen erstellt werden.
  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel für Instanzen mit Partitionen verwenden.
  • Sie können keine Instanzpartitionen in einer Instanz erstellen, für die der verwaltete Autoscaler aktiviert ist.
  • Sie können die Partition nicht in eine andere Instanzkonfiguration verschieben.
  • Instanzen mit Partitionen können nicht verschoben werden. Sie können einzelne Zeilen in verschiedene Partitionen, sodass Sie die Instanz nicht verschieben müssen.)
  • Die Verwendung von Partitionen ist keine Garantie für die Einhaltung von Compliance- und gesetzlichen Anforderungen.
  • Änderungsstreams unterstützen keine partitionierten Daten.
  • Um die Geopartitionierung zu verwenden, müssen Sie eine neue, leere Datenbank erstellen und die Methode opt_in_dataplacement_preview Option zu true. Weitere Informationen finden Sie unter Partitionen erstellen und verwalten.
  • Wenn Sie die DML-Anweisung INSERT oder DELETE für eine Placement-Tabelle verwenden, muss 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 nur die Partitionen aufrufen möchten, benötigen Sie die Berechtigung spanner.instancePartitions.list oder spanner.instancePartitions.get. Weitere Informationen finden Sie unter IAM-Übersicht

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

Monitoring

Spanner bietet verschiedene Messwerte, mit denen Sie Ihre Partitionen. Nachdem Sie eine zusätzliche Partition erstellt haben, wird auf der Seite „Systemstatistiken“ in der Google Cloud Console ein zusätzlicher Drop-down-Filter für Partitionen angezeigt. Standardmäßig werden Messwerte für Alle Partitionen angezeigt. Über das Drop-down-Menü können Sie die Messwerte nach bestimmten -Partition an.

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. Die Kosten werden wie folgt berechnet: Standard-Spanner-Preisen für die Rechenkapazität berechnen, und den Speicherverbrauch der Datenbank.

Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte