30
Bancos de Dados NoSQL – Uma nova abordagem para a utilização de algoritmos de Mineração de Dados J. Gabriel Lima [email protected] LINC - Laboratório de Inteligência Artificial

Bancos de dados no sql – uma nova abordagem

Embed Size (px)

DESCRIPTION

Apresentação feita no LINC (Laboratório de Inteligência Computacional) sobre BigData e NoSQL aplicado-se técnicas de mineração de dados

Citation preview

Page 1: Bancos de dados no sql – uma nova abordagem

Bancos de Dados NoSQL – Uma nova abordagem para a utilização de algoritmos

de Mineração de Dados

J. Gabriel [email protected]

LINC - Laboratório de Inteligência Artificial

Page 2: Bancos de dados no sql – uma nova abordagem

Agenda

• Introdução• Grande Vantagem• Um pouco sobre bancos RELACIONAIS• Limitações de Bancos de Dados relacionais• NoSQL: Uma grande mudança de perspectiva• NoSQL: Prós e Contras• Caso de Uso \o/ \o/ \o/• Expectativas e Trabalhos Futuros

2

Page 3: Bancos de dados no sql – uma nova abordagem

Agenda

• Introdução• Grande Vantagem• Um pouco sobre bancos RELACIONAIS• Limitações de Bancos de Dados relacionais• NoSQL: Uma grande mudança de perspectiva• NoSQL: Prós e Contras• Caso de Uso \o/ \o/ \o/• Expectativas e Trabalhos Futuros

3

Page 4: Bancos de dados no sql – uma nova abordagem

Introdução

• Organizações que coletam grandes quantidades de dados não estruturados estão usando cada vez mais bases de dados não relacionais, agora frequentemente chamados bancos de dados NoSQL (NOT ONLY SQL).

• Existem várias abordagens conceituais para bases de dados NoSQL, mas oque todos tem em comum é que são bases Não Relacionais

4

Page 5: Bancos de dados no sql – uma nova abordagem

Grande Vantagem

• Ao contrário de bancos de dados relacionais, eles lidam com dados não estruturados, tais como arquivos de texto, e-mail, multimídia e mídias sociais de forma eficiente.

5

Page 6: Bancos de dados no sql – uma nova abordagem

• Segundo Neal Leavitt, presidente da Leavitt Communications:

“Bases de dados NoSQL permitem uma melhor performance, o que é particularmente importante para aplicações com grandes quantidades de dados”

6

Page 7: Bancos de dados no sql – uma nova abordagem

Um pouco sobre bancos RELACIONAIS

• Edgar Codd, um ex-IBM, foi o responsável pela criação do modelo

de banco de dados relacional em 1970.

• Um banco de dados relacional é um conjunto de tabelas contendo os dados em “categorias” pré-definidas. • Cada tabela contém uma ou mais categorias de dados organizadas em

colunas. Cada linha contém uma instância única de dados para as categorias definidas pelas colunas.

• Bancos de dados relacionais funcionam melhor com dados estruturados, tais como um conjunto de números de vendas, que prontamente se encaixa em tabelas organizadas.

• E se eu precisar trabalhar com textos e imagens?!

7

Page 8: Bancos de dados no sql – uma nova abordagem

Vantagens de utilizar bancos de dados relacionais

• Uma grande característica dos bancos de dados relacionais é a

garantia de integridade dos dados.

8

Page 9: Bancos de dados no sql – uma nova abordagem

LIMITAÇÕES DE BANCOS DE DADOS REL ACIONAIS

• A estrutura de dados relacional em um banco de dados é pré-definido pelo “layout” das tabelas e os nomes fixos e tipos das colunas.

• Escalabilidade.• Complexidade• SQL

9

Page 10: Bancos de dados no sql – uma nova abordagem

NoSQL : Uma grande mudança de perspectiva

• Surgimento oficial do conceito NoSQL que foi definida em 1998

e reintroduzido em 2007

• Em resposta à crescente consciência das limitações de bancos de dados relacionais, empresas estão são cada vez mais utilizando a

proposta NoSQL.

10

Page 11: Bancos de dados no sql – uma nova abordagem

NoSQL : Uma grande mudança de perspectiva

• Um dos momentos-chave desta mudança ocorreu em 2007, quando a Amazon publicou um artigo que introduziu o seu sistema distribuído NoSQL chamado de Dynamo, para uso interno.

• A Amazon foi uma das primeiras grandes empresas para armazenar seus dados corporativos em um banco de dados não-relacional.

11

Page 12: Bancos de dados no sql – uma nova abordagem

• Existem 3 tipos mais populares de banco de dados NoSQL:

• Key-Value Store: • Como está explícito no próprio nome, consiste em um sistema de

armazenamento <chave,valor> em que as chaves são indexadas para futura recuperação.

• Ex. SimpleDB da Amazon é um WebService que fornece uma base de dados central com funções de indexação de informação e consulta em nuvem.

• Column-oriented databases:• Bancos de dados orientados à colunas contêm colunas de dados

extensíveis ao contrário dos bancos relacionais

• Ex. O Facebook criou o Cassandra, banco de dados de alto desempenho para atender a demanda dos usuários d sua rede social.

12

Page 13: Bancos de dados no sql – uma nova abordagem

• Document-based stores:

• Estes bancos de dados armazenam e organizam dados como coleções de documentos ao invés de tabelas estruturadas.

• Com estas bases de dados, os usuários podem adicionar qualquer número de campos de qualquer comprimento em um documento.

• A 10Gen suporta comercialmente e patrocina o desenvolvimento do MongoDB, um banco de dados baseado em documento construído para escalabilidade e facilidade de uso.

• Ex. Migração dos dados da base de segurança pública do Estado do Pará foi feita em 63 segundos...

13

Page 14: Bancos de dados no sql – uma nova abordagem

NoSQL baseado em Grafos• A vantagem de utilização do modelo baseado em grafos

fica bastante clara quando consultas complexas são exigidas pelo usuário.

• Comparado ao modelo relacional, que para estas situações pode ser muito custoso, o modelo orientado a grafos tem um ganho de performance, permitindo um melhor desempenho das aplicações.

14

Page 15: Bancos de dados no sql – uma nova abordagem

NoSQL: Prós e Contras

15

Page 16: Bancos de dados no sql – uma nova abordagem

Vantagens...

• Bancos de dados NoSQL processam dados mais rápido do que bancos relacionais.

• Não seguem o ACID (atomicidade, consistência, isolamento, durabilidade).

• Os desenvolvedores geralmente não têm ACID em Bancos de dados NoSQL, o que aumenta consideravelmente o desempenho das aplicações, mas isso pode causar problemas quando usado para aplicações que requerem grande precisão.

• Bancos de dados NoSQL também são muitas vezes mais rápido porque os seus modelos de dados são mais simples

16

Page 17: Bancos de dados no sql – uma nova abordagem

Vantagens...

• Caso o desenvolvedor precise realizar transações eu exijam ACID, ele pode implementar essas rotinas em NoSQL.

• Existem projetos (Google... ‘sempre é né?!’) que garantem características ACID para alguns sistemas NoSQL.

17

Page 18: Bancos de dados no sql – uma nova abordagem

Desvantagens....

•Vai depender muito de quem está desenvolvendo....

18

Page 19: Bancos de dados no sql – uma nova abordagem

Quem usa?!

19

Page 20: Bancos de dados no sql – uma nova abordagem

Caso de Uso...

AOL (America Online)• A empresa usa utiliza os bancos de dados: Hadoop e CouchDB, para

executar suas operações de segmentação de anúncios.

• Os anúncios são escolhidos baseados nas informações que a AOL tem sobre o usuário, juntamente com palpites sobre que anúncios seriam mais interessantes para o usuário.

O processo deve ser executado dentro de cerca de 40 milissegundos.

20

Page 21: Bancos de dados no sql – uma nova abordagem

Caso de Uso...

AOL (America Online)• A base de dados é volumosa • Os logs são mantidos em todas as ações dos usuários em cada servidor• Eles devem ser analisados e reagrupados para construir um perfil de cada

usuário.• Os corretores de anúncios também definem um conjunto complexo de regras

de quanto eles vão pagar por uma impressão de anúncio, ou quais os anúncios devem ser mostrados para cada usuários.

21

Page 22: Bancos de dados no sql – uma nova abordagem

Caso de Uso...

AOL (America Online)

• Esta atividade gera de 4 a 5 terabytes de dados por dia, gerando 600 petabytes de dados operacionais por mês. • O sistema mantém mais de 650 bilhões de chaves, incluindo um para

cada usuário, bem como chaves para lidar com outros aspectos de dados também.• O sistema deve reagir a 600.000 eventos por segundo.• Os logos do servidor e as fontes externas alimentam a base de dados

Petabyte (PB) 1 024 TB / 1 048 576 GB / 1 073 741 824 MB / 1 099 511 627 776 kB / 1 125 899 906 842 624 (250) Bytes

22

Page 23: Bancos de dados no sql – uma nova abordagem

• UM NOVO CENÁRIO... UMA NOVA PERSPECTIVA

23

Page 24: Bancos de dados no sql – uma nova abordagem

• Integrante do portfólio de produtos Big Data (bancos de dados com um tamanho excepcional) da Oracle.

• Gerenciar com facilidade imensos volumes de dados com esquemas dinâmicos, como dados de logs da web, de sensores e medidores inteligentes, coletados para personalização e mantidos pelas redes sociais.

• Altamente disponível e escalável, além de facilitar o armazenamento eficiente de dados em um formato simples e flexível

24

Page 25: Bancos de dados no sql – uma nova abordagem

• Com a expertise da Oracle na gestão de dados empresariais e o apoio de suporte líder do setor, o Oracle NoSQL Database é também mais fácil de instalar, configurar e gerenciar do que várias soluções da concorrência.

• Oracle Big Data Appliance, uma plataforma otimizada para executar o Oracle NoSQL Database e outros produtos de Big Data da Oracle

O Oracle Big Data Appliance será lançado no

primeiro trimestre de 2012

25

Page 26: Bancos de dados no sql – uma nova abordagem

O que nós temos à ver com isso?!

26

Page 27: Bancos de dados no sql – uma nova abordagem

27

Page 28: Bancos de dados no sql – uma nova abordagem

• Técnicas de DataMining são “essencialmente” ‘VELHAS’... • PENSAM DE FORMA ESTRUTURADA...• Ex...

28

Page 29: Bancos de dados no sql – uma nova abordagem

Considerações finais e Trabalhos Futuros...

29

Page 30: Bancos de dados no sql – uma nova abordagem

Bancos de Dados NoSQL – Uma nova abordagem para a utilização de algoritmos

de Mineração de Dados

J. Gabriel [email protected]

LINC - Laboratório de Inteligência Artificial