Geopartitionierung – Übersicht

Auf dieser Seite wird die Geopartitionierung in Spanner vorgestellt und 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

Die Vorteile der Geopartitionierung:

  • 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 gängige Anwendungsfälle aufgeführt:

  • Nutzerbezogene Daten: Nutzerbezogene Daten werden geografisch partitioniert, um sie in einer Region zu verarbeiten und zu speichern, die dem Nutzer am nächsten ist.

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

So funktioniert die 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 vom Nutzer erstellten Partitionen haben eine eigene Konfiguration (entweder regional oder multiregional) und eine eigene Knotenanzahl. Erstellen Sie Ihre Datenbank wie gewohnt. Sie kann mit den Partitionen interagieren, die in derselben Instanz erstellt wurden. Erstellen Sie dann in Ihrer Datenbank Platzierungen, die mit der Partition verknüpft sind. Außerdem können Sie Tabellen für Placements erstellen, die ein Attribut für den Placement-Schlüssel enthalten. Sie müssen den Placement-Schlüssel in Ihren DML-Anweisungen verwenden, um anzugeben, in welcher Partition sich die Zeilendaten befinden. Wenn Sie in Ihrer Datenbank keine Placement-Tabellen erstellen, speichert Spanner diese Daten in der Standardpartition.

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

Was Sie bedenken sollten

Berücksichtigen Sie Folgendes, bevor Sie Partitionen, Placements und Placement-Tabellen erstellen:

  • 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 mit Schreib-/Lese- und schreibgeschützten Regionen aus, die alle für Ihre Anwendung erforderlichen Gerichtsbarkeiten abdecken. 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 pro Instanz maximal zehn Partitionen 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:

  • 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.
  • Für eine bestimmte Instanz können Sie nicht mehr als eine Instanzpartition erstellen, die dieselbe Basisinstanzkonfiguration verwendet. Sie können beispielsweise innerhalb von test-instance nicht zwei Partitionen, partition-1 und partition-2, erstellen, für die beide us-central1 als Partitionskonfiguration verwendet wird.
  • Für jeden Knoten in Ihrer Partition können Sie maximal 100 Millionen Platzierungszeilen platzieren. Die Anzahl der Platzierungszeilen, die in jede Ihrer Partitionen eingefügt wurden, sehen Sie auf der Seite „Partitionen“ in der Google Cloud -Console.
  • Für jeden Knoten in der Partition der Zielinstanz kann Spanner etwa 10 Platzierungszeilen pro Sekunde verschieben.
  • In Instanzen des kostenlosen Testzeitraums oder in Instanzen mit einer Größe von weniger als einem Knoten (1.000 Verarbeitungseinheiten) können keine Partitionen erstellt werden.
  • 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 verschieben, 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.
  • Wenn Sie die Geopartitionierung 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 Partitionen 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.

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 in der IAM-Übersicht.

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

Monitoring

Spanner bietet mehrere Messwerte, mit denen Sie Ihre Partitionen im Blick behalten können. 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. Über das Drop-down-Menü können Sie die Messwerte nach einer bestimmten Partition filtern.

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

Preise

Für die Verwendung der geografischen Partitionierung fallen keine zusätzlichen Kosten an. Ihnen werden die standardmäßigen Spanner-Preise für die von Ihrer Instanz genutzte Rechenkapazität und den von Ihrer Datenbank genutzten Speicherplatz in Rechnung gestellt.

Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte