Desenvolver aplicativos com o Spanner Omni usando recursos compatíveis do Spanner. Embora muitos recursos sejam compartilhados com o Spanner, o Spanner Omni tem diferenças nas bibliotecas de cliente, na interface de linha de comando (CLI) e na funcionalidade do console.
Os recursos de desenvolvimento do Spanner compatíveis incluem:
Práticas recomendadas para design e otimização de aplicativos.
Recursos como fluxo de alterações e pesquisa de texto completo.
principais diferenças
Embora grande parte da experiência de desenvolvimento do Spanner seja aplicável, as áreas a seguir são diferentes no Spanner Omni:
Bibliotecas de cliente compatíveis:o Spanner Omni é compatível com as bibliotecas de cliente Java, Go e Python.
Interface de linha de comando (CLI): a CLI do Spanner Omni é uma ferramenta dedicada e diferente da Google Cloud CLI. Embora compartilhe uma sintaxe semelhante, não é necessário fornecer a flag
--instanceao executar comandos.Limitações do console:o console do Spanner Omni é somente leitura. Portanto, não é possível usá-lo para modificar implantações ou bancos de dados.
Os seguintes recursos e práticas recomendadas do Spanner se aplicam ao Spanner Omni.
Melhores práticas e casos de usos
Siga estas práticas recomendadas e casos de uso para projetar e otimizar seus aplicativos para o Spanner Omni.
Spanner como um banco de dados de jogos: use a escalonabilidade e a consistência do Spanner para back-ends de jogos.
Práticas recomendadas de SQL: otimize suas consultas para melhorar a performance e a eficiência. A maioria dos conceitos se aplica ao Spanner Omni. Como o Spanner Omni não oferece suporte ao armazenamento em camadas, conceitos como a redução de predicado de carimbo de data/hora podem não se aplicar totalmente. Além disso, o Spanner Omni não tem recursos de visualização de plano de consulta.
Frameworks de linguagem
Integrar o Spanner Omni a frameworks de linguagem conhecidos:
Hibernate ORM
Use o mapeamento relacional de objetos (ORM) do Hibernate para mapear seus objetos Java com as tabelas do Spanner Omni. Para ver mais informações, consulte os seguintes tópicos:
Integração com o Hibernate ORM (PostgreSQL) na documentação do Spanner.
Escreva um app Hibernate que se conecte ao Spanner na documentação do Spanner.
GORM
Integre o Spanner Omni ao GORM, uma ferramenta de mapeamento relacional de objetos (ORM) para a linguagem de programação Go. Para usar os recursos de mapeamento objeto-relacional do GORM nos seus aplicativos Go. Para ver mais informações, consulte os seguintes tópicos:
Integrar com GORM (GoogleSQL) na documentação do Spanner.
Integração com GORM (PostgreSQL) na documentação do Spanner.
Transações e simultaneidade
O Spanner Omni é compatível com os seguintes recursos de gerenciamento de transações:
Visão geral das transações: saiba mais sobre transações de leitura-gravação e somente leitura.
Limites de carimbo de data/hora: controlam a inatividade das suas leituras. No Spanner Omni, é possível configurar o período de armazenamento de versões (
version_retention_period) por até 30 dias. No Spanner, é possível configurar isso para até uma semana.Entenda os carimbos de data/hora de confirmação em bancos de dados do GoogleSQL e em bancos de dados do PostgreSQL.
TrueTime e consistência externa: entenda como o Spanner mantém a consistência em toda a implantação.
Níveis de isolamento
Entenda os diferentes níveis de isolamento compatíveis com o Spanner Omni para garantir a consistência dos dados.
Otimização
Use essas técnicas para otimizar o desempenho e a capacidade de processamento das transações.
Bloqueio
Saiba como usar o bloqueio explícito para gerenciar o acesso simultâneo aos seus dados.
Acesso aos dados e modificação
Acesse e modifique seus dados usando métodos padrão do Spanner, incluindo as bibliotecas de cliente, a CLI e a DML.
Para saber como as bibliotecas de cliente gerenciam sessões, consulte Sessões. Embora os conceitos de sessão subjacentes se apliquem ao Spanner Omni, ele oferece suporte apenas a sessões multiplexadas.
Como ler dados
Leia dados do Spanner Omni usando vários métodos, incluindo leituras obsoletas e direcionadas.
Como modificar dados
Modifique seus dados usando DML, mutações ou a CLI.
Tipos de dados
O Spanner Omni é compatível com os seguintes tipos de dados para representar os dados do seu aplicativo:
Trabalhe com matrizes no GoogleSQL e no PostgreSQL.
Desenvolvimento e teste
Configure seu ambiente de desenvolvimento e o comportamento do aplicativo para garantir desempenho confiável e tratamento de erros.
Transmitir alterações de dados
Os fluxos de alterações do Spanner rastreiam mudanças no banco de dados, como inserções, atualizações e exclusões, quase em tempo real. Gerenciados usando DDL, eles capturam detalhes como chaves primárias e carimbos de data/hora de confirmação para bancos de dados inteiros ou tabelas específicas. Embora a funcionalidade seja quase idêntica entre o Spanner e o Spanner Omni, o Dataflow não é compatível com o Spanner Omni.
Para saber mais, veja:
Visão geral dos fluxos de alterações: saiba o que fluxo de alterações fazem e como eles funcionam.
Criar e gerenciar fluxos de alterações: Saiba como usar a DDL para criar, modificar e excluir fluxo de alterações.
Pesquisa de texto completo
Use a pesquisa de texto completo (FTS, na sigla em inglês) do Spanner para pesquisar palavras, frases ou números em tabelas. A FTS lê os dados confirmados mais recentes.
Os principais recursos da pesquisa de texto completo incluem:
- Correção ortográfica automática.
- Detecção de idioma, incluindo chinês, japonês e coreano.
Para usar a pesquisa de texto completo, crie índices de pesquisa nas colunas que você quer pesquisar. O Spanner divide os dados dessas colunas em palavras individuais. Ele atualiza o índice instantaneamente quando novos dados são adicionados.
As pesquisas de texto completo oferecem recursos avançados além da correspondência de texto padrão, como:
- Pesquisar números exatos e intervalos de números.
- Encontrar partes de palavras (n-gramas) para nomes e erros de ortografia.
- Pesquisar palavras com sons semelhantes (Soundex).
- Ignorar palavras comuns.
A funcionalidade de FTS é consistente entre o Spanner e o Spanner Omni.
Diferenças de texto completo no Spanner
O Spanner oferece suporte à funcionalidade principal de FTS que está no Spanner com as seguintes diferenças:
O modo de consulta avançado não é compatível com o Spanner Omni.
Uma instância no Spanner é equivalente a uma implantação no Spanner Omni.