Auf dieser Seite wird die Geopartitionierung vorgestellt und ihre Funktionsweise in Spanner erläutert.
Spanner bietet regionale und multiregionale Instanz konfigurationen, mit denen Sie Daten an verschiedenen geografischen Standorten replizieren können. Mit der Geopartitionierung können Sie 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: 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 den Betrieb und reduziert die Komplexität im Vergleich zur Verwaltung mehrerer Shard-Datenbanken.
- Funktionen für globale Datenbanken: Die Geopartitionierung bietet Datenbankfunktionen wie globale Transaktionen, Datenverschiebung zwischen Regionen und die Durchsetzung der Eindeutigkeit über geografische Regionen hinweg.
- Compliance mit Datenstandort-Anforderungen: Spanner bietet Zusicherungen zum Daten standort auf Platzierungsebene. Weitere Informationen finden Sie unter Kompatibilität mit Datenstandort-Anforderungen für Datenbanken mit Geopartitionierung.
Im Folgenden finden Sie einige häufige Anwendungsfälle:
Nutzerbezogene Daten: Geopartitionierung von nutzerbezogenen Daten, um Daten zu verarbeiten und in einer Region zu speichern, die sich in der Nähe des Nutzers befindet.
Lokalisierte Daten: Standortspezifische Informationen wie Verkehrsdaten und besondere Ereignisse.
Funktionsweise der Geopartitionierung
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:
Erstellen Sie zusätzliche Instanzpartitionen in Ihrer Instanz. Diese vom Nutzer erstellten Instanzpartitionen haben eine eigene Konfiguration (entweder regional oder multiregional) und eine eigene Anzahl von Knoten.
Erstellen Sie Ihre Datenbank wie gewohnt. Die Datenbank hat eine Standardplatzierung, die mit der Standardinstanzpartition der Instanz verknüpft 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 Platzierungstabellen mit einem Platzierungsschlü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 Platzierungsschlüssel für jede Zeile in einer Platzierungstabelle muss einem der folgenden Elemente zugewiesen werden:
Ein Wert, der mit dem Namen einer der vom Nutzer erstellten Platzierungen übereinstimmt, die für diese Datenbank definiert wurden.
Der Platzierungsschlüsselwert
default, mit dem die Daten in der Standardplatzierung 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, Platzierungen und Platzierungstabellen erstellen:
Standort der Instanzpartition: Wählen Sie sorgfältig die Regionen für die Instanzpartition aus, die die größten Vorteile für Ihre Anwendung bieten.
Sie müssen Instanzpartitionen in einer Instanz mit einer multiregionalen Instanzkonfiguration erstellen.
Für eine bessere Latenz empfehlen wir, einen multiregionalen Standardstandort für die Instanzpartition auszuwählen, 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 mit den Regionen in der multiregionalen Standardinstanzpartition übereinstimmen.
Anzahl der Instanzpartitionen: Zu viele Instanzpartitionen können zu Overhead 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:
- Ihre Standardinstanzpartition muss eine multiregionale Konfiguration sein.
- Sie können keine Instanzpartition mit einer biregionalen Konfiguration erstellen.
- Für jede Instanzpartition muss die Rechenkapazität mindestens ein 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 Instanzpartitionkonfiguration verwenden. - Für jeden Knoten in Ihrer Instanzpartition können Sie maximal 100 Millionen Platzierungszeilen platzieren. Die Anzahl der Platzierungszeilen, die in jeder Ihrer Instanzpartitionen platziert wurden, können Sie in der Konsole auf der Seite „Instanzpartitionen“ sehen. Google Cloud
- Für jeden Knoten in Ihrer Zielinstanzpartition kann Spanner etwa 10 Platzierungszeilen pro Sekunde verschieben.
- Sie können keine inkrementellen Sicherungen oder die Sicherung kopieren.
- Sie können das asymmetrische schreibgeschützte Autoscaling nicht für Instanzpartitionen aktivieren, die nicht die Standardinstanzpartition sind.
- Sie können die Instanzpartition nicht in eine andere Instanzkonfiguration verschieben.
- Sie können keine Instanz mit Instanzpartitionen verschieben. Sie können einzelne Zeilen in verschiedene Instanzpartitionen verschieben, sodass Sie die Instanz nicht verschieben müssen.
- Die Verwendung von Instanzpartitionen ist keine Garantie für die Einhaltung von Compliance- und gesetzlichen Anforderungen.
- Änderungsstreams unterstützen keine partitionierten Daten.
- Wenn Sie eine DML-Anweisung vom Typ
INSERToderDELETEfür eine Platzierungstabelle verwenden, muss diese Anweisung die einzige Anweisung in der Transaktion sein. - Im Lese-/Schreib-Transaktionsmodus können Sie in der
WHERE-Klausel nur auf die Primärschlüssel einer Platzierungstabelle verweisen. Wenn Sie in derWHERE-Klausel auf eine Spalte ohne Primärschlüssel einer Platzierungstabelle verweisen müssen, können Sie eine der folgenden Alternativen verwenden:- Wenn Sie nur Lesezugriff benötigen, wechseln Sie zum 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. Verweisen Sie dann in einer separaten Lese-/Schreib-Transaktion 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) sind.
- Sie können eine Platzierung nicht ändern. Stattdessen können Sie eine neue Platzierung erstellen, mit partitionierter DML die Platzierung Ihrer Daten in eine neue Platzierung aktualisieren und dann die ursprüngliche Platzierung löschen.
- Ihre Standardinstanzpartition muss eine multiregionale Konfiguration sein.
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 die Instanzpartitionen nur ansehen müssen, benötigen Sie die Berechtigung spanner.instancePartitions.list oder spanner.instancePartitions.get. Weitere Informationen finden Sie in der
IAM-Übersicht.
Informationen zum Erteilen 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, sehen Sie in der Konsole auf der Seite „System-Insights“ einen zusätzlichen Drop-down-Filter für Instanzpartitionen. Google Cloud 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 vollständige Sicherungen für Datenbanken mit Geopartitionierung erstellen. Sie können die Instanzpartition nicht löschen, wenn Sie sie in einer Sicherung verwenden. Weitere Informationen finden Sie unter Sicherungen erstellen.
Verwendungshinweise:
- Spanner speichert Sicherungen von geopartitionierten Daten am selben Platzierungsort wie die Originaldaten zum Zeitpunkt der Sicherung.
Wenn Sie Sicherungen mit geopartitionierten Daten wiederherstellen möchten, muss Ihre Zielinstanz die folgenden Bedingungen erfüllen:
- Die Zielinstanz muss dieselben Namen für die Instanzpartitionen wie die ursprüngliche Sicherung verwenden.
- Für jede Instanzpartition in der Zielinstanz muss dieselbe Instanzkonfiguration wie in der ursprünglichen Sicherung verwendet werden.
Verwaltetes Autoscaling
Sie können das verwaltete Autoscaling für Instanzpartitionen aktivieren. Wenn Sie das verwaltete Autoscaling aktivieren, passt Spanner automatisch die Größe Ihrer Instanzpartition 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 nach oben und fügt der Instanzpartition Rechenkapazität hinzu oder skaliert nach unten und entfernt Rechenkapazität aus der Instanzpartition.
Preise
Für die Verwendung der Geopartitionierung fallen keine zusätzlichen Gebühren 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
- Informationen zum Erstellen und Verwalten von Instanzpartitionen
- Informationen zum Erstellen und Verwalten von Datenplatzierungen