Auf dieser Seite wird die Geopartitionierung vorgestellt und erläutert, wie sie in Spanner funktioniert.
Cloud Spanner bietet regionale und multiregionale Instanzkonfigurationen, mit denen Sie Daten an verschiedenen geografischen Standorten replizieren können. Mit der Geopartitionierung können Sie Zeilen in Ihrer 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: Mit der 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 Geopartitionierung vereinfacht die Abläufe und reduziert die Komplexität im Vergleich zur Verwaltung mehrerer fragmentierter Datenbanken.
- Globale Datenbankfunktionen: Die Geopartitionierung bietet Datenbankfunktionen wie globale Transaktionen, Datenverschiebung zwischen Regionen und die Durchsetzung der Eindeutigkeit über geografische Regionen hinweg.
- Anforderungen an den Datenstandort: Cloud Spanner bietet Zusicherungen zum Datenstandort auf Platzierungsebene. Weitere Informationen finden Sie unter Kompatibilität des Datenstandorts für Datenbanken mit Geopartitionierung.
Im Folgenden sind einige gängige Anwendungsfälle aufgeführt:
Nutzerbezogene Daten: Nutzerbezogene Daten werden geopartitioniert, 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.
Funktionsweise der Geopartitionierung
Alle Cloud 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:
Zusätzliche Instanzpartitionen in Ihrer Instanz erstellen. Diese vom Nutzer erstellten Instanzpartitionen haben eine eigene Konfiguration (entweder regional oder multiregional) und eine eigene Knotenanzahl.
Erstellen Sie Ihre Datenbank wie gewohnt. Die Datenbank hat eine Standardplatzierung, die der Standardinstanzpartition der Instanz zugeordnet ist.
Erstellen Sie Platzierungen in Ihrer Datenbank, die mit den zusätzlichen Instanzpartitionen verknüpft sind. Ihre Datenbank kann mit den zusätzlichen Instanzpartitionen interagieren, die in derselben Instanz erstellt wurden.
Erstellen Sie Placement-Tabellen mit einem Placement-Schlüsselattribut. Sie müssen den Platzierungsschlüssel in Ihren DML-Anweisungen verwenden, um anzugeben, in welcher Instanzpartition sich die Zeilendaten befinden. Wenn Sie in Ihrer Datenbank Tabellen ohne Platzierung erstellen, speichert Spanner diese Daten in der Standardinstanzpartition.
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 einer der für diese Datenbank definierten, vom Nutzer erstellten Platzierungen übereinstimmt, oder
Der Platzierungsschlüsselwert
default, der die Daten in der Standardplatzierung speichert.
Eine Anleitung zur Verwendung von Instanzpartitionen finden Sie unter Instanzpartitionen erstellen und verwalten.
Was Sie bedenken sollten
Beachten Sie Folgendes, bevor Sie Instanzpartitionen, Platzierungen und Platzierungstabellen erstellen:
Standort der Instanzpartition: Wählen Sie die Regionen für die Instanzpartition sorgfältig aus, die für Ihre Anwendung die meisten Vorteile bieten.
Sie müssen Instanzpartitionen in einer Instanz mit einer multiregionalen Instanzkonfiguration erstellen.
Für eine bessere Latenz empfehlen wir, einen multiregionalen Standard-Instanzpartitionsstandort auszuwählen, der Regionen mit Lese-/Schreibzugriff und Regionen mit Lesezugriff 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 für die Vorabversion und können sich mit der GA-Version oder danach ändern oder entfernt werden:
- Die Standardinstanzpartition muss eine multiregionale Konfiguration sein.
- Die zusätzliche Instanzpartition muss eine multiregionale Konfiguration sein.
- Sie können keine Instanzpartition mit einer biregionalen Konfiguration erstellen.
- Für jede Instanzpartition muss die Rechenkapazität mindestens einen Knoten (1.000 Verarbeitungseinheiten) betragen.
- Für eine bestimmte Instanz können Sie nicht mehr als eine Instanzpartition erstellen, die dieselbe Basisinstanzkonfiguration verwendet. In
test-instancekönnen Sie beispielsweise nicht zwei Partitionen,partition-1undpartition-2, erstellen, die beideus-central1als Instanzpartitionskonfiguration verwenden. - Für jeden Knoten in Ihrer Instanzpartition können Sie maximal 100 Millionen Platzierungszeilen platzieren. Auf der Seite „Instanzpartitionen“ der Google Cloud Console können Sie die Anzahl der Platzierungszeilen sehen, die in den einzelnen Instanzpartitionen platziert wurden.
- Für jeden Knoten in Ihrer Zielinstanzpartition kann Spanner etwa 10 Platzierungszeilen pro Sekunde verschieben.
- Sie können keine inkrementellen Sicherungen erstellen oder die Sicherung kopieren.
- Sie können das asymmetrische schreibgeschützte Autoscaling nicht für nicht standardmäßige Instanzpartitionen aktivieren.
- Sie können die Instanzpartition nicht in eine andere Instanzkonfiguration verschieben.
- Sie können keine Instanz verschieben, die Datenbanken mit zusätzlichen Platzierungen hat, die auf die Standardinstanzpartition verweisen.
- Änderungsstreams unterstützen keine partitionierten Daten.
- Wenn Sie eine
INSERT- oderDELETE-DML-Anweisung für eine Platzierungstabelle 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 Platzierungstabelle verweisen. Wenn Sie in derWHERE-Klausel auf eine Spalte einer Platzierungstabelle verweisen müssen, die kein Primärschlüssel ist, können Sie eine der folgenden Alternativen verwenden:- Wenn Sie nur Lesezugriff benötigen, wechseln Sie in den Transaktionsmodus „Nur Lesen“.
- 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 auf die zurückgegebenen Primärschlüssel in der
WHERE-Klausel.
- Sie können keine benannten Schemas verwenden.
- Sie können keine Instanzpartitionen in Instanzen im kostenlosen Testzeitraum oder in Instanzen mit fein abgestuften Größen erstellen, die kleiner als ein Knoten (1.000 Verarbeitungseinheiten) sind.
- Sie können ein Placement nicht ändern. Stattdessen können Sie ein neues Placement erstellen, die partitionierte DML verwenden, um das Placement Ihrer Daten auf ein neues Placement zu aktualisieren, und dann das ursprüngliche Placement löschen.
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ö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 Instanzpartitionen überwachen können. Nachdem Sie eine zusätzliche Instanzpartition erstellt haben, wird auf der Seite „Systemstatistiken“ in der Google Cloud Console 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.
Sicherungen
Sie können Vollsicherungen für Datenbanken erstellen, die Geopartitionierung verwenden. Sie können die Instanzpartition nicht löschen, wenn Sie sie in einer Sicherung verwenden. Weitere Informationen finden Sie unter Sicherungen erstellen.
Verwendungshinweise:
- Cloud Spanner speichert Sicherungen von geopartitionierten Daten am selben Speicherort wie die Originaldaten zum Zeitpunkt der Sicherungsversion.
Wenn Sie Sicherungen wiederherstellen möchten, die geopartitionierte Daten enthalten, muss Ihre Zielinstanz die folgenden Bedingungen erfüllen:
- Die Zielinstanz muss dieselben Instanzpartitionsnamen wie die ursprüngliche Sicherung verwenden.
- Jede Instanzpartition in der Zielinstanz muss dieselbe Instanzkonfiguration wie die ursprüngliche Sicherung verwenden.
Verwaltetes Autoscaling
Sie können den verwalteten Autoscaler für Instanzpartitionen aktivieren. Wenn Sie den verwalteten Autoscaler aktivieren, passt Spanner die Größe Ihrer Instanzpartition automatisch an. Das verwaltete Autoscaling reagiert auf Änderungen der Arbeitslast oder des Speicherbedarfs Ihrer Instanzpartition, wenn die Last steigt oder sinkt. Das verwaltete Autoscaling skaliert entweder hoch, indem der Instanzpartition Rechenkapazität hinzugefügt wird, oder es skaliert herunter, indem Rechenkapazität aus der Instanzpartition entfernt wird.
Preise
Für die Verwendung der Geopartitionierung fallen keine zusätzlichen Gebühren an. Ihnen werden die Standardpreise für Spanner für die Rechenkapazität, die Ihre Instanz verwendet, und für den Speicherplatz, den Ihre Datenbank belegt, in Rechnung gestellt.
Weitere Informationen finden Sie unter Spanner-Preise.
Nächste Schritte
- Instanzpartitionen erstellen und verwalten
- Informationen zum Erstellen und Verwalten von Datenplatzierungen