In dieser Kurzanleitung erfahren Sie, wie Sie Spanner Omni verwenden und einige seiner Funktionen kennenlernen können, indem Sie einen Container mit einem einzelnen Server ausführen.
Servercontainer 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.r1-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, Suchindexe, Vektorindexe und Graphen. Dieses Multimodellschema stellt eine E-Commerce-Umgebung dar, in der die Customer Journey vom Browsen bis zur Kasse verfolgt wird. Es verwendet erweiterte Funktionen wie Volltextsuchindexe, 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, über die Sie Abfragen ausführen können.Datenbanktabellen ansehen:
SHOW TABLES;
Abfragen ausführen, um das Dataset zu untersuchen
Die Beispieldatenbank enthält Daten zu Produkten, Nutzern, Bestellungen und Zahlungen. Verwenden Sie die folgenden Abfragen, um die Multimodellfunktionen von Spanner Omni zu untersuchen. Die folgenden Beispielabfragen veranschaulichen einige der Funktionen in Spanner Omni.
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 Vektorähnlichkeitssuche, 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 eines bestimmten Nutzers 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. So können Begriffe wie „versandt“ oder „Versand“ flexibel abgeglichen werden.
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE SEARCH(OrderStatus_Tokens, 'shipped')
ORDER BY OrderDate DESC
LIMIT 20;
Hochwertige Bestellungen identifizieren
Identifizieren Sie hochwertige Bestellungen 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;
Umsatz 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 Zielprodukt-ID:
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 /app/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 allgemeine CPU-Auslastung und die Datenbankversion an.
Datenbanken: Listet alle Datenbanken in Ihrer Bereitstellung auf.
Back-ups: Zeigt Informationen zu durchgeführten Back-ups an.
Systemstatistiken: Zeigt Messwerte zur Systemdiagnose wie CPU-, Arbeitsspeicher- und Speicherauslastung sowie Leistungsmesswerte wie Latenz und Durchsatz an.
Abfragestatistiken: Zeigt die wichtigsten Abfragen an, die CPU-Ressourcen verbrauchen.
Weitere Informationen finden Sie unter Spanner Omni-Konsole verwenden.