Vídeos

Persistência Poliglota - Usando vários bancos em uma aplicação!

Thamyres Nunes
Escrito por Thamyres Nunes em 26/05/2021

Olá, tudo bem?

O vídeo de hoje é um screencasting dos slides atualizados (2021) usados em uma palestra minha, realizada originalmente durante a TechParty 2017 na Faccat (Taquara/RS). Se gostou do vídeo, não esqueça de deixar o seu like e se inscrever no canal se ainda não for inscrito. Para transcript e slides, acesse: https://www.luiztools.com.br/post/persistencia-poliglota-indo-alem-do-sql/

Outras referências:

– Meus cursos: https://www.luiztools.com.br/curso-nodejs?utm_source=youtube&utm_medium=link&utm_campaign=curso-nodejs&utm_content=poliglota

– Meus livros: https://www.luiztools.com.br/meus-livros?utm_source=youtube&utm_medium=link&utm_campaign=livros&utm_content=poliglota

– Redes sociais: https://about.me/luiztools

– Guia de Estudos de NoSQL: https://www.luiztools.com.br/nosql/?utm_source=youtube&utm_medium=link&utm_campaign=curso-nodejs&utm_content=poliglota

– Tutorial Redis: https://www.luiztools.com.br/post/como-criar-um-cache-de-dados-com-redis-em-node-js/?utm_source=youtube&utm_medium=link&utm_campaign=curso-nodejs&utm_content=poliglota

– Tutorial MongoDB: https://www.luiztools.com.br/post/tutorial-mongodb-para-iniciantes-em-nosql/?utm_source=youtube&utm_medium=link&utm_campaign=curso-nodejs&utm_content=poliglota

Um abraço e sucesso.

Prof. Luiz

o Olá tudo bem Aqui é o Luiz e o vídeo
de hoje é sobre persistência poliglota
que basicamente você utilizar uma mesma
aplicação na mesma solução mais de um
mecanismo de persistência vários bancos
de dados e tipos diferentes por exemplo
então A ideia é o explicar melhor este
conceito e trazer muitas opções de
problemas e soluções baseadas em bancos
não relacionar você está buscando né
sair de um nível Júnior para lançar para
plano para seguir etc tenho certeza que
esse vídeo vai ser bem interessante para
você tá
[Música]
eu comecei trabalhando com banco de
dados da mesma maneira que provavelmente
você também na faculdade eu vi somente
bancos nacionais e para ser mais
específico vi somente hora depois no
mercado eu fui trabalhar com as sem
server foi trabalhar com aquelas não com
mais Kelly e com sqlite também quando eu
fazia apps não é para dispositivos
móveis nada de novo skelly tanto
acadêmica quanto profissionalmente até
meados de 2012 em 2012 eu tive um
problema em que o SQL não deu conta e aí
talvez você se pergunte Quando que o SQL
não dá conta bem para explicar isso eu
preciso fazer uma analogia com você onde
todos os sócios que você utiliza são
ferramentas numa grande caixa de
ferramentas Você concorda cada um deles
tem a sua finalidade tem a sua
utilização o que acontece então quando
eu uso uma ferramenta
a errada ou mais ou menos errada não é
ideal para resolver um problema acontece
como aqui na foto né Eu dou marteladas
para por exemplo tentar encaixar um
parafuso na madeira Talvez eu consiga
talvez até que funcione não certamente
não é a solução Ideal com os bancos
relacionais é a mesma coisa você pode
martelar tudo com eles mas nem todos os
cenários eles são soluções ideais e eu
senti isso na pele em 2012 quando eu
decidi montar uma Startup por bolsa
furada um negócio que já tinha começado
a suturar ela nos antes mas em 2012
acabou virando um negócio principal e eu
vivido esse negócio durante três anos
busca olhada era um motor de
classificados automotivos onde a gente
reunir na época mais de dois milhões de
anúncios de veículos que eram consumidos
por mais de meio milhão de usuários
estão com o próprio nome sugere a gente
tem que entregar isso maneira muito
rápida muito prática muito inteligente
E como que eu só conhecia tentar os
bancos relacionais tradicionais foi com
isso que eu desenvolvi mostrada o que me
trouxe uma série de problemas porque o
SQL serve que foi o banco que eu
utilizei na época ele não é um banco
apropriado para construção de índices
rápidos de mecanismos de busca
inteligentes e um banco SQL tradicional
para as tabelas aos momentos e acabou
por aí mas quando você não sabe como que
o usuário vai pesquisar como você quer
deixar uma caixa texto livre como no
Google para que a pessoa que escreva
qualquer coisa ali dentro e Com base no
que ela escreveu você trazer resultados
para ela nem preciso de dizer que usar
um like aqui com por cento é uma péssima
ideia do conjunto super fácil
infelizmente os esquece banco não
fornecerá época também não ajudava com
Jesus performance e aqui não é de médico
dois que ele serve E nem adianta querer
comparar com outros bancos nacionais que
o problema seria o mesmo mas sim é
simplesmente a contratação de que bancos
nacionais não performam bem nesse tipo
de cenário de imprevisibilidade
a luta de texto aberto infelizmente Na
época eu não conhecia os donos funcionar
eu sequer sabia que existiam Então como
bom se tiver computação que eu sou o quê
que eu fiz uma baita de uma gambiarra eu
construir uma tecnologia de em si
inteligente de busca que funcionou bem
eu não vou mentir mas que parecia sua
ferramenta aí da foto foi um trabalho
imenso reinventando a roda que se eu
tivesse acesso a um material com você
vai ter hoje aqui nesse vídeo eu teria
poupado muita dor de cabeça muitas
noites mal dormidas ou não dormidas e
principalmente um negócio ter escalado
muito mais facilmente então se você tem
empolgado com a ideia do que eu vou te
mostrar que hoje já Aproveita e se
inscreve no canal se você ainda não é
inscrito e deixe seu like aí pra
valorizar o trabalho e me incentivar a
continuar produzindo uma traz aqui pro
YouTube para que você também Aprenda com
os meus erros do passado né E se torna
funcionar o melhor mais rapidamente do
que eu levei perguntar mas voltando aqui
por que aconteça história quero te
mostrar que existe assinar
a Kelly não vai atender também Você vai
precisar de outras ferramentas aí ou
você vai criar uma geringonça como essa
que eu criei ou você vai buscar uma
solução de mercado mas também para dizer
né que não és Kelly não é melhor do que
Kelly apenas são ferramentas mais
específicas para cenários mais
específicos Não esquece uma das
possíveis resoluções para esse acrônimo
seria not only is Kelly é você não ficar
apenas restrito aos bancos relacionais E
é disso que trata a persistência
policopo não é sobre abandonar banco só
está completamente embora alguns análise
posso tá fazendo assim sobre compor uma
arquitetura com a melhor solução para
resolver o problema do seu cliente de
maneira insistente e ficar que
proporciona uma boa experiência para o
usuário é sobre isso que trata
persistência poligonal e é para isso que
a maioria das Ferramentas novas Kelly
surgiram
e para complementar os débitos deixados
pelo ekele a verdade para os bancos
nacionais estão aqui a provocação que eu
faça você é que sempre que você tiver um
problema que você entenda o problema
analise as opções você teria para
resolver esse problema e com base nessa
análise você escolha a ferramenta ideal
para resolver aquele problema
bom então não parta do pressuposto a
tecnologia para depois da não problema e
sim o oposto problema primeiro depois a
tecnologia eu vou dar aqui uma série de
exames para vocês que não são regras
absolutas mas estão algumas orientações
que podem te ajudar abrir a sua cabeça
para as possibilidades do nós Kelly você
tá vários exemplos tecnologias Nem todas
delas eu usei exaustivamente na hora que
a maioria nos de exaustivamente foram
muitas então a ideia realmente para te
dar opções para conforme a sua
necessidade você se aprofundar estudar
mais a respeito que eu vou mostrar aqui
o seu problema é performance esse
problema é o armazenamento tá precisando
de mais o banco talento o seu problema
são na cidade de ensino mais
inteligentes ou seu problema é que o
esquema rígido né atrapalha a
proximidade o sistema experiência para o
seu usuário anomização excessiva tá
fazendo problema tô aqui só alguns
exemplos problemas ele faz parte aqui
possíveis soluções porque para cada
problema existe
a primeira sugestão para você estudar
não tem um problema onde o esquema tem
que ser variável onde as informações são
mais espécies não são tão for marcadinha
quando você teria lá no tabela e coluna
no Banco Nacional ou você liga o volume
tão grande dados que os clareamentos
torna um problema sobrando relação atual
você pode ir por exemplo para família de
novo essa Kelly baseados em documento
onde mora expoente é sem sombra de
dúvida o mongo DB né que o banco atrás
dos documentos mais famoso do mundo ele
também detém o título de banco não
skelly mais popular do mundo segundo
tecflon no mundo bebê ao invés de
tabelas e colunas nos tem coleções de
documentos e esses documentos não ter
chave e valor assim como objetos de Ison
tem a gente tem os seus cliente isso
pode parecer bobo Pode parecer
exatamente essa coisa de trás colunas
mas não é porque no campo é uma
propriedade uma chave você pode ter uma
Rei Você pode ter outro documento então
você pode fazer essas combinações para
eu faria narinas objetos por exemplo né
congregações composições você consegue
trazer assim mesmo modelo o mongo DB
algumas pessoas que não tem experiência
não entendo de novo bebê Dizem que ele
não serve para a maioria dos casos
porque ele é um banco tem
relacionamentos a maioria das casas em
relacionamento isso é besteira de que
não entende como funciona o mongo DB na
verdade diversos tipos de
relacionamentos você tem mais Kelly
longo de você não precisa deles porque
Justamente que você pode fazer assim
alinhamento de documentos estudo
documentos ou esse ou esse Campos
multivalorados são as redes por exemplo
tem uma relação um para ele não
substitui por uma rei de tudo documentos
uma rede de valores uma relação um para
um muitas vezes só um subdocumento
alinhado e mesmo para relacionamentos
que você tenha que ter as entidades
separadas ele tem ferramenta também como
o Cap e outras em que você consegue
trazer ela fazer mais perto de John para
trazer elas juntas numa mesma consulta
Claro não Vou defender aqui que você
utilize mongo DB onde o racional é
melhor para si
é apenas você não cai nessa falácia AD
que um bebê não serve para maioria dos
casos eu não vou mentir não apaixonado
como BBB 2015 para cá eu cheguei em
vários projetos eu tô no próximo bebê
exatamente agora de uma grande é de TEC
e se você quiser saber mais sobre o nome
de bebê quiser aprender um bebê comigo
eu recomendo o meu livro focado em um
bebê o meu livro de mão também node.js
ou meu curso de mongo DB e node.js
qualquer uma das opções tenho certeza
que não lhe dá uma overview não
conhecendo de um bebê muito acima da
média do mercado além do Mundo DBZ tem
outras opções de banco sentado os
documentos como ela trouxa que é muito
famoso para parte de busca o reino de
bebê concorrente direto do mundo DB a
mais voltado para o mundo patinete e o
efeito de bebê que ele tem um clã que é
um muito grande em real-time data-base
Ou seja quando os dados mudaram no banco
no fronto informado automaticamente em
tempo real você tem que beber e foi
criado com isso em mente outro exemplo
de problemas tem muitas agregar
o sistema aquele ações também das
operações mais gostosas de fazer no
Banco Nacional gostei muito mais
inserções do que consulta assim sessões
a são impactadas diretamente pela
quantidade de índices e relacionamentos
é ficar que você tem sobrando racional
também tem dificuldade de descolamento
causa da quantidade absurda de dados
conferida a solução pode estar em bancos
baseados em coluna os bancos colunares
por exemplo como Cassandra muito
utilizada pelo Facebook na parte do
Messenger em bancos colunares ao invés
de você ter tabelas com colunas e linhas
você tem como se fosse tabelas onde cada
tabela agora tem apenas uma coluna por
isso colunares são todas as colunas de
um mesmo registros estão espalhadas no
banco com os possuem várias tabelas de
uma coluna só com Chaves ligando elas
isso permite agregações incrivelmente
mais rápidas do que bancos nacionais e
infecções até mesmo optei muito mais
assertivos e pontuais mais dois
a maneira colunar Big table do Google e
o leite laser Apache outro problema você
precisa de uma velocidade extremamente
rápida de acessa dado esses dados eles
são temporários tão efêmero você precisa
criar um indício transmitir velozes para
melhorar a performance uma base racional
por exemplo a solução para seu problema
pode trabalhar com não skelly baseado em
chave valor onde o maior expoente
intenção de dúvidas é um head muitíssimo
utilizado para construção de creche e
construção de índices de aplicações o
foco aqui é velocidade máxima então para
isso é tudo utilizado em memória até
Pode parecer coisas disco mas não é o
ponto chave aqui porque a única lição de
persistência mais ligado a dados
efêmeros dados temporários então se você
possa pensar Ah mas será que não é
melhor o texto aí na memória da minha
aplicação que faríamos e memória
funcionários e memória coisa do tipo não
precisa Reinventar a roda porque
como está muita ferramenta para lidar
com cidade de memória para fazer cast
inspiração de creche vários tipos de
dados tipos de coleções dados você até
pode fazer tudo isso de memória com meu
filho lá atrás Um Dos Parada mas não tem
necessidade o Harry está aí para isso
empolgante bastante no redes Você tem
uma chave que geralmente é uma Strike né
e o valor que pode ser stringhi para ser
uma lista um conjunto hash para ir lá
outra solução que também trabalha com
esse mesmo conceito ao menos Cash jamais
direcionado para creche mesmo raíz ele é
mais versátil que isso mas ele qat bem
focado em creche ele pode ser plugado em
inclusive em bancos com mais Kelly para
fazer esse Cash né já na caixa sem
precisar colocar o Régis na frente foi
seu tipo seus a princípio mais Kelly
para isso mas se você quiser aprender
Régis vale a pena aqui no canal tem um
vídeo que isso usar rede com node.js vou
deixar o Card aqui em cima e você
encontra o link na descrição também
avançando os Em relacionamentos muito
complexos não sei complexo
o momento e ela precisa de mais
informações daquele relacionamento tipo
quando você cria uma tabela meio nós
Kelly que tem vários Campos ali para
determinar aspectos daquele
relacionamento Pois é isso é lançamento
complexo se você faz consultas sobre os
relacionamentos não são apenas
constrange da sua aplicação eles são
cidadãos de primeira classe Você tem o
que a gente chama de grafo e grafos não
ficam muito bem em bancos relacionais
geralmente E aí que entram os nós Kelly
baseados em grafos onde o maior expoente
hoje é o Léo Ford Mas você construirá
uma coisa parecida com uma rede social
ou sistemas de recomendação qualquer
coisa em que você representaria baseado
num grafo onde as arestas que ligam os
vértices tem muita informação associada
a informação precisar conflito de
consulta né o Ford pode ser a ferramenta
ideal para você então aqui um exemplo de
rede social onde eu tenho usuários que
se conectam com outros usuários através
de relacionamento de amizade
é mas conectam com postagens através de
relacionamentos de publicação coisas que
você poderia mulá com o banco relacional
mas que não seria uma boa ideia
certamente principalmente por causa de
perfume mas também por questões da
modelagem e mesmo que não é adequada
para banco solucionar mais um problema
está fazendo coleta estatísticas
temporais você quer ser notificado no
tempo real né quando alcançar retilíneos
thresholds quando o Tom [ __ ] a vazão das
informações chegar no limite você quer
fazer agregações baseadas em tempo aí
entram os Não és Kelly time Spears não é
baseado na série de tempo Onde o
principal Player do mercado é o influxo
bebê tem imagina um Banco Real Time para
estatísticas e analíticas para você
poder fazer projeções análises
monitoramento alerta de dados
estatísticos e analíticos vários bancos
não relacionais inclusive um fluxo bebê
ele tenta trazer
as peças para Kelly vai para facilitar o
uso da aplicação para todos eles têm que
a gente faz bem própria aqui mas é muito
embaixo syntaxe Du PCB não é para fazer
uma em Sertão de um registro no banco
mas Luiz Então quer dizer que só tenho
vários desses problemas na aplicação eu
vou ter que usar vários bancos de dados
sim não sim você vai ter que usar vários
uma crença de persistência pois que eu
tô falando de preferência poliglota a
resolver o seu problema A melhor solução
para ele mas também você encontra no
mercado soluções de persistência
multimodelo claro que como tudo que se
propõe a ser mais Universal + multi
modelo mas canivete suíço não resolve né
do melhor jeito possível todas as
funções mas geralmente né perguntei no
vezes servindo ao propósito é de
resolver razoavelmente bem todo aqueles
problemas que se propõem Além disso uma
solução multimodelo pode ser
interessante para você também é traído
aquele tradicional
e não dá um passo além dele tem
abandonado completamente alguma coisa a
última de alguém famosa é o arame o bebê
né Ele é uma força multimodelo não és
Kelly first certo e se você está
buscando uma solução multimodelo SQL for
se você pode utilizar por exemplo oposto
de vez Kelly o mais Kelly eu acho que a
maioria dos bancos querem modernos têm
embutida funcionalidade de Não esquece
também nem que seja um tipo de dados de
Jason só atenção gente não cai uma
falácia de achar né que um tipo de dados
revisão no banco SQL é tão poderoso
quanto o banco inteiramente orientado a
documentos visão como um mongo DB para
diversos cenários sim o tipo de dados
revisão do posto mais Kelly outros
bancos nacionais vai resolver o seu
problema vai te atender mas se Jason é
um cidadão de primeira classe o teu
modelo de dados certamente o mundo de
bebê vai estar muito mais ferramentas
funções e operações para você poder
trabalhar com este
e pra encerrar eu queria fazer alguns
casos de uso para você pode aí que você
tem uma como o Walmart também começo de
varejo que atende desde Linha Branca até
A vestuário a eletrônicos beleza e
provar pão esquema muito diversificado
mas ao mesmo tempo eles também têm
esquemas mais rígidos com uma parte de
cliente pagamento cadastro no geral só
falta que eu consigo pensar que na
cabeça em dois grandes verticais dessa
aplicação morrendo de cal mais catálogo
de cores e uma vertical mais bizness
vamos dizer assim que a cobra se
pagamento o cliente atura coisa eu digo
então você pode ter toda parte que é de
extrema fixo de dados Mega sensíveis
onde o arco-íris tem que ser a regra
Você pode ter um banco SQL tradicional
uma tabela de clientes por exemplo agora
o que tem que ser mais flexível com
esquema livre muito Foco em consulta e
pouquíssimas escrita muitas vezes como o
próprio catálogo
e você pode utilizar o banco entrar
documento Mas você quiser melhorar a
performance tanto de um quanto de outro
você pode utilizar o armazenamento
chave-valor como um redes por exemplo
você coloca uma rede na frente das Kelly
ou na frente do tomar um bebê você vai
potencializar ainda mais o acesso rápido
à informação do usuário quer Imagina que
uma geladeira está em promoção Não deixe
de ficar buscando para geladeira por que
você fez uma propaganda na TV como tá
muita gente acessando a geladeira vai
parar em quer e vejo caindo toda grande
quantidade de fazer os lados a geladeira
não tinha pegado Cash que é muito mais
rápido e aqui no banco de dados seja ele
qual for outro exemplo né da temporários
como carrinho de compra que eu vou ficar
ali adicionando tirando itens o tempo
todo até de fato eu penso em ti esse
carrinho num secalt por exemplo e o
sistema de recomendação né quem comprou
isso também comprou aquilo ou se você
comprou isso você pode gostar disso de
esse tipo de relacionamento é muito
melhor representado e atendido por
bancos baseados em graças a Luiza como é
que foi gerenciadores Ban
E aí então por exemplo que o serviço
você pode também com serviço de
recomendações de produtos e que você
passa o nome dele produto para ele e ele
vai ver o seu banco na tela gráfica só
daquele com serviço né como que aquele e
de produtos relaciona com ele outros e
desde produto por exemplo para
desenvolver uma recomendação algumas
recomendações para o teu front lá no
outro me com serviço de checkout para o
seu Banco Nacional tradicional não me
com serviço de catálogo de produtos pode
ter um bebê Essa é uma das vantagens
trabalhar como você vê se você consegue
casaco presidência poliglota eu espero
ter aberto a sua cabeça para as
possibilidades dos bancos não
relacionados aqui a ideia né que você
Abandona as Kelly mas com cerveja que
tem mundo além das Kelly e que muitas
vezes a gente fica marretando nós querem
soluções para os quais ele não atende
bem simples assim e isso vale para
linguagem de programação também né de
todos os bancos que eu falei o que eu
mais entendo e conheço eu utilizei é o
mundo é bem e um banco incrível muitas
vezes subestimado por
quem não conhece com ele funciona se
você quer aprender mongo DB Eu recomendo
dar uma olhada em dois meus livros um
livro que é de programação web com
node.js que a gente Lisa mão do bebê com
o banco principal e outro livro
exclusivo de mongo DB para iniciantes
que pega aspectos de consulta comandos
configurações e tem exemplos em algumas
linguagem programação e mais do que isso
se você quiser ir a fundo realmente eu
tenho um curso de node JS mongodb e você
encontra o Inter na descrição do vídeo
onde ele constrói uma série de pequenos
projetos né aumentando de complexidade
ao longo do curso utilizando nude e um
longo que fala uma dupla aí excelente
porque assim táxi do mundo é JavaScript
igual assim táxi do Norte Beleza eu vou
ficando por aqui para ver sua audiência
antes de encerrar o vídeo eu peço
novamente que você deixe seu like se
inscreva no canal se não for inscrito
para que role mais vídeos como esse é
que ele espera tenha sido bacanas e
esclarecedores né para você assim como
esse conta
e quando eu conheci ele a primeira vez
tem um abraço e até a próxima valeu.

Olá, tudo bem?

O que você achou deste conteúdo? Conte nos comentários.

Assista também

WebSockets Client em 15 min! (exemplo em Node.js com Binance)

React Native CLI - Testando em smartphone Android - Aula Grátis #02

Dicas para currículo de devs

06 dicas para bots de criptomoedas

Sequelize em 15 minutos, direto ao ponto! (2021)

React Native CLI - Configurando no Windows - Aula Grátis #01