In dieser Kurzanleitung erfahren Sie, wie Sie Spanner Omni einrichten und einige seiner Funktionen kennenlernen, indem Sie einen Einzelservercontainer ausführen.
Einzelservercontainer ausführen
So richten Sie einen Spanner Omni-Container ein und führen ihn aus:
Erstellen Sie ein Docker-Volume zum Speichern von Spanner Omni-Daten. Durch die Verwendung eines Volumes werden Datenverluste verhindert, wenn der Container versehentlich gelöscht wird.
docker volume create spannerStarten Sie den Spanner Omni-Server:
docker run -d --network host --name spanneromni -v "spanner:/spanner" us-docker.pkg.dev/spanner-omni/images/spanner-omni:2026.r2.1-beta start-single-serverMit dem Flag
--network hostwerden die Ports für Spanner Omni auf dem Hostcomputer geöffnet. In der folgenden Tabelle sind die von Spanner Omni verwendeten Ports beschrieben:Portbereich Zweck 15000bis15025Spanner Omni-Server 15026Spanner Omni-Konsolenserver Prüfen Sie, ob der Container ausgeführt wird:
docker psErstellen Sie eine Beispieldatenbank.
Spanner Omni enthält Befehle zum Erstellen einer Beispieldatenbank und zum Füllen mit Daten. Mit dem folgenden Befehl wird eine Beispieldatenbank mit dem Namen
retail-sampleerstellt.docker exec -it spanneromni /google/spanner/bin/spanner databases create-sample-db retail --database-name=retail-samplePrüfen Sie, ob die Datenbank erstellt wurde:
docker exec -it spanneromni /google/spanner/bin/spanner databases listDie Ausgabe zeigt, dass eine Datenbank mit dem Namen
retail-sampleerstellt wurde.Prüfen Sie das Schema der Datenbank:
docker exec -it spanneromni /google/spanner/bin/spanner databases ddl describe retail-sampleDie Ausgabe zeigt die DDL für alle Tabellen, Beziehungen, Suchindizes, Vektorindizes und Graphen. Dieses Multi-Modell-Schema stellt eine E‑Commerce-Umgebung dar, in der die Customer Journey vom Browsen bis zur Kasse verfolgt wird. Es verwendet erweiterte Funktionen wie Volltextsuchindizes, Vektoreinbettungen und eine Property Graph-Ebene.
Stellen Sie eine Verbindung zur Datenbank her und öffnen Sie die SQL-Shell:
docker exec -it spanneromni /google/spanner/bin/spanner sql --database=retail-sampleDie Eingabeaufforderung
spanner-cli>wird angezeigt, sodass Sie Abfragen ausführen können.Datenbanktabellen untersuchen:
SHOW TABLES;
Abfragen ausführen, um das Dataset zu untersuchen
Die Beispieldatenbank enthält Daten für Produkte, Nutzer, Bestellungen und Zahlungen. Verwenden Sie die folgenden Abfragen, um die Multi-Modell-Funktionen von Spanner Omni zu untersuchen. Die folgenden Abfragen sind Beispiele, die einige der Funktionen in Spanner Omni veranschaulichen.
Nach Produkten anhand des Namens suchen
Suchen Sie mit der Volltextsuche nach Produkten. Diese Abfrage verwendet die Funktion SEARCH() für die Spalte Name_Tokens, die vorverarbeitete Tokens für eine effiziente Suche enthält.
Im folgenden Beispiel wird nach phone gesucht, um Smartphones und Telefone zu finden:
SELECT ProductID, Name, Description, PriceUSD
FROM Products
WHERE SEARCH(Name_Tokens, 'phone')
ORDER BY PriceUSD DESC
LIMIT 10;
Nach Produkten anhand der Beschreibung suchen
Suchen Sie nach Produkten anhand bestimmter Merkmale oder Funktionen, die in den Beschreibungen erwähnt werden.
Im folgenden Beispiel wird in allen Produktkategorien nach waterproof gesucht:
SELECT ProductID, Name, Description, PriceUSD
FROM Products
WHERE SEARCH(Description_Tokens, 'waterproof')
ORDER BY PriceUSD
LIMIT 10;
Mit der Vektorsuche nach ähnlichen Produkten suchen
Verwenden Sie die Vektorsuche nach Ähnlichkeit, um Produkte zu finden, die einem Referenzprodukt semantisch ähnlich sind. Dies ist nützlich, um Empfehlungsmaschinen zu erstellen. Diese Abfrage verwendet COSINE_DISTANCE() mit ProductEmbedding-Vektoren.
Ersetzen Sie PRODUCT_ID durch die ID des Produkts, für das Sie Empfehlungen erhalten möchten:
WITH
ReferenceProduct AS (
SELECT ProductEmbedding
FROM Products
WHERE ProductID = PRODUCT_ID
)
SELECT p.ProductID, p.Name, p.Description, p.PriceUSD
FROM Products p, ReferenceProduct rp
WHERE p.ProductID != PRODUCT_ID AND p.ProductEmbedding IS NOT NULL
ORDER BY
COSINE_DISTANCE(
rp.ProductEmbedding,
p.ProductEmbedding)
LIMIT 5;
Bisherige Käufe des Nutzers abrufen
Rufen Sie die vollständigen bisherigen Käufe für einen bestimmten Nutzer ab, einschließlich Produktdetails und historischer Preise.
Ersetzen Sie USER_ID durch die ID des Zielnutzers:
SELECT o.OrderID, o.OrderDate, p.Name, p.Category, oi.Quantity, oi.PriceAtOrderUSD
FROM Orders o
JOIN OrderItems oi
ON o.OrderID = oi.OrderID
JOIN Products p
ON oi.ProductID = p.ProductID
WHERE o.UserID = USER_ID
ORDER BY o.OrderDate DESC;
Nach Bestellungen anhand des Status suchen
Verwenden Sie die Volltextsuche, um nach Bestellungen anhand ihres Status zu suchen. Dadurch können Begriffe wie „versendet“ oder „Versand“ flexibel abgeglichen werden.
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE SEARCH(OrderStatus_Tokens, 'shipped')
ORDER BY OrderDate DESC
LIMIT 20;
Bestellungen mit hohem Wert identifizieren
Identifizieren Sie Bestellungen mit hohem Wert in einem bestimmten Zeitraum für die Geschäftsanalyse.
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE
OrderDate BETWEEN 'START_DATE' AND 'END_DATE'
AND TotalAmountUSD > 500
ORDER BY TotalAmountUSD DESC
LIMIT 10;
Umsatzleistung nach Kategorie analysieren
Berechnen Sie Umsatzmesswerte wie verkaufte Einheiten und Gesamtumsatz, aggregiert nach Produktkategorie.
SELECT
p.Category,
COUNT(oi.OrderItemID) AS total_sales,
SUM(oi.Quantity) AS units_sold,
SUM(oi.PriceAtOrderUSD * oi.Quantity) AS revenue
FROM Products p
JOIN OrderItems oi
ON p.ProductID = oi.ProductID
JOIN Orders o
ON oi.OrderID = o.OrderID
WHERE o.OrderDate BETWEEN 'START_DATE' AND 'END_DATE'
GROUP BY p.Category
ORDER BY revenue DESC;
Nach Zahlungen anhand der Methode suchen
Verwenden Sie die Volltextsuche, um nach Zahlungen zu suchen, die mit bestimmten Methoden wie „Kreditkarte“ ausgeführt wurden.
SELECT p.PaymentID, p.OrderID, p.PaymentDate, p.AmountUSD, p.Status
FROM Payments p
WHERE SEARCH(p.PaymentMethod_Tokens, 'credit card')
ORDER BY p.PaymentDate DESC
LIMIT 20;
Mit einer Graph-Abfrage nach Nutzern suchen, die ein Produkt gekauft haben
Verwenden Sie die Graph-Abfragesyntax, um Beziehungen zu durchlaufen und alle Nutzer zu finden, die ein bestimmtes Produkt gekauft haben.
Ersetzen Sie PRODUCT_ID durch die ID des Zielprodukts:
GRAPH ECommerceGraph
MATCH (p:Products { ProductID: PRODUCT_ID })<-[:OrderItems]-(o:Orders)
MATCH (u:Users)
WHERE u.UserID = o.UserID
RETURN DISTINCT u.UserID, u.Email;
Spanner Omni-Konsole kennenlernen
Spanner Omni enthält eine webbasierte Spanner Omni-Konsole für die Überwachung und Verwaltung. Führen Sie den folgenden Befehl aus, um die Spanner Omni-Konsole zu starten:
docker exec -it spanneromni /google/spanner/bin/omni-jre/bin/java -jar /google/spanner/bin/spanner-console
Rufen Sie in Ihrem Browser http://localhost:15026 auf, um auf die Spanner Omni-Konsole zuzugreifen. Die Spanner Omni-Konsole bietet die folgenden Informationen:
Übersicht: Zeigt die gesamte CPU Auslastung und die Datenbankversion an.
Datenbanken: Listet alle Datenbanken in Ihrer Bereitstellung auf.
Sicherungen: Zeigt Informationen zu durchgeführten Sicherungen.
Systemstatistiken: Zeigt Messwerte zur Systemdiagnose wie CPU-, Arbeitsspeicher- und Speicherauslastung sowie Leistungsmesswerte wie Latenz und Durchsatz an.
Abfragestatistiken: Zeigt die Abfragen an, die die meisten CPU-Ressourcen verbrauchen.
Weitere Informationen finden Sie unter Spanner Omni-Konsole verwenden.