Guia Completo sobre Banco de Dados Distribuído
Classificado em Computação
Escrito em em português com um tamanho de 4,05 KB
Banco de Dados Distribuído
Objetivo
- Prover independência
- Manter transparência para o usuário, que "verá" um único banco de dados.
- Oferecer disponibilidade
Características
- Conexão de nós de BD através de Redes de computadores:
- Transmitir seus dados e comandos SQL entre sites.
- Inter-relação lógica entre os dados conectados:
- Ausência de homogeneidade entre os nós
- Os BD podem tanto estar perto ou longe
Vantagens
- Reflete a estrutura organizacional
- Autonomia local
- Maior disponibilidade
- Modularidade
- Economia de infraestrutura
Desvantagens
- Complexidade
- Maior custo
- Segurança
- Difícil manter integridade
Tipos de BD Distribuído
- Homogêneo: BD iguais em todos os nós, abordagem top-down, faz modelagem já pensando em um ambiente distribuído.
- Heterogêneo: BD diferente em todos os nós, abordagem bottom-up, verifica as modelagens atuais e tenta se adaptar.
Formas de Distribuição
Replicação
Existe uma cópia em cada um dos nós, tornando as bases de dados iguais.
Tipos de Replicação:
- Síncrona: Cada transação é concluída quando todos os nós confirmam.
- Assíncrona: O nó principal executa a transação enviando confirmação ao solicitante e então encaminha a transação aos demais nós.
Fragmentação
Os dados são divididos em todo o sistema, fazendo uma base de dados diferente em cada nó. (Fragmentação vertical e horizontal)
Big Data
Capacidade de processar e armazenar grandes quantidades de dados. O Big Data é baseado em 5 V's:
- Volume: Cuidar em como processar todo esse volume.
- Variedade: Se importa em lidar com as variedades dos tipos de dados.
- Velocidade: Reagir rápido o suficiente para lidar com a velocidade.
- Veracidade: Ser mais resistente a ruídos e anormalidades de dados.
- Valor: Acessar esta quantidade exorbitante de dados.
HADOOP
Framework Java de computação distribuída, faz a distribuição em cluster e processa grande volume de dados, é um projeto da Apache.
HDFS (Hadoop Distributed File System)
É um módulo de sistema de arquivos Hadoop, responsável por gerenciar a distribuição de arquivos entre nós. Faz a divisão de dados em pequenos pedaços e distribui entre os clusters. Utiliza algoritmo (MapReduce) que mapeia os dados nos diversos clusters.
MapReduce
Utilizado para processar grande volume de dados em paralelo, faz a divisão de seu trabalho em um conjunto de tarefas independentes, criado inicialmente pelo Google.
Spark
É um conjunto de algoritmos criado pela Apache Foundation para processamento de grande quantidade de dados em alta velocidade. Um projeto 100% open source.
BD NoSQL
Orientados a Colunas
Modelo mais parecido com BD Relacional, com suas estruturas parecidas com uma tabela. Contém armazenamento em colunas.
Orientados a Chave-Valor
Modelo com estrutura similar a um dicionário. Todo dado armazenado possuirá uma chave que o identifica.
Orientado a Grafo
Modelo com estrutura de dados compostas por vértices e arestas. As Arestas interligam os vértices e Os Vértices representam os dados. E as suas arestas representam seus relacionamentos.
Orientados a Documentos
Modelo com estrutura de documentos. Normalmente estes documentos são JSON ou XML. É o modelo NoSQL mais comum a ser utilizado atualmente.
Benefícios de usar um NoSQL
- Flexibilidade
- Escalabilidade
- Disponibilidade
- Open Source
- Baixo Custo Operacional
- Funcionalidades especiais