Este início rápido explica como começar a usar o Spanner Omni e conferir alguns dos recursos dele executando um contêiner de servidor único.
Executar um contêiner de servidor único
Para configurar e executar um contêiner do Spanner Omni, siga estas etapas:
Crie um volume do Docker para armazenar dados do Spanner Omni. O uso de um volume evita a perda de dados se o contêiner for excluído acidentalmente.
docker volume create spannerInicie o servidor do 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-serverA flag
--network hostabre as portas do Spanner Omni na máquina host. A tabela a seguir descreve as portas usadas pelo Spanner Omni:Intervalo de portas Finalidade 15000a15025Servidores do Spanner Omni 15026Servidor do console do Spanner Omni Verifique se o contêiner está em execução:
docker psCrie um banco de dados de exemplo.
O Spanner Omni inclui comandos para criar um banco de dados de exemplo e preenchê-lo com dados. O comando a seguir cria um banco de dados de exemplo chamado
retail-sample.docker exec -it spanneromni /google/spanner/bin/spanner databases create-sample-db retail --database-name=retail-sampleVerifique se o banco de dados foi criado:
docker exec -it spanneromni /google/spanner/bin/spanner databases listA saída mostra que um banco de dados chamado
retail-samplefoi criado.Confira o esquema do banco de dados:
docker exec -it spanneromni /google/spanner/bin/spanner databases ddl describe retail-sampleA saída mostra o DDL de todas as tabelas, relações, índices de pesquisa, índices de vetores e gráficos. Esse esquema de vários modelos representa um ambiente de e-commerce que acompanha a jornada do cliente, desde a navegação até o checkout. Ele usa recursos avançados, como índices de pesquisa de texto completo, incorporações de vetores e uma camada de gráfico de propriedades.
Conecte-se ao banco de dados e abra o shell SQL:
docker exec -it spanneromni /google/spanner/bin/spanner sql --database=retail-sampleO prompt
spanner-cli>aparece, permitindo que você execute consultas.Confira as tabelas do banco de dados:
SHOW TABLES;
Executar consultas para analisar o conjunto de dados
O banco de dados de exemplo inclui dados de produtos, usuários, pedidos e pagamentos. Use as consultas a seguir para analisar os recursos de vários modelos do Spanner Omni. Confira a seguir consultas de exemplo que demonstram algumas das funcionalidades do Spanner Omni.
Pesquisar produtos por nome
Pesquise produtos usando a pesquisa de texto completo. Essa consulta usa a função SEARCH() na coluna Name_Tokens, que contém tokens pré-processados para correspondência eficiente.
O exemplo a seguir pesquisa por phone para encontrar smartphones e telefones:
SELECT ProductID, Name, Description, PriceUSD
FROM Products
WHERE SEARCH(Name_Tokens, 'phone')
ORDER BY PriceUSD DESC
LIMIT 10;
Pesquisar produtos por descrição
Pesquise produtos com base em características ou recursos específicos mencionados nas descrições.
O exemplo a seguir pesquisa por waterproof em todas as categorias de produtos:
SELECT ProductID, Name, Description, PriceUSD
FROM Products
WHERE SEARCH(Description_Tokens, 'waterproof')
ORDER BY PriceUSD
LIMIT 10;
Encontrar produtos semelhantes usando a pesquisa vetorial
Use a pesquisa de similaridade de vetores para encontrar produtos semanticamente semelhantes a um produto de referência. Isso é útil para criar mecanismos de recomendação. Essa consulta usa COSINE_DISTANCE() com vetores ProductEmbedding.
Substitua PRODUCT_ID pelo ID do produto para o qual você quer recomendações:
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;
Recuperar o histórico de compras do usuário
Recupere o histórico de compras completo de um usuário específico, incluindo detalhes do produto e preços históricos.
Substitua USER_ID pelo ID do usuário de destino:
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;
Encontrar pedidos por status
Use a pesquisa de texto completo para encontrar pedidos pelo status. Isso permite a correspondência flexível de termos como "enviado" ou "em trânsito".
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE SEARCH(OrderStatus_Tokens, 'shipped')
ORDER BY OrderDate DESC
LIMIT 20;
Identificar pedidos de alto valor
Identifique pedidos de alto valor em um período específico para análise de negócios.
SELECT OrderID, UserID, OrderDate, TotalAmountUSD
FROM Orders
WHERE
OrderDate BETWEEN 'START_DATE' AND 'END_DATE'
AND TotalAmountUSD > 500
ORDER BY TotalAmountUSD DESC
LIMIT 10;
Analisar o desempenho de vendas por categoria
Calcule métricas de vendas, como unidades vendidas e receita total, agregadas por categoria dos produtos.
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;
Pesquisar pagamentos por método
Use a pesquisa de texto completo para encontrar pagamentos feitos usando métodos específicos, como "cartão de crédito".
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;
Encontrar usuários que compraram um produto usando a consulta de gráfico
Use a sintaxe de consulta de gráfico para percorrer relações e encontrar todos os usuários que compraram um produto específico.
Substitua PRODUCT_ID pelo ID do produto de destino:
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;
Conferir o console do Spanner Omni
O Spanner Omni inclui um console baseado na Web para monitoramento e gerenciamento. Para iniciar o console do Spanner Omni, execute o comando a seguir:
docker exec -it spanneromni /app/bin/spanner-console
Para acessar o console do Spanner Omni, acesse http://localhost:15026 no navegador. O console do Spanner Omni fornece as seguintes informações:
Visão geral: mostra a utilização geral da CPU e a versão do banco de dados.
Bancos de dados: lista todos os bancos de dados em sua implantação.
Backups: mostra informações sobre os backups realizados.
Insights do sistema: mostra métricas de integridade, como utilização de CPU, memória e armazenamento, além de métricas de desempenho, como latência e capacidade de processamento.
Insights de consulta: mostra as principais consultas que consomem recursos da CPU.
Para mais informações, consulte Usar o console do Spanner Omni.