Entwickeln Sie Anwendungen mit Spanner Omni mithilfe der unterstützten Spanner-Funktionen. Viele Funktionen sind mit Spanner identisch, aber es gibt Unterschiede bei den Clientbibliotheken, der Befehlszeilenschnittstelle (Command-Line Interface, CLI) und der Konsolenfunktionalität.
Zu den unterstützten Spanner-Entwicklungsfunktionen gehören:
Funktionen wie Änderungsstreams und Volltextsuche.
Wichtige Unterschiede
Die Spanner-Entwicklungserfahrung ist weitgehend anwendbar, aber in den folgenden Bereichen gibt es Unterschiede in Spanner Omni:
Unterstützte Clientbibliotheken:Spanner Omni unterstützt die Clientbibliotheken für Java, Go und Python.
Befehlszeilenschnittstelle (CLI) : Die Spanner Omni CLI ist ein spezielles Tool, das sich von der Google Cloud CLI unterscheidet. Die Syntax ist zwar ähnlich, aber Sie müssen das Flag
--instancenicht angeben, wenn Sie Befehle ausführen.Einschränkungen der Konsole:Die Spanner Omni-Konsole ist schreibgeschützt. Sie können sie also nicht verwenden, um Bereitstellungen oder Datenbanken zu ändern.
Die folgenden Spanner-Funktionen und Best Practices gelten für Spanner Omni.
Bewährte Vorgehensweisen und Verwendungsfälle
Mit diesen Best Practices und Verwendungsfällen können Sie Ihre Anwendungen für Spanner Omni entwerfen und optimieren.
Spanner als Gaming-Datenbank: Nutzen Sie die Skalierbarkeit und Konsistenz von Spanner für Gaming- Back-Ends.
Best Practices für SQL: Optimieren Sie Ihre Abfragen hinsichtlich Leistung und Effizienz. Die meisten Konzepte gelten auch für Spanner Omni. Da Spanner Omni keinen mehrstufigen Speicher unterstützt, sind Konzepte wie das Pushdown von Zeitstempelprädikaten möglicherweise nicht vollständig anwendbar. Außerdem bietet Spanner Omni keine Funktionen zur Visualisierung von Abfrageplänen.
Sprachframeworks
Binden Sie Spanner Omni in gängige Sprachframeworks ein:
Hibernate ORM
Verwenden Sie Hibernate Object-Relational Mapping (ORM), um Ihre Java-Objekte Spanner Omni-Tabellen zuzuordnen. Hier finden Sie weitere Informationen:
Einbindung in Hibernate ORM (PostgreSQL) in der Spanner-Dokumentation.
Eine Hibernate-Anwendung schreiben, die eine Verbindung zu Spanner herstellt in der Spanner-Dokumentation.
GORM
Binden Sie Spanner Omni in GORM ein, ein Tool für die objektrelationale Zuordnung (Object-Relational Mapping, ORM) für die Programmiersprache Go. Verwenden Sie die Funktionen für die objektrelationale Zuordnung von GORM in Ihren Go-Anwendungen. Hier finden Sie weitere Informationen:
Einbindung in GORM (GoogleSQL) in der Spanner-Dokumentation.
Einbindung in GORM (PostgreSQL) in der Spanner-Dokumentation.
Transaktionen und Parallelität
Spanner Omni unterstützt die folgenden Funktionen zur Transaktionsverwaltung:
Transaktionen – Übersicht: Informationen zu Lese-/Schreib- und Nur-Lese-Transaktionen.
Zeitstempelgrenzen: Steuern Sie die Aktualität Ihrer Lesevorgänge. Für Spanner Omni, können Sie die Aufbewahrungsdauer von Versionen (
version_retention_period) auf bis zu 30 Tage konfigurieren. In Spanner können Sie diesen Zeitraum auf bis zu eine Woche konfigurieren.Commit-Zeitstempel in GoogleSQL-Datenbanken und in PostgreSQL-Datenbanken.
TrueTime und externe Konsistenz: Informationen dazu, wie Spanner die Konsistenz in der gesamten Bereitstellung aufrechterhält.
Isolationsebenen
Informationen zu den verschiedenen Isolationsebenen, die Spanner Omni unterstützt, um die Datenkonsistenz zu gewährleisten.
Optimierung
Mit diesen Techniken können Sie die Transaktionsleistung und den Durchsatz optimieren.
Sperren
Informationen zur Verwendung expliziter Sperren, um den gleichzeitigen Zugriff auf Ihre Daten zu verwalten.
SELECT FOR UPDATEin der serialisierbaren Isolation verwenden.Verwenden Sie
SELECT FOR UPDATEin der Isolation wiederholbarer Lesevorgänge.
Datenzugriff und ‑änderung
Sie können mit den Standardmethoden von Spanner auf Ihre Daten zugreifen und sie ändern, einschließlich der Clientbibliotheken, der CLI und DML.
Informationen dazu, wie Clientbibliotheken Sitzungen verwalten, finden Sie unter Sitzungen. Die zugrunde liegenden Sitzungskonzepte gelten auch für Spanner Omni, aber es werden nur Multiplex-Sitzungen unterstützt.
Daten lesen
Sie können Daten mit verschiedenen Methoden aus Spanner Omni lesen, einschließlich veralteter Lesevorgänge und gezielter Lesevorgänge.
Daten ändern
Sie können Ihre Daten mit DML, Mutationen oder der CLI ändern.
Datentypen
Spanner Omni unterstützt die folgenden Datentypen zur Darstellung der Daten Ihrer Anwendung:
Arrays in GoogleSQL und in PostgreSQL verwenden.
Entwicklung und Tests
Konfigurieren Sie Ihre Entwicklungsumgebung und das Anwendungsverhalten, um eine zuverlässige Leistung und Fehlerbehandlung zu gewährleisten.
Datenänderungen streamen
Spanner Änderungsstreams verfolgen Datenbank änderungen wie Einfügungen, Aktualisierungen und Löschungen nahezu in Echtzeit. Sie werden mit DDL verwaltet und erfassen Details wie Primärschlüssel und Commit-Zeitstempel für gesamte Datenbanken oder bestimmte Tabellen. Die Funktionalität ist zwischen Spanner und Spanner Omni nahezu identisch, aber Dataflow wird in Spanner Omni nicht unterstützt.
Weitere Informationen:
Änderungsstreams – Übersicht: Informationen zu Funktion und Funktionsweise von Änderungsstreams.
Änderungsstreams erstellen und verwalten: Informationen zum Erstellen, Ändern und Löschen von Änderungsstreams mit DDL.
Volltextsuche
Mit der Spanner-Volltextsuche (Full-Text Search, FTS) können Sie Tabellen nach Wörtern, Wortgruppen oder Zahlen durchsuchen. FTS liest die zuletzt übertragenen Daten.
Wichtige Funktionen von FTS:
- Automatische Rechtschreibkorrektur.
- Spracherkennung, einschließlich Chinesisch, Japanisch und Koreanisch.
Wenn Sie FTS verwenden möchten, erstellen Sie Suchindexe für die Spalten, die Sie durchsuchen möchten. Spanner unterteilt die Daten in diesen Spalten in einzelne Wörter. Der Index wird sofort aktualisiert, wenn neue Daten hinzugefügt werden.
FTS-Suchvorgänge bieten erweiterte Funktionen, die über den Standardtextabgleich hinausgehen, z. B.:
- Suche nach genauen Zahlen und Zahlenbereichen.
- Suche nach Wortteilen (N-Grammen) für Namen und Rechtschreibfehler.
- Suche nach ähnlich klingenden Wörtern (Soundex).
- Häufige Wörter ignorieren.
Die FTS-Funktionalität ist zwischen Spanner und Spanner Omni identisch.
Unterschiede bei der Volltextsuche in Spanner
Spanner unterstützt die Kernfunktionen von FTS, die in Spanner enthalten sind, mit den folgenden Unterschieden:
Der erweiterte Abfragemodus wird in Spanner Omni nicht unterstützt.
Eine Instanz in Spanner ist äquivalent zu einer Bereitstellung in Spanner Omni.
Nächste Schritte
Mit der Go-Clientbibliothek eine Verbindung zu Spanner herstellen.
Mit der Java-Clientbibliothek eine Verbindung zu Spanner herstellen.
Mit der Python-Clientbibliothek eine Verbindung zu Spanner herstellen.