SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Entenda como as grandes empresas
utilizam múltiplas abordagens de
armazenamento de dados de forma
eficiente.
OLÁ!
Eu sou Leonardo Farias
Analista de sistemas, professor e Mestrando na UFRPE.
CSM, MSP, MTA
leoroberto@gmail.com
@profleoroberto
facebook.com/tleofarias
1.
Relacionais vs NoSQL
Conceitos e um pouco de história
BDs Relacionais
🔑
Confiáveis
Consolidados
Linguágem
Padrão/DOC
Transações
ACID
Armazenam
Muitos dados
BDs NoSQL
Livre de
Modelagem
Performático
Integração
Ling. Prog.
Boa Execução
Em Clusters
Escalável e
Consistênte
Open Source
Conjunto de dados (Interação Unidade)
Agrupados como devem ser acessados
Facilitam o Gerenciamento em clusters
Utilizado pelos BDS: chave e valor,
documentos e família de colunas
Agregados
“Geralmente quando falamos em
NoSQL, o que normalmente
pensamos?
Banco de dados
de Documentos
Banco de dados
de Chave e Valor
Banco de dados
de Grafos
Banco de dados
de Família de Coluna
Banco de Dados Chave e Valor
É uma Tabela hash simples.
Acesso é feito por meio da chave primária.
Altamente escalável
🔑
🔑
🔑
🔑
Casos apropriados para uso
Armazenando informações de sessão.
Perfis de usuários, preferências.
Dados de carrinhos de compras.
Quando não usar
Relacionamento entre dados.
Transações com múltiplas operações.
Consulta por dados nos valores.
Operações por conjuntos.
Banco de Dados Chave e Valor🔑
Banco de Documentos
Armazena documentos (XML, JSON, etc)
Consulta dados dentro dos atributos.
Agregados / Visões materializadas
Casos apropriados para uso
Registro de eventos (log)
Gerenciamento de Conteúdo (CMS),
plataformas de blog
Análises web ou em tempo real (analytics)
Aplicativos de e-commerce (Esquemas
flexíveis para produtos e pedidos)
Quando não usar
Transações complexas que abranjam
diferentes operações(em multiplos
documentos)
Consultas em estruturas agregadas
variáveis.
Banco de Dados de Documentos
Banco de Dados Família de Colunas
Armazena em linha, pares de chave e valor
Grupos de dados acessados em conjunto
Mantém dados relacionados juntos
👪
🔑
🔑
🔑
Casos apropriados para uso
Registro de eventos (log)
Gerenciamento de Conteúdo (CMS),
plataformas de blog
Quando não usar
Quando necessário uso de transações
ACID (consultas com SUM e AVG).
Alto custo para alterar/mudar as
consultas CQL
Banco de Dados Família de Coluna👪
Banco de Dados Grafos
Possibilita encontrar padrões
Podemos percorrer como quiser
Dados interpretados de várias formas
Significância direcional arestas
👪
👪
👪
👪
Casos apropriados para uso
Dados conectados (Qualquer domínio rico
em links)
Roteamento, envio e serviços baseados
em localização
Mecanismos de recomendações
Quando não usar
Atualizações em lote (grande número de
entidades atualizadas de uma vez)
Banco de Dados de Grafos
Não existe a
melhor
ferramenta!
Qual o melhor Banco de Dados?
A melhor
ferramenta
para o
problema!
Cada BD tem sua característica
+1 BD pode
ser a solução
Depende do
cenário um
BD pode ser
melhor que o
outro
BDs
Relacionais
devem ser
considerados
“
Martin Fowler
present
“
Martin Fowler
Uso de várias tecnologias de armazenamento de dados,
escolhidas com base na maneira como os dados estão
sendo usados por aplicativos individuais.
Caso de Uso
- Parte mais pesada da App
- Produtos possuem atributos diferentes
- Consultas rápidas
BD de Documentos
- Eliminar joins e inner joins
- Consultas mais rápidas
(agregados)
- Estrutura elástica
- Sessão temporária (cód produto)
- Deixa de existir no final
- Não precisa persistir o dado
- Dados simples, podem ficam na
memória.
BD Chave-valor
- Não gera I/O disco
- Mantem os dados na memória
- ID da sessão e um dicionário
(produtos e qtds)
Catálogo de
Produto Carrinho de
Compras
Recomendações
De Produtos
Dados dos clientes e
Pagamentos
- Recomendações de outros
baseado em outros usuários e
outros parâmetros.
- “Seus amigos compraram esse
produto”
- Parte mais crítica e sensível dos dados
- Possui muitos relacionamentos
BD de Grafos
- Comportamentos são
armazenados e servirão de
indicação posterior.
BD Relacional
- Amplamente utilizado
- Geralmente homologados
e certificados.
Dicas de como escolher o BD
Dica 1
Dividir para conquistar... Selecione
cenários mais comuns, dependentes
de desempenho e que não parecem
se adaptar ao modelo atual.
Dica 2
Observe os recursos atuais e veja
como o uso dos dados é apropriado.
Dica 3
Faça experiências criando um
software, experimente os BDs (BDs
relacionais devem ser
considerados)!
Dica 4
A única forma pela qual você pode
avaliar o desempenho
apropriadamente é criando algo,
executando e testando!
Dica 5
Você precisará criar cargas e
volumes de dados representativos.
Dica 6
Se necessário, permaneça com o
padrão.
Obrigado!
leoroberto@gmail.com
Vocês podem me encontrar em:
@profleoroberto
facebook.com/tleofarias

Mais conteúdo relacionado

Mais procurados

Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Rodrigo Valerio
 
Data warehousing - Técnicas e procedimentos
Data warehousing - Técnicas e procedimentosData warehousing - Técnicas e procedimentos
Data warehousing - Técnicas e procedimentosMarcos Pessoa
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
Registering and adding to your metadata at Crossref - in Portuguese
Registering and adding to your metadata at Crossref - in PortugueseRegistering and adding to your metadata at Crossref - in Portuguese
Registering and adding to your metadata at Crossref - in PortugueseCrossref
 
Introdução ao Data Warehouse
Introdução ao Data WarehouseIntrodução ao Data Warehouse
Introdução ao Data WarehouseMessias Batista
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoAugusto Giles
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dadosFelipe Correia
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...Renato Groff
 

Mais procurados (17)

Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)
 
SQL Saturday SP - SQL Server 2019 Big Data Clusters
SQL Saturday SP - SQL Server 2019 Big Data ClustersSQL Saturday SP - SQL Server 2019 Big Data Clusters
SQL Saturday SP - SQL Server 2019 Big Data Clusters
 
Data warehousing - Técnicas e procedimentos
Data warehousing - Técnicas e procedimentosData warehousing - Técnicas e procedimentos
Data warehousing - Técnicas e procedimentos
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
ILM com PostgreSQL
ILM com PostgreSQLILM com PostgreSQL
ILM com PostgreSQL
 
Nosql
NosqlNosql
Nosql
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
Registering and adding to your metadata at Crossref - in Portuguese
Registering and adding to your metadata at Crossref - in PortugueseRegistering and adding to your metadata at Crossref - in Portuguese
Registering and adding to your metadata at Crossref - in Portuguese
 
SQL Maniacs - SQL Server 2019 Big Data Clusters
SQL Maniacs - SQL Server 2019 Big Data ClustersSQL Maniacs - SQL Server 2019 Big Data Clusters
SQL Maniacs - SQL Server 2019 Big Data Clusters
 
Introdução ao Data Warehouse
Introdução ao Data WarehouseIntrodução ao Data Warehouse
Introdução ao Data Warehouse
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas Apresentação
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dados
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Big Data
Big DataBig Data
Big Data
 
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
Dicas para uma maior performance em APIs REST - Tech Meetup - Itaú Unibanco -...
 

Semelhante a Persitência Poliglota TDC Recife 2019

Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...
Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...
Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...Leonardo Roberto Marinho Farias
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Finaljcaroso
 
FireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBFireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBAlan Glei
 
Bancos de Dados Pós-Relacionais
Bancos de Dados Pós-RelacionaisBancos de Dados Pós-Relacionais
Bancos de Dados Pós-Relacionaiselliando dias
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows AzureAlessandro Binhara
 
Bdii aula01 apresentacao
Bdii aula01 apresentacaoBdii aula01 apresentacao
Bdii aula01 apresentacaosamuel1562314
 
Banco de Dados NoSql - JornalJava
Banco de Dados NoSql - JornalJavaBanco de Dados NoSql - JornalJava
Banco de Dados NoSql - JornalJavajornaljava
 
Ecosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoftEcosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoftDennes Torres
 
Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dadosHélio Martins
 
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 20144 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014WANDERSON JONER
 
Master Data Management & Virtualização de Dados em SOA
Master Data Management & Virtualização de Dados em SOAMaster Data Management & Virtualização de Dados em SOA
Master Data Management & Virtualização de Dados em SOARicardo Ferreira
 
Ver
VerVer
Vercsmp
 

Semelhante a Persitência Poliglota TDC Recife 2019 (20)

Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...
Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...
Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamen...
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Final
 
FireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBFireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDB
 
Bancos de Dados Pós-Relacionais
Bancos de Dados Pós-RelacionaisBancos de Dados Pós-Relacionais
Bancos de Dados Pós-Relacionais
 
No sql o_que_e_isso.key
No sql o_que_e_isso.keyNo sql o_que_e_isso.key
No sql o_que_e_isso.key
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows Azure
 
Texto complementar
Texto complementarTexto complementar
Texto complementar
 
Bdii aula01 apresentacao
Bdii aula01 apresentacaoBdii aula01 apresentacao
Bdii aula01 apresentacao
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
Banco de Dados NoSql - JornalJava
Banco de Dados NoSql - JornalJavaBanco de Dados NoSql - JornalJava
Banco de Dados NoSql - JornalJava
 
Ecosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoftEcosistema de data warehouse com ferramentas microsoft
Ecosistema de data warehouse com ferramentas microsoft
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dados
 
1_intro.ppt
1_intro.ppt1_intro.ppt
1_intro.ppt
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 20144 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014
 
6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna
 
Master Data Management & Virtualização de Dados em SOA
Master Data Management & Virtualização de Dados em SOAMaster Data Management & Virtualização de Dados em SOA
Master Data Management & Virtualização de Dados em SOA
 
Ver
VerVer
Ver
 

Persitência Poliglota TDC Recife 2019

  • 1. Entenda como as grandes empresas utilizam múltiplas abordagens de armazenamento de dados de forma eficiente.
  • 2. OLÁ! Eu sou Leonardo Farias Analista de sistemas, professor e Mestrando na UFRPE. CSM, MSP, MTA leoroberto@gmail.com @profleoroberto facebook.com/tleofarias
  • 3. 1. Relacionais vs NoSQL Conceitos e um pouco de história
  • 5. BDs NoSQL Livre de Modelagem Performático Integração Ling. Prog. Boa Execução Em Clusters Escalável e Consistênte Open Source
  • 6. Conjunto de dados (Interação Unidade) Agrupados como devem ser acessados Facilitam o Gerenciamento em clusters Utilizado pelos BDS: chave e valor, documentos e família de colunas Agregados
  • 7. “Geralmente quando falamos em NoSQL, o que normalmente pensamos?
  • 8. Banco de dados de Documentos Banco de dados de Chave e Valor Banco de dados de Grafos Banco de dados de Família de Coluna
  • 9. Banco de Dados Chave e Valor É uma Tabela hash simples. Acesso é feito por meio da chave primária. Altamente escalável 🔑 🔑 🔑 🔑
  • 10. Casos apropriados para uso Armazenando informações de sessão. Perfis de usuários, preferências. Dados de carrinhos de compras. Quando não usar Relacionamento entre dados. Transações com múltiplas operações. Consulta por dados nos valores. Operações por conjuntos. Banco de Dados Chave e Valor🔑
  • 11. Banco de Documentos Armazena documentos (XML, JSON, etc) Consulta dados dentro dos atributos. Agregados / Visões materializadas
  • 12. Casos apropriados para uso Registro de eventos (log) Gerenciamento de Conteúdo (CMS), plataformas de blog Análises web ou em tempo real (analytics) Aplicativos de e-commerce (Esquemas flexíveis para produtos e pedidos) Quando não usar Transações complexas que abranjam diferentes operações(em multiplos documentos) Consultas em estruturas agregadas variáveis. Banco de Dados de Documentos
  • 13. Banco de Dados Família de Colunas Armazena em linha, pares de chave e valor Grupos de dados acessados em conjunto Mantém dados relacionados juntos 👪 🔑 🔑 🔑
  • 14. Casos apropriados para uso Registro de eventos (log) Gerenciamento de Conteúdo (CMS), plataformas de blog Quando não usar Quando necessário uso de transações ACID (consultas com SUM e AVG). Alto custo para alterar/mudar as consultas CQL Banco de Dados Família de Coluna👪
  • 15. Banco de Dados Grafos Possibilita encontrar padrões Podemos percorrer como quiser Dados interpretados de várias formas Significância direcional arestas 👪 👪 👪 👪
  • 16. Casos apropriados para uso Dados conectados (Qualquer domínio rico em links) Roteamento, envio e serviços baseados em localização Mecanismos de recomendações Quando não usar Atualizações em lote (grande número de entidades atualizadas de uma vez) Banco de Dados de Grafos
  • 17. Não existe a melhor ferramenta! Qual o melhor Banco de Dados?
  • 19. Cada BD tem sua característica +1 BD pode ser a solução Depende do cenário um BD pode ser melhor que o outro BDs Relacionais devem ser considerados
  • 21. “ Martin Fowler Uso de várias tecnologias de armazenamento de dados, escolhidas com base na maneira como os dados estão sendo usados por aplicativos individuais.
  • 22.
  • 23. Caso de Uso - Parte mais pesada da App - Produtos possuem atributos diferentes - Consultas rápidas BD de Documentos - Eliminar joins e inner joins - Consultas mais rápidas (agregados) - Estrutura elástica - Sessão temporária (cód produto) - Deixa de existir no final - Não precisa persistir o dado - Dados simples, podem ficam na memória. BD Chave-valor - Não gera I/O disco - Mantem os dados na memória - ID da sessão e um dicionário (produtos e qtds) Catálogo de Produto Carrinho de Compras Recomendações De Produtos Dados dos clientes e Pagamentos - Recomendações de outros baseado em outros usuários e outros parâmetros. - “Seus amigos compraram esse produto” - Parte mais crítica e sensível dos dados - Possui muitos relacionamentos BD de Grafos - Comportamentos são armazenados e servirão de indicação posterior. BD Relacional - Amplamente utilizado - Geralmente homologados e certificados.
  • 24. Dicas de como escolher o BD Dica 1 Dividir para conquistar... Selecione cenários mais comuns, dependentes de desempenho e que não parecem se adaptar ao modelo atual. Dica 2 Observe os recursos atuais e veja como o uso dos dados é apropriado. Dica 3 Faça experiências criando um software, experimente os BDs (BDs relacionais devem ser considerados)! Dica 4 A única forma pela qual você pode avaliar o desempenho apropriadamente é criando algo, executando e testando! Dica 5 Você precisará criar cargas e volumes de dados representativos. Dica 6 Se necessário, permaneça com o padrão.
  • 25. Obrigado! leoroberto@gmail.com Vocês podem me encontrar em: @profleoroberto facebook.com/tleofarias