Práticas recomendadas e tutoriais

O valor dos bancos de dados sem esquema

Os bancos de dados sem esquema (ou "sem esquema") são a última palavra da moda no mundo da TI. Os programadores nerds parecem adorar a flexibilidade e o baixo custo, e esses atributos impulsionaram muitas empresas iniciantes. Como venho de um histórico de banco de dados fortemente relacional, o valor que os bancos de dados sem esquema trazem para uma empresa foi revelador para mim. É hora de tirar os bancos de dados sem esquema do quintal do desenvolvedor e levá-los para a empresa como um todo.

Este blog examina por que ele é tão relevante no atual mundo centrado em dados. Se há uma coisa que as empresas adorariam fazer hoje, é entender e obter rapidamente insights acionáveis de seus dados. Elas continuam investindo milhões de dólares para fazer isso de forma eficaz. O Big Data é uma grande parte dessa equação. A Gartner imortalizou os 3Vs do Big Data - Volume, variedade e velocidade. E se há uma área em que os sistemas de banco de dados tradicionais têm dificuldade é em acompanhar a velocidade com que os dados estão chegando. Quase todas as ferramentas do conjunto de ferramentas de TI impõem alguma forma de modelo ou formato de dados, o que dificulta a leitura ou a instanciação rápida dos dados.

É nesse ponto que os bancos de dados sem esquema entram em cena para agregar um enorme valor.

O que é um banco de dados sem esquema?

Primeiro, vamos definir o significado do termo - um banco de dados sem esquema:

  • Não exige conformidade com um esquema rígido (banco de dados, esquema, tipos de dados, tabelas etc.) que deve ser usado durante toda a vida útil de um sistema
  • Não impõe limitações de tipo de dados em valores individuais pertencentes a um único tipo de coluna
  • Modela o uso comercial e não um esquema de banco de dados, aplicativo ou produto
  • Pode armazenar dados estruturados e não estruturados
  • Elimina a necessidade de introduzir camadas adicionais (camada ORM) para abstrair o modelo relacional e expô-lo em um formato orientado a objetos.

Em termos simples, os bancos de dados sem esquema são fundamentalmente:

  • Não exigem nenhuma modelagem (forma de normalização 3NF), que fez a carreira de muitos projetistas de arquitetura sem esquema de banco de dados, inclusive a minha
  • Não requer a pré-configuração de tipos de dados em seu repositório, o que reduz bastante o tempo necessário para montar um repositório de dados
  • Pode armazenar dados com características diferentes e tolerar alterações nessa definição sem precisar planejar antecipadamente interrupções e alterações complexas, além de eliminar migrações complexas de esquemas
  • Pode ser facilmente transformado, por exemplo, um número de conta pode começar com todos os caracteres ou com números ou uma combinação de ambos. É limitado apenas pela definição e imaginação do usuário!

Os bancos de dados sem esquema armazenam dados como pares de chave/valor (também conhecidos como KV) ou como documentos JSON. Com base nos casos de uso, os usuários têm a opção de armazenar dados como pares KV ou como documentos JSON. Os documentos JSON geralmente são muito ricos na forma como os dados são representados e permitem que os usuários modelem de forma muito próxima o modelo de entidade-relacionamento com o qual estamos todos familiarizados e que consideramos muito útil. Por exemplo: Uma entidade Conta pode ser modelada em um documento JSON com todos os atributos necessários e valores aninhados que acompanham um objeto Conta típico - os vários endereços, e-mails, aliases etc. Os documentos JSON também oferecem a vantagem adicional de poder indexar valores individuais, o que torna o acesso muito mais eficiente, permitindo que partes de dados de diferentes documentos sejam unidas.

Este blog não se concentra nos meandros de um documento JSON, mas apenas para fornecer uma rápida introdução, um documento JSON em um mundo de banco de dados sem esquema é muito parecido com uma linha em um banco de dados relacional com a capacidade de, por exemplo, uma linha de conta ser completamente diferente de outra linha de conta, que é exatamente como os dados comerciais da vida real se parecem.

Benefícios dos bancos de dados sem esquema

O que tudo isso significa para uma empresa que vem investindo vários milhões de dólares em soluções complexas de banco de dados de hardware e software proprietário para controlar os 3Vs? Vamos examinar primeiro o tempo que as empresas gastam nas atividades listadas acima. Em minha opinião, as atividades que consomem mais tempo e são mais caras são:

Projeto ou normalização de banco de dados

Projetar o esquema, geralmente chamado de normalização de dados, para colocá-los em um formato relacional leva várias semanas, se não meses, e requer recursos muito qualificados. No mundo relacional, cada dado pertence a uma tabela, a um banco de dados ou a um esquema e permanece lá, na maioria das vezes, durante toda a vida útil do produto. Qualquer alteração exigirá que aplicativos e usuários criem cópias desses dados, o que pode causar anomalias e vai contra os princípios da normalização.

Os bancos de dados sem esquema eliminam essa atividade em grande parte e reduz bastante a complexidade dessa atividade. A única decisão que um usuário precisa pré-determinar é quais atributos de uma entidade ele deseja manter agrupados.

ETL/ELT necessário para reformatar e armazenar dados estruturados e não estruturados

A extração de dados de fontes e sua transferência (comumente chamada de ETL ou ELT) para uma área de preparação para bancos de dados exige que a fonte e o destino compreendam a estrutura dos dados em um mundo relacional. O usuário precisa conhecer o layout do banco de dados/tabela/coluna/campo. Há limitações e implicações de desempenho ao extrair os dados. A menos que a quantidade de dados seja muito pequena, não há realmente nenhuma maneira de extrair e carregar esses dados no sistema de banco de dados sem algum tipo de fluxo em lote. E isso geralmente se traduz em muitas horas ou processos noturnos e alguns milhares de linhas de código ou ferramentas ETL caras. Há pouquíssima tolerância a erros nesse processo consecutivo, e qualquer erro geralmente resulta na falta de dados precisos em tempo hábil. Para uma empresa que depende de dados para sobreviver, esse é um grande revés, e qualquer empresa que não dependa de seus dados e possa tolerar a latência provavelmente não se importa com a concorrência. A tentativa de atender à latência exige enormes despesas operacionais e de capital para adquirir equipamentos de última geração. E essa despesa é contínua e cresce a cada ano.

Os bancos de dados sem esquema não precisam de longos processos de transformação e limpeza devido ao fato de o modelo ser flexível e o usuário não ser obrigado a se adequar a um esquema rígido.

Gerenciamento contínuo de mudanças

Incluindo alterações de esquema que podem causar grandes alterações de código nos sistemas (camada de aplicativos, camada ORM) que leem e gravam dados de e para o banco de dados. Quando se chega a um esquema, alterá-lo exige interrupções planejadas para colocar os objetos afetados off-line e concluir e testar as alterações na camada de aplicativos para aproveitar as alterações. Erros de implementação manual podem causar impactos que podem se estender por vários dias ou meses. Em um mundo em que a mudança é a única constante, esse modelo parece um pouco desatualizado. Os bancos de dados sem esquema modelam o negócio em vez de um modelo de dados. A definição e os atributos de um dado estão mudando constantemente, então por que viver com um banco de dados que o obriga a se conformar com a mesma definição?

Os bancos de dados sem esquema eliminam atividades complexas de migração e sincronização de alterações devido ao seu modelo flexível de armazenamento de dados.

Análise em tempo real de dados de streaming

A necessidade de extrair valor dos dados é de suma importância no mundo atual, orientado por dados, em que as empresas estão gerando petabytes de dados de diferentes fontes - alguns de grande valor e outros não. Ter que esperar até que os dados sejam completamente limpos e carregados no sistema para entender o valor significa custos crescentes para armazenar, limpar e transformar os dados. Um banco de dados sem esquema permite que você acesse, analise e dimensione o valor dos dados muito rapidamente. Se os dados não tiverem nenhum valor, é melhor falhar rapidamente e eliminar os dados sem valor para reduzir os custos de armazenamento e processamento.

Alguns casos de uso, como detecção de fraudes e marketing just in time, exigem a análise de dados e o fornecimento de insights em tempo real. As necessidades são muito táticas. É necessário combinar novos dados com os dados existentes para fornecer percepções. Tudo isso se traduz em muito dinheiro e em uma enorme vantagem competitiva. Hoje em dia, não são apenas os engenheiros experientes em tecnologia que acessam e analisam os dados; muitos dos usuários desses dados não são altamente técnicos.

Um banco de dados sem esquema permite que você defina sua visão dos dados em vez de criar um esquema que você precisa combater para extrair valor. Isso permite que sua equipe não técnica dependente de TI extraia informações de forma rápida e fácil e faça o que foi contratada para fazer, em vez de entender modelos de dados complexos e passar horas criando seu universo de dados. Isso se traduz novamente em uma enorme economia de custos.

Escalabilidade sob demanda para atender a volumes extremos, velocidade e variedade de dados

Os dias em que as empresas tinham o conforto de planejar com antecedência quaisquer anomalias nos volumes, na velocidade e na variedade de dados infelizmente acabaram. Se você não escalonar, você simplesmente fracassará - por mais que isso pareça óbvio, essa é realmente a verdade, pois custa milhões de dólares em lucros e oportunidades perdidas.

Os bancos de dados sem esquema não exigem infraestrutura complexa/proprietária que requerem grandes despesas de capital/operacionais para serem dimensionadas. Uma pequena instância pode ser dimensionada com muita facilidade, bastando apertar um botão. Embora alguns bancos de dados tradicionais ofereçam esse recurso, a rigidez do esquema impõe limites. A escalabilidade não é apenas a capacidade de fragmentar os dados, mas também a capacidade de se adaptar rapidamente às mudanças de esquema. E tudo isso pode ser implementado em hardware de commodity barato.

Resumo

Conforme descrito neste artigo, está claro que os bancos de dados sem esquema ("schema-less") têm uma função muito importante a desempenhar no atual mundo centrado em dados. É evidente que eles vieram para ficar, de uma forma ou de outra. Isso significa que o mundo deixará de usar bancos de dados tradicionais, de ETL/ELT de seus dados e de soluções proprietárias? Embora só o tempo responda a essa pergunta, a sabedoria me diz que as fontes de dados tradicionais não podem continuar a ignorar os benefícios que os bancos de dados sem esquema trazem para a mesa. É apenas uma questão de tempo até que elas adotem alguns desses recursos dos bancos de dados sem esquema, e isso pode ser vantajoso para os clientes mais exigentes de hoje.

_____________________________________________________________________________________

Este artigo foi escrito por Sandhya Krishnamurthy, engenheira de soluções sênior da Couchbaseum dos principais fornecedores de bancos de dados sem esquema.

Entre em contato com o autor em sandhya.krishnamurthy@couchbase.com

Saiba mais sobre o Couchbase produtos, para downloads gratuitos de produtos e treinamento gratuito em NoSQL.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Sandhya Krishnamurthy

Sandhya Krishnamurthy é tecnóloga com sólida formação em desenvolvimento de banco de dados e experiência em pré-vendas. Ela é artista em tempo parcial, cantora em tempo parcial e mãe em tempo integral.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.