Spanner para cargas de trabalho não relacionais

O Spanner é um sistema de banco de dados altamente confiável e totalmente gerenciado. O Spanner evoluiu para se tornar um sistema de gerenciamento de banco de dados relacional. ele tem as raízes como um sistema de armazenamento de chave-valor não relacional e retém a as características fundamentais desse sistema. Por isso, você pode usar o Spanner como um banco de dados não relacional (NoSQL) e migrar do e outros bancos de dados não relacionais para o Spanner. Este documento ajuda você vai entender se o Spanner é ideal para não relacionais.

Os bancos de dados NoSQL começaram a ser usados durante uma época em que os bancos de dados relacionais os bancos de dados não tinham recursos para dar suporte a aplicativos emergentes que precisavam escalonabilidade, disponibilidade e elasticidade de computação. Eles fizeram isso sacrificando vários recursos que costumam ser essenciais para o gerenciamento de dados, como transações, consistência e consultas ad-hoc. O Spanner foi criado para dar suporte a natureza exigente de aplicativos e funcionalidades altamente disponíveis fornecidos por bancos de dados relacionais tradicionais, para que os clientes possam aproveitar os dois conjuntos de atributos.

Com o Spanner, é possível começar com dados simples e armazenamento e escalonar o aplicativo conforme necessário.

Como o Spanner atende aos critérios do banco de dados NoSQL

O Spanner atende aos seguintes critérios principais para bancos de dados NoSQL do Google Cloud.

Escala e desempenho

Os bancos de dados NoSQL ganharam popularidade devido à capacidade de escalonar leituras e gravações na horizontal. Com o Spanner, você não precisa se preocupar com o escalonamento ou o desempenho é uma preocupação. Spanner com estilo de chave-valor os bancos de dados podem ser escalonados horizontalmente para suportar centenas de milhões de arquivos de leitura ou gravação solicitações por segundo e petabytes de dados. Computação do Spanner escalona de acordo com a carga de trabalho, mantendo um perfil consistente e de baixa latência mesmo quando o aplicativo é escalonado por várias ordens de magnitude.

API NoSQL

Normalmente, os bancos de dados relacionais tradicionais são acessados usando SQL, que é com uma curva de aprendizado para desenvolvedores não familiarizados com bancos de dados relacionais. Os clientes desses bancos de dados também costumam usar conexões persistentes. requer a implantação da infraestrutura de pool de conexões para escalonar. Em a API Spanner é criada com base em uma solicitação gRPC/HTTP2 e resposta a incidentes, que gerencia automaticamente as falhas de conexão. O Spanner oferece recursos simples, nativos da linguagem APIs NoSQL de leitura e gravação que não exigem conhecimento em SQL. Além disso, Os clientes do Spanner não exigem pool de conexões para escala.

Totalmente gerenciado

Uma grande vantagem dos bancos de dados NoSQL é que eles são percebidos como mais fáceis gerenciar. Por ser um serviço totalmente gerenciado, o Spanner não coloca operacional para os clientes. O Spanner não tem inatividade atualizações de software e hardware nos bastidores, mantendo o compatibilidade. A API Spanner e a semântica são as mesmas que se as operações eram realizadas em um único banco de dados de máquina e não fossem que exigem conhecimento da arquitetura interna do Spanner. O Spanner é executado em implantações que variam de 1/10 de nó a dezenas com milhares de nós, escalonando de forma automática e responsiva escalonador automático gerenciado.

Dados semiestruturados

O Spanner dá suporte a tipos de dados flexíveis, como JSON e BYTES, para armazenar dados semiestruturados ou não estruturados. Assim como outros bancos de dados NoSQL, use esses tipos de dados para evitar a especificação de todo o esquema de antecipadamente.

Controle de acesso

Assim como outros bancos de dados NoSQL, o Spanner dá suporte ao acesso baseado em IAM controle. Os administradores podem configurar e administrar o acesso controlar políticas sem armazenar nomes de usuário e senhas no banco de dados.

Qual é a diferença entre o Spanner e os bancos de dados NoSQL tradicionais

O Spanner oferece as seguintes vantagens em relação ao NoSQL tradicional bancos de dados.

Transações

Conforme a complexidade dos aplicativos aumenta, muitas vezes eles precisam executar várias linhas e tabelas transacionais no banco de dados. Com o Spanner, não é preciso precisar migrar para um repositório de dados transacional conforme seu banco de dados cresce, porque O Spanner tem suporte total a transações de leitura e gravação. Conforme um banco de dados em conformidade com ACID, o Spanner mantém consistência do banco de dados o tempo todo, independente da escala.

Modelagem de dados

O design de esquemas em bancos de dados NoSQL pode não ser natural devido à necessidade de adaptar desnormalizar os dados em uma tabela e forçar a desnormalização deles devido à impossibilidade de realizar mesclagens. Com o Spanner, é possível especificar um esquema sem com uma única tabela ou desnormalização. Para otimizar os padrões de acesso que tocar em várias tabelas, será possível usar a intercalação de tabelas. Também é possível fazer mesclagens entre tabelas.

Consultas ad hoc

Mesmo se você usar principalmente a API NoSQL, muitas vezes ainda é útil executar operações pontuais consultas para fins de depuração ou análise. O Spanner segue a linguagem de consulta padrão do SQL. Você pode usar a priorização de solicitações. para isolar o tráfego ad hoc de baixa prioridade do tráfego on-line ou usar Otimização de dados do Spanner para executar consultas analíticas em recursos de computação completamente isolados do ambiente on-line o tráfego do banco de dados.

Índices secundários com consistência forte

Os aplicativos geralmente exigem índices secundários para oferecer suporte a pesquisas de baixa latência. Os bancos de dados NoSQL típicos oferecem índices secundários com consistência posterior ou restrições quanto ao tamanho do índice. Isso pode complicar lógica do aplicativo, que precisa contornar essas restrições. O Spanner oferece índices secundários de consistência forte em escala sem restrições de tamanho. Isso permite que você se concentre a lógica do aplicativo sem se preocupar com problemas de consistência.

O Spanner é ideal para suas necessidades de banco de dados NoSQL?

O Spanner é um sistema flexível de armazenamento de dados compatível com SQL e NoSQL. Alguns aplicativos começam com armazenamento simples à medida que crescem em complexidade, precisam de mais recursos que normalmente não são oferecidos por bancos de dados NoSQL, como transações, índices secundários consistentes e uma linguagem de consulta flexível. Com o Spanner, você não fica limitado por essas limitações e expandir o aplicativo conforme necessário.

A maioria das cargas de trabalho não relacionais são ideais para o Spanner. Não o Spanner oferece uma API NoSQL simples de leitura e gravação, mas também tem o suporte de alta disponibilidade, alta confiabilidade, baixa latência, elasticidade de computação e escalonabilidade extrema. Com o Spanner, consolidem diversas cargas de trabalho em uma única plataforma flexível.