Panduan memulai cepat ini menjelaskan cara memulai Spanner Omni dan menjelajahi beberapa fiturnya dengan menjalankan container server tunggal.
Menjalankan container server tunggal
Untuk menyiapkan dan menjalankan container Spanner Omni, ikuti langkah-langkah berikut:
Buat volume Docker untuk menyimpan data Spanner Omni. Menggunakan volume mencegah kehilangan data jika container tidak sengaja dihapus.
docker volume create spannerMulai server Spanner Omni:
docker run -d --network host --name spanneromni -v "spanner:/spanner" us-docker.pkg.dev/spanner-omni/images/spanner-omni:2026.r1-beta start-single-serverFlag
--network hostmembuka port untuk Spanner Omni di mesin host. Tabel berikut menjelaskan port yang digunakan oleh Spanner Omni:Rentang port Tujuan 15000hingga15025Server Spanner Omni 15026Server konsol Spanner Omni Pastikan container berjalan:
docker psBuat contoh database.
Spanner Omni menyertakan perintah untuk membuat contoh database dan mengisinya dengan data. Perintah berikut membuat contoh database bernama
retail-sample.docker exec -it spanneromni /google/spanner/bin/spanner databases create-sample-db retail --database-name=retail-samplePastikan database telah dibuat:
docker exec -it spanneromni /google/spanner/bin/spanner databases listOutput menunjukkan bahwa database bernama
retail-sampletelah dibuat.Periksa skema database:
docker exec -it spanneromni /google/spanner/bin/spanner databases ddl describe retail-sampleOutput menampilkan DDL untuk semua tabel, hubungan, indeks penelusuran, indeks vektor, dan grafik. Skema multi-model ini mewakili lingkungan e-commerce yang melacak perjalanan pelanggan dari penjelajahan hingga checkout. Skema ini menggunakan fitur lanjutan seperti indeks penelusuran teks lengkap, embedding vektor, dan lapisan grafik properti.
Hubungkan ke database dan buka shell SQL:
docker exec -it spanneromni /google/spanner/bin/spanner sql --database=retail-samplePerintah
spanner-cli>akan muncul, sehingga Anda dapat menjalankan kueri.Jelajahi tabel database:
SHOW TABLES;
Menjalankan kueri untuk menjelajahi set data
Contoh database menyertakan data untuk produk, pengguna, pesanan, dan pembayaran. Gunakan kueri berikut untuk menjelajahi kemampuan multi-model Spanner Omni. Berikut adalah contoh kueri yang menunjukkan beberapa fungsi di Spanner Omni.
Menelusuri produk berdasarkan nama
Telusuri produk menggunakan penelusuran teks lengkap. Kueri ini menggunakan fungsi SEARCH() pada kolom Name_Tokens, yang berisi token yang telah diproses sebelumnya untuk pencocokan yang efisien.
Contoh berikut menelusuri phone untuk menemukan ponsel cerdas dan telepon:
SELECT ProductID, Name, Description, PriceUSD
FROM Products
WHERE SEARCH(Name_Tokens, 'phone')
ORDER BY PriceUSD DESC
LIMIT 10;
Menelusuri produk berdasarkan deskripsi
Telusuri produk berdasarkan karakteristik atau fitur tertentu yang disebutkan dalam deskripsinya.
Contoh berikut menelusuri waterproof di semua kategori produk:
SELECT ProductID, Name, Description, PriceUSD
FROM Products
WHERE SEARCH(Description_Tokens, 'waterproof')
ORDER BY PriceUSD
LIMIT 10;
Menemukan produk serupa menggunakan penelusuran vektor
Gunakan penelusuran kesamaan vektor untuk menemukan produk yang secara semantik mirip dengan produk referensi. Hal ini berguna untuk membuat mesin rekomendasi. Kueri ini menggunakan COSINE_DISTANCE() dengan vektor ProductEmbedding.
Ganti PRODUCT_ID dengan ID produk yang Anda inginkan rekomendasinya:
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;
Mengambil histori pembelian pengguna
Ambil histori pembelian lengkap untuk pengguna tertentu, termasuk detail produk dan harga historis.
Ganti USER_ID dengan ID pengguna target:
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;
Menemukan pesanan berdasarkan status
Gunakan penelusuran teks lengkap untuk menemukan pesanan berdasarkan statusnya. Hal ini memungkinkan pencocokan istilah yang fleksibel seperti "dikirim" atau "pengiriman".
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE SEARCH(OrderStatus_Tokens, 'shipped')
ORDER BY OrderDate DESC
LIMIT 20;
Mengidentifikasi pesanan bernilai tinggi
Identifikasi pesanan bernilai tinggi dalam rentang tanggal tertentu untuk analisis bisnis.
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE
OrderDate BETWEEN 'START_DATE' AND 'END_DATE'
AND TotalAmountUSD > 500
ORDER BY TotalAmountUSD DESC
LIMIT 10;
Menganalisis performa penjualan menurut kategori
Hitung metrik penjualan, seperti unit yang terjual dan total pendapatan, yang diagregasi menurut kategori produk.
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;
Menelusuri pembayaran berdasarkan metode
Gunakan penelusuran teks lengkap untuk menemukan pembayaran yang dilakukan menggunakan metode tertentu, seperti "kartu kredit".
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;
Menemukan pengguna yang membeli produk menggunakan kueri grafik
Gunakan sintaksis kueri grafik untuk melintasi hubungan dan menemukan semua pengguna yang membeli produk tertentu.
Ganti PRODUCT_ID dengan ID produk target:
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;
Mempelajari konsol Spanner Omni
Spanner Omni menyertakan konsol Spanner Omni berbasis web untuk pemantauan dan pengelolaan. Untuk memulai konsol Spanner Omni, jalankan perintah berikut:
docker exec -it spanneromni /app/bin/spanner-console
Untuk mengakses konsol Spanner Omni, buka http://localhost:15026 di browser Anda. Konsol Spanner Omni memberikan informasi berikut:
Ringkasan: Menampilkan pemakaian CPU keseluruhan dan versi database.
Database: Mencantumkan semua database dalam deployment Anda.
Pencadangan: Menampilkan informasi tentang pencadangan yang dilakukan.
Insight Sistem: Menampilkan metrik kesehatan seperti pemakaian CPU, memori, dan penyimpanan, serta metrik performa seperti latensi dan throughput.
Query insights: Menampilkan kueri teratas yang menggunakan resource CPU.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan konsol Spanner Omni.