Article image
Alexandre Silva
Alexandre Silva05/05/2024 17:15
Compartilhe

Persistência poliglota: Introdução básica e exemplo de utilização

  • #NoSQL
  • #MongoDB
  • #Banco de dados relacional

O que me motivou a escrever esse artigo, foi alguns temas do tipo: Banco relacional x NoSQL. E neste artigo, quero abordar um tema onde não existe um "x" entre os dois modelos e sim um "+" e que é conhecido como ambiente híbrido ou persistência poliglota.

Na persistência poliglota é utilizado um comportamento híbrido para persistir os dados. A principal ideia é utilizar bancos de dados especializados, tanto modelo relacional quanto NoSQL, para diferentes propósitos dentro de uma mesma aplicação web. A escolha dessa abordagem visa selecionar o melhor armazenamento de dados para um determinado propósito e/ou tipo de dados.

Nesse ambiente híbrido, pode-se combinar um ou mais banco de dados relacionais ou uma combinação de armazenamento de dados relacionais e NoSQL.

Para exemplificar, podemos pensar em um aplicativo para e-commerce, o qual, utilizando-se da persistência poliglota pode utilizar:

  • Um banco de dados para vitrine ou catalogo de produtos, orientado a Documentos, MongoDB por exemplo, aplicando o Embedded Pattern*, e assim armazenar todos os dados que a aplicação utiliza para apresentar um produto, dentro de um único documento;
  • E para diminuir as consultas no local de armazenamento primário de dados, que é o disco, adicionar uma camada de cache com Redis, por exemplo. Desta forma, o Redis será responsável por fazer o armazenamento de dados na memória com durabilidade opcional;
  • Ainda, é possível dentro desse modelo, utilizar um banco de dados relacional para as transações de Pedidos, Pagamentos etc. Ou seja, uma armazenamento tradicional em conformidade com ACID(Atomicidade, Consistência, Isolamento e Durabilidade).

Esse é um exemplo de um ambiente de banco de dados híbrido. Claro que, existem vários pontos a serem observados nesse modelo e assim como vantagens, também existem desvantagens. O importante é obter o conhecimento e analisado os riscos e benefícios, escolher o melhor modelo.

A seguir é apresentado a modelagem de dados que foi abordada no artigo referente ao Embedded Pattern, somente para exemplificar como ficaria essa estrutura. Esse é um tema que irei abordar futuramente também.

*Embedded Pattern

Modelo de dados Catalogo Produtos de um e-commerce utilizando cache:

Relacional

image

Não relacional (Embedded Pattern)

image

Espero que tenha contribuído e ajudado no entendimento desse modelo de ambiente.

Até mais!

Alexandre Ladeira Silva

Fontes:

https://www.infoq.com/articles/data-model-mongodb/

https://blog.eisele.net/2012/11/polyglot-persistence-eclipselink-with.html

https://www.techtarget.com/searchapparchitecture/tip/The-basics-of-polyglot-persistence-for-microservices-data?

Compartilhe
Comentários (1)
Maria Andrade
Maria Andrade - 05/05/2024 17:53

top