Visão geral do Spanner Omni

O Spanner Omni é uma versão do Spanner que pode ser implantada em qualquer lugar e permite executar a tecnologia de banco de dados distribuído do Google em data centers locais, nuvens públicas, como Google Cloud, Amazon Web Services (AWS) e no seu laptop. Ele oferece recursos principais do Spanner, incluindo escalonabilidade horizontal, alta disponibilidade, conformidade com ACID e consistência externa forte, usando replicação baseada em Paxos, fragmentação automática e a API TrueTime definida por software.

O Spanner Omni integra modelos de dados relacionais, de gráficos, vetoriais e de chave-valor com recursos de análise operacional e de texto completo. Assim como o Spanner, o Spanner Omni é compatível com GoogleSQL, PostgreSQL e Spanner Graph Language. Você pode alcançar resiliência entre ambientes, portabilidade de aplicativos e um stack de desenvolvimento consistente em vários ambientes. O Spanner Omni oferece suporte a opções de implantação que incluem:

  • Máquinas virtuais
  • Contêineres do Linux
  • Clusters do Kubernetes

Principais recursos

O Spanner Omni oferece os seguintes recursos:

  • Flexibilidade de implantação: execute o Spanner Omni no Linux ou no macOS. O Spanner Omni é compatível com ambientes de nuvem pública, como Google Cloud (Google Kubernetes Engine (GKE) e Cloud Storage) e Amazon Elastic Kubernetes Service (Amazon EKS) e Amazon Elastic Compute Cloud (Amazon EC2), locais e laptops.

  • Alta escalonabilidade: o Spanner Omni pode fragmentar automaticamente seus dados e balancear os fragmentos para alcançar o escalonamento elástico de leituras e gravações.

  • Alta disponibilidade: o Spanner Omni oferece várias topologias de implantação. O Spanner Omni oferece implantação em várias zonas e vários clusters para oferecer alta disponibilidade em caso de falhas de zona ou de cluster.

  • Consistência externa forte: o Spanner Omni oferece consistência transacional global usando o TrueTime baseado em software, que pode ser implantado em qualquer ambiente.

  • Multimodelo interoperável: o Spanner Omni oferece suporte a vários modelos de dados (relacional, chave-valor, gráfico, vetor) e recursos (pesquisa de texto completo, processamento analítico) e fornece consultas entre modelos e transações compatíveis com ACID em diferentes modelos de dados.

  • Interface familiar: interaja com seus dados usando a CLI do Spanner, que inclui um shell SQL para consultas interativas. O Spanner Omni é compatível com dialetos GoogleSQL, PostgreSQL e GQL, o que permite migrar aplicativos atuais.

Topologias de implantação

O Spanner Omni usa uma hierarquia de regiões, zonas e servidores para definir a configuração de implantação. O Spanner Omni oferece as seguintes configurações de implantação:

  • Servidor único: o Spanner Omni é executado em uma única máquina. Essa topologia é uma boa opção para desenvolvimento local. O Spanner Omni permite usar o recurso de backup e restauração sem restrições se for implantado em uma configuração de servidor único com quatro vCPUs ou menos. Os upgrades nessa topologia causam inatividade.

  • Zona única (ou zonal): todos os servidores do Spanner Omni fazem parte de uma zona. Use no mínimo três servidores para essa configuração de implantação. Para um tempo de atividade ideal, essa topologia tem metas de disponibilidade mais baixas porque uma falha em uma única zona pode causar uma interrupção.

  • Multizona (ou regional): o Spanner Omni distribui servidores em várias zonas. Todas as zonas estão em um único local. Para implantações em várias zonas, use um mínimo de três zonas. Cada zona precisa ter pelo menos um servidor. Recomendamos usar três servidores em cada zona. Essa configuração de implantação oferece maior disponibilidade do que a implantação de zona única.

  • Vários clusters (ou multirregional): os servidores do Spanner Omni residem em várias zonas em vários clusters. Para alta disponibilidade, use três zonas em dois ou mais clusters e configure cada zona com três ou mais servidores.

Requisitos do sistema

Para otimizar a performance, use os seguintes requisitos mínimos recomendados para implantações de servidor:

Ambiente SO ou plataforma Recomendação de hardware
No local Linux (RHEL 9, Ubuntu 22) 4 GB de RAM por vCPU, mais de 20 GB de espaço em disco
Nuvem (Google Cloud e AWS) VMs ou pods do Kubernetes 4 vCPUs, 16 GB de RAM por VM ou pod do Kubernetes
Desenvolvedor (laptops, desktops) macOS (M1, M2, M3) 4 GB de RAM e 10 GB de espaço em disco

Para armazenamento, recomendamos um SSD dedicado com um sistema de arquivos ext4.

Conectividade e desenvolvimento

Para se conectar ao Spanner Omni e desenvolver aplicativos, considere as seguintes ferramentas:

  • Bibliotecas de cliente: é possível usar as bibliotecas de cliente do Spanner para Java e Go especificando o endpoint do Spanner Omni. Por exemplo, em Java, defina setExperimentalHost("http://localhost:15000").

  • PGAdapter: esse proxy permite que aplicativos PostgreSQL atuais se conectem a bancos de dados do Spanner Omni com dialeto PostgreSQL usando o protocolo de transmissão padrão do PostgreSQL.

  • Diagnóstico: um comando spanner admin diagnostics create dedicado coleta registros, rastreamentos e pilhas de encadeamento para resolução de problemas.