Panduan memulai ini menjelaskan cara mulai menggunakan Spanner Omni dan menjelajahi beberapa fiturnya dengan menjalankan container server tunggal.
Menjalankan satu penampung server
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.r4-lts start-single-serverFlag
--network hostakan membuka port untuk Spanner Omni di mesin host. Tabel berikut menjelaskan port yang digunakan oleh Spanner Omni:Rentang port Tujuan 15000ke15025Server Spanner Omni 15026Server konsol Spanner Omni Pastikan bahwa container sedang berjalan:
docker psBuat contoh database.
Spanner Omni menyertakan perintah untuk membuat database contoh dan mengisinya dengan data. Perintah berikut akan membuat database contoh 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 merepresentasikan lingkungan e-commerce yang melacak perjalanan pelanggan dari penjelajahan hingga checkout. Fitur 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
Database contoh mencakup data untuk produk, pengguna, pesanan, dan pembayaran. Gunakan kueri berikut untuk mempelajari kemampuan multi-model Spanner Omni. Berikut adalah contoh kueri yang menunjukkan beberapa fungsi di Spanner Omni.
Menelusuri produk berdasarkan nama
Menelusuri 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 smartphone 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 kemiripan vektor untuk menemukan produk yang secara semantik mirip dengan produk referensi. Hal ini berguna untuk membuat mesin pemberi rekomendasi. Kueri
ini menggunakan COSINE_DISTANCE() dengan vektor ProductEmbedding.
Ganti PRODUCT_ID dengan ID produk yang ingin Anda dapatkan
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
Mengambil histori pembelian lengkap untuk pengguna tertentu, termasuk detail produk dan histori harga.
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 menurut 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 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 menurut 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 graf
Gunakan sintaksis kueri grafik untuk menjelajahi 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 /google/spanner/bin/omni-jre/bin/java -jar /google/spanner/bin/spanner-console
Untuk mengakses konsol Spanner Omni, buka
http://localhost:15026 di browser Anda. Konsol Spanner Omni memberikan informasi berikut:
Ringkasan: Menampilkan penggunaan CPU secara keseluruhan dan versi database.
Database: Mencantumkan semua database dalam deployment Anda.
Pencadangan: Menampilkan informasi tentang pencadangan yang dilakukan.
Insight Sistem: Menampilkan metrik kondisi seperti pemakaian CPU, memori, dan penyimpanan, serta metrik performa seperti latensi dan throughput.
Insight kueri: Menampilkan kueri teratas yang menggunakan resource CPU.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan konsol Spanner Omni.