0% acharam este documento útil (0 voto)
33 visualizações547 páginas

Escalabilidade em Sistemas Distribuídos

Enviado por

Bráulio Cruz
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
33 visualizações547 páginas

Escalabilidade em Sistemas Distribuídos

Enviado por

Bráulio Cruz
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Infraestrutura de Dados

e Arquitetura Escalável
Capítulo 1. Fundamentos de Arquiteturas Escaláveis

PROF. GUSTAVO AGUILAR


Fundamentos de Arquiteturas Escaláveis
CAPÍTULO 1. AULA 1.1. ESCALABILIDADE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ O Que É Escalabilidade?

❑ Escalabilidade Vertical.

❑ Escalabilidade Horizontal.

❑ Elasticidade.
O Que É Escalabilidade?
▪ Capacidade de escalar o ambiente, ou seja, de adicionar mais
recursos computacionais ao ambiente;

✓ Poder de processamento (CPU)

✓ Cache (memória RAM)

✓ Capacidade de armazenamento (disco)

✓ Velocidade de transmissão (network)

✓ Nós de processamento (worker node)

✓ Nós de armazenamento (data node)

▪ Pode ser feita de forma transparente ou não;

▪ Pode ser vertical ou horizontal.


Horizontal x Vertical
Escalabilidade Vertical
Escalabilidade Vertical
▪ Adicionar mais recursos (CPU, RAM, etc.) aos integrantes do
ambiente;

▪ Não se altera a quantidade de integrantes do ambiente.


Escalabilidade Horizontal
Escalabilidade Horizontal
▪ Adicionar novos integrantes ao ambiente;

▪ Altera-se a quantidade de integrantes do ambiente.


Elasticidade
▪ Capacidade de aumentar e reduzir rapidamente os recursos
computacionais de um ambiente;

▪ Requer escalabilidade vertical / horizontal.


Computação Elástica
▪ Para atender às exigências dinâmicas, sem se preocupar com o
planejamento de capacidade e picos de utilização.
Próxima Aula
❑Introdução à Sistemas Distribuídos.
Fundamentos de Arquiteturas Escaláveis
CAPÍTULO 1. AULA 1.2. INTRODUÇÃO À SISTEMAS DISTRIBUÍDOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ O Que É Sistema Distribuído?

❑ Macroevolução da Computação.

❑ Motivação de Sistemas Distribuídos.

❑ Desvantagens.

❑ Macroevolução.
O Que É Sistema Distribuído?
▪ “Um sistema constituído por um conjunto de computadores
independentes, visto pelos utilizadores do sistema como sendo um
sistema coerente e único.”

(Tanenbaum - Sistemas Distribuídos: Princípios e Paradigmas)

Sistema Centralizado

Sistema Distribuído
O Que É Sistema Distribuído?
▪ “Um sistema distribuído é aquele no qual os componentes
localizados em computadores interligados em rede se comunicam
e coordenam suas ações apenas passando mensagens”.

(Coulouris – Sistemas Distribuídos: Conceitos e Projetos)


Macroevolução da Computação
Motivações
▪ Baixo custo de aquisição / aprovisionamento de novos recursos
computacionais;

▪ Distribuição geográfica das organizações;

▪ Necessidade de maior desempenho dos sistemas;

▪ Demanda crescente por escalabilidade horizontal;

▪ “Dividir para conquistar”;

▪ Necessidade de mais disponibilidade e confiabilidade;

▪ Necessidade de PCS / PCN;

▪ Eliminação de SPOF.
SPOF
▪ Single Point Of Failure: ponto único de falha.
– Local no sistema que, caso falhe, provoca a falha de todo o sistema.

– É possível eliminar?
SPOF

Banco de Dados
Servidor de Aplicação

Banco de Dados
SPOF
▪ É possível eliminar 100%

Datacenter em Porto Alegre


Desvantagens
▪ Maior custo de desenvolvimento / manutenção;

▪ Mais difícil de fazer a gestão, comparando com sist. centralizados;

▪ Controle de transações distribuídas é mais complexo;

▪ Medidas de segurança são mais numerosas e mais difíceis de se


aplicar;

▪ Maior quantidade de pontos de falha, devido à presença de vários


componentes interconectados via rede.
Desvantagens

Banco de Dados
Servidor de Aplicação

Banco de Dados
Macroevolução de Sist. Distribuídos
Próxima Aula
❑Características de Sistemas Distribuídos.
Fundamentos de Arquiteturas Escaláveis
CAPÍTULO 1. AULA 1.3. CARACTERÍSTICAS DE SISTEMAS DISTRIBUÍDOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Características de Sistemas Distribuídos.


Características de Sist. Distribuídos
• Conectividade • Interoperabilidade
• Disponibilidade • Segurança
• Desempenho • Usabilidade
• Tolerância à falhas • Escalabilidade
• Heterogeneidade • Transparência
Conectividade
▪ Característica voltada para a capacidade do sistema se manter
conectado aos recursos disponíveis;

▪ Desafio: computação móvel + computação ubíqua.


Disponibilidade
▪ Indica a capacidade de um sistema de resistir às falhas de
hardware, software e/ou energia;

▪ Maximizar o uptime ➔ reduzir o downtime.


– Os “9s” de disponibilidade.

Disponibilidade (%) Downtime /ano Downtime /mês

95% 18 dias 6:00:00 1 dia 12:00:00

96% 14 dias 14:24:00 1 dia 4:48:00

97% 10 dias 22:48:00 0 dias 21:36:00

98% 7 dias 7:12:00 0 dias 14:24:00

99% 3 dias 15:36:00 0 dias 7:12:00

99,90% 0 dias 8:45:35.99 0 dias 0:43:11.99

99,99% 0 dias 0:52:33.60 0 dias 0:04:19.20

99,999% 0 dias 0:05:15.36 0 dias 0:00:25.92


Desempenho
▪ Tempo que o ecossistema leva para executar uma tarefa.
Tolerância à Falhas
▪ Propriedade que permite que sistemas continuem a operar
adequadamente, mesmo após falha(s) em algum de seus
componentes;

▪ Tolerância à Falhas ✘ Alta Disponibilidade.


Heterogeneidade
▪ Sistemas distribuídos normalmente são construídos a partir de uma
variedade de redes, sistemas operacionais, hardwares e linguagens
de programação distintas;

▪ Protocolos de comunicação e middlewares para mascarar essa


diferença, tornando o sistema homogêneo.
Interoperabilidade
▪ Demonstra a capacidade que o sistema possui de interagir e
comunicar com outros sistemas / mecanismos de forma
transparente e simples;

▪ Abrange a capacidade que o ecossistema tem de integrar


tecnologias heterogêneas e apresentá-las de forma homogênea
para utilização.
Armadilha !!!
▪ Heterogeneidade + Interoperabilidade: “faca de 2 gumes” ➔ acúmulo de tecnologias.

Resumo:
Consultar Cadastro Cliente ▪ Passa por 5 sistemas
▪ 2 milhões de requisições por dia ▪ 6 VIPs de F5
▪ 500 milissegundos (tempo médio) ▪ 17 servidores
▪ 1 mainframe
▪ 7 bancos de dados acessados
Segurança
▪ Garantir acesso aos recursos apenas a usuários / sistemas
devidamente identificados e autorizados, em qualquer ponto do
sistema distribuído.
Usabilidade
▪ É a capacidade que um sistema dispõe de tornar a sua utilização
simples, objetiva e transparente à qualquer complexidade.
Escalabilidade
▪ Adicionar recursos computacionais de forma mais transparente
possível para o usuário / aplicação.
Próxima Aula
❑Transparência em Sistemas Distribuídos.
Fundamentos de Arquiteturas Escaláveis
CAPÍTULO 1. AULA 1.4. TRANSPARÊNCIA EM SISTEMAS DISTRIBUÍDOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Transparência em Sistemas Distribuídos.

❑ Tipos de Transparências.
Transparência
▪ Ocultação, para o usuário final ou para o desenvolvedor, da
separação dos componentes em um sistema distribuído;
– Sistema percebido como um todo, em vez de como uma coleção de
componentes independentes e isolados.

– De acesso – De persistência

– De localização – De concorrência

– De falha – De realocação / migração

– De replicação
Transparência de Acesso
▪ Esconde os detalhes dos protocolos e configurações de rede que
controlam a comunicação entre as diversas máquinas;

▪ Oculta diferenças entre arquiteturas de máquinas.


Transparência de Localização
▪ Esconde a localização dos recursos no sistema distribuído, de
forma que os usuários não são capazes de dizer a localização física
do recurso.
Transparência de Replicação
▪ Esconde o fato de que múltiplas cópias do mesmo recurso podem
estar disponíveis no sistema;

▪ Permite que várias instâncias de recursos sejam usadas para


aumentar a confiabilidade e o desempenho;

▪ Deve mascarar o conhecimento das réplicas por parte dos usuários;

▪ Consistência dos dados é ponto de atenção;

▪ Implica na transparência de localização.


Transparência de Replicação
Transparência de Falha
▪ Falhas no sistema não são percebidas pelo usuário;
• Provê alta disponibilidade.

▪ Transparência de Falha ✘ Tolerância à Falhas.


Transparência de Persistência
▪ Meio de armazenamento (disco, memória, etc.) e detalhes físicos da
persistências e durabilidade dos dados devem ser transparentes
para o usuário.

Desempenho do
meio de
armazenamento não
deve impactar na
experiência do
usuário.

IBM 305 RAMAC (1956)


5 MB
14x8 polegadas
Transparência de Concorrência
▪ Permite a execução concorrente de múltiplas operações sobre o
mesmo conjunto de recursos, sem causar interferência entre elas;

▪ Mascara a coordenação desse processo e os detalhes.

Processamento
Concorrente

Processamento
Sequencial
Transparência de Concorrência
▪ Deve garantir a consistência:
▪ Uso de transações distribuídas;

▪ Protocolo Two-Phase Commit.


Transparência de Realocação
▪ Escondem a movimentação de recursos em um sistema distribuído,
mascarando a movimentação de um objeto de um ponto a outro do
sistema;

▪ Recursos podem migrar de uma localidade para outra, por questões


de desempenho, segurança, etc.;

▪ Deve ser feita de forma automática pelo sistema;

▪ Deve manter o nome do recurso que o usuário conhece;

▪ Deve garantir a continuidade de comunicação.


Transparência de Realocação

Clients
Windows Services com
Cluster Failover

Public Network
Private Network
SQL Server SQL Server SQL Server SQL Server
Instance 1 Instance 1 Instance 1 Instance 1

Node 1 Node 2 Node 3 Node 4


Shared Storage
(SAN/SMB)
Próxima Aula
❑Cargas de Trabalho.
Fundamentos de Arquiteturas Escaláveis
CAPÍTULO 1. AULA 1.5. CARGAS DE TRABALHO

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Carga de Trabalho.

❑ Tipos de Workloads.

❑ Workloads x Escalabilidade.
Carga de Trabalho
▪ Workload;

▪ Quantidade de processamento que determinados recursos


computacionais recebem para ser executado em um determinado
momento;

▪ Definida por três propriedades:


– Tempo de Resposta: o tempo entre uma solicitação e uma resposta;

– Taxa de Transferência: quanto trabalho é realizado durante um


período de tempo;

– Tipo de Workload: forma e frequência como a carga de trabalho é


executada.
Tipos de Workloads
▪ Existem várias classificações, mas na área de dados, a mais
comum é:

– TRANSACIONAL: baseado em transações (unidade de trabalho


pequena e discreta) e também conhecido como OLTP (Online
Transactional Processing);

– ANALÍTICO: voltado para cenários de análises de dados oriundos de


de diversas fontes e também conhecido OLAP (Online Analytical
Processing).
Workload OLAP
Workload OLAP
▪ Pode acontecer de duas formas: BATCH e STREAMING.

– BATCH: dados são coletados em um grupo, e todo o grupo é então


processado em um momento futuro como um lote.
Workload OLAP
▪ STREAMING: cada novo dado é processado quando chega.
Batch x Streaming
▪ Escopo dos dados:
– Batch ➔ pode processar todos os dados do conjunto de dados.

– Streaming ➔ normalmente só tem acesso aos dados mais recentes


recebidos, ou dentro de uma janela de tempo (os últimos 30
segundos, por exemplo).

▪ Tamanho dos dados:


– Batch ➔ lida com grandes conjuntos de dados de forma eficiente.

– Streaming ➔ destinado a registros individuais ou micro lotes


compostos de poucos registros.
Batch x Streaming
▪ Desempenho:
– Batch ➔ a latência é normalmente de algumas horas.

– Streaming ➔ o processamento normalmente ocorre imediatamente,


com latência da ordem de segundos ou milissegundos.

▪ Análise:
– Batch ➔ análises complexas.

– Streaming ➔ respostas simples, agregações ou cálculos, como média


e desvio padrão.
Workloads x Escalabilidade
▪ BATCH: escalabilidade programada.

Capacidade Capacidade
Normal Normal
Janela de Processamento Batch
Workloads x Escalabilidade
▪ STREAMING e OLTP: escalabilidade sobre demanda.
Próxima Aula
❑Projetos de Arquiteturas Escaláveis de Dados.
Fundamentos de Arquiteturas Escaláveis
CAPÍTULO 1. AULA 1.6. PROJETOS DE ARQUITETURAS ESCALÁVEIS DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Projeto de Arquiteturas Escaláveis de Dados.

❑ Planejamento de Capacidade.

❑ Ferramentas para Desenho do Projeto.


Projeto de Arquit. Escalável de Dados
✓ Percentual de Disponibilidade e o SLA (Service Level Agreement)

✓ Tipos de Workloads (atuais / futuros)

✓ Tipos de Dados Armazenados

✓ Volumetria (usuários, dados, requisições, etc.)

✓ Infraestrutura de Armazenamento (+rede, +hardware, etc.)

✓ Tipo(s) de Escalabilidade

✓ Planejamento da Capacidade
Planejamento de Capacidade
Ferramentas para Desenho

https://www.microsoft.com/pt-br/microsoft-365/visio/flowchart-software
Ferramentas para Desenho

https://www.lucidchart.com/
Ferramentas para Desenho

https://online.visual-paradigm.com/diagrams/
Ferramentas para Desenho

https://www.cloudcraft.co/
Ferramentas para Desenho

https://aws.amazon.com/pt/solutions/implementations/aws-perspective/
Próxima Aula
❑Capítulo 2. Bancos de Dados Distribuídos.
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 2. Bancos de Dados Distribuídos

PROF. GUSTAVO AGUILAR


Bancos de Dados Distribuídos
CAPÍTULO 2. AULA 2.1. INTRODUÇÃO À BANCOS DE DADOS DISTRIBUÍDOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Revisão de Conceitos.

❑ Antepassados.

❑ Banco de Dados Distribuído.

❑ SGBDD.

❑ Tipos de Sistemas de BDDs.


Banco de Dados
Banco de Dados

“É uma coleção de dados inter-relacionados, representando informações


sobre um domínio específico.”
(KORTH, 1994, p.1)

“É uma coleção de dados relacionados.”


(ELMASRI; NAVATHE, 2011, p.4) Banco de
Dados Manual

Banco de Dados Digital


Sistema Ger. de Banco de Dados

“É uma coleção de programas que


permite aos usuários criar e manter
um banco de dados.”

“Um sistema de software de


propósito geral que facilita os
processos de definição construção,
manipulação e compartilhamento de
bancos de dados entre vários
usuários e aplicações.”
(ELMASRI; NAVATHE, 2011, p.4)
Sistema Ger. de Banco de Dados

✓ Sistemas Gerenciadores de
Bancos de Dados Relacional (SGBDR)

✓ Sistemas Gerenciadores de
Bancos de Dados NOSQL

✓ Sistemas Gerenciadores de
Bancos de Dados NewSQL
Sistema de Banco de Dados

Ecossistema formado por um SGBD, o banco de dados e os


programas que permitem à um usuário ou máquina, manipular
e consultar dados.
Antepassado: SGBD Centralizado
▪ Front-end único;
▪ Gerenciamento de dados centralizado;
▪ Processamento centralizado de consultas e transações;
▪ Único ponto de falha;
▪ Componentes físicos únicos ou compartilhados (cluster);
▪ Escalabilidade apenas vertical.
Antepassado: SGBD Centralizado

60’s SGBD Hierárquico / Rede


▪ Registros eram armazenados com ponteiros entre
eles;
▪ Queries tinham que processar uma tupla por vez,
percorrendo a estrutura de armazenamento
(linguagens procedurais);
▪ Não havia independência entre os schemas lógico e
físico;
▪ Muito esforço de programação para usá-los;
▪ CODASYL, IMS.
Antepassado: SGBD Centralizado

70’s SGBD Relacional


▪ Teoria de conjuntos;
▪ Registros armazenados de forma tabular;
▪ Linguagem de alto nível (declarativa);
▪ Queries independentes do meio físico de
armazenamento;
▪ Independência de schemas;
▪ Menor esforço de manutenção ou alteração dos dados;
▪ Ingres, System R.
Antepassado: SGBD Centralizado

80’s Crescimento SGBDR


▪ Linguagem SQL se torna um padrão mundial;
▪ Maturidade dos bancos de dados baseados em SQL;
▪ Avanço das tecnologias de rede de computadores;
▪ Domínio de sistemas rodando em mainframe;
▪ Benefícios de armazenamento de código compilado
no banco (com regras de negócio) começam a ser
percebidos;
▪ DB2, PARADOX, Oracle, Sybase, Dbase.
Antepassado: SGBD Centralizado

90’s Domínio SGBDR


▪ Proliferação da “baixa” plataforma;
▪ Surgimento da Internet (WWW);
▪ Aumento considerável do volume de dados armazenados;
▪ Aumento da complexidade das queries;
▪ Necessidade de SGBDDs;
▪ Access, Firebird, Interbase, MySQL, Oracle, PostgreSQL,
SQL Server.
Banco de Dados Distribuídos

“Uma coleção de múltiplos bancos de dados


logicamente inter-relacionados e distribuídos
por uma rede de computadores”.
(ELMASRI; NAVATHE)

Pode ser:
• Relacional
• NoSQL
• NewSQL
• ...
SGBDD
Sistema Gerenciador de Banco de Dados Distribuídos

“Sistema de software que gerencia um banco de dados distribuído enquanto


torna a distribuição transparente para o usuário.”
(ELMASRI;NAVATHE, 2011, p.579)

Topologia Percepção do Usuário


SGBDD

2008’s Crescimento SGBDDs NOSQL


▪ “Boom” de Informações ➔ era IOT;
▪ Paradigma Escalabilidade x ACID
▪ Regras de negócio voltam para a camada de aplicação;
▪ Novos players:
o Cassandra
o MongoDB, CouchDB
o DynamoDB
o Hbase
o MemcacheDB
o Neo4j, OrientDB, etc.
http://nosql-database.org/
SGBDD

2010’s Nova Geração de SGBDDs: NewSQL


▪ SGBDD Relacional que procura fornecer o mesmo
desempenho escalável de um SGBDD NOSQL;
▪ Propriedades ACID;
▪ Novos players:
o Amazon Aurora, VoltDB
o CockroachDB, CosmosDB,
o Google Spanner, etc..
▪ Novas engines otimizadas:
o MySQL Cluster,
o SQL Server Column Store, etc.
Tipos de Sistemas de BDD

HOMOGÊNEO HETEROGÊNEO

• SGBDs com software idêntico: • SGBDs com software diferente:


• Mesmo fornecedor; • Fornecedor diferente; ou
• Mesma versão; • Versões diferentes; ou
• Mesma edição. • Edições diferentes.

• Usuários / clients usam o mesmo • Usuários / clients precisam usar


software para acessar os BDDs. softwares diferentes para acessar
os BDDs.
Próxima Aula
❑As Doze Regras de um SGBDD.
Bancos de Dados Distribuídos
CAPÍTULO 2. AULA 2.2. AS DOZE REGRAS DE UM SGBDD

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ As Doze Regras de um SGBDD.

❑ O Que Não É um SGBDD.


12 Regras de um SGBDD
Em 1987, Christopher J. Date enumerou 12 “regras” básicas que um
Sistema Gerenciador de Banco de Dados Distribuídos completo
deveria possuir:

Na prática, se resume a cada nó ser


uma instância do SGBDD, cada uma
mantendo o controle sobre seus
próprios bancos de dados.
12 Regras de um SGBDD

➢ Se um nó ficar indisponível, a continuidade das operações no ambiente deve ser garantida.

➢ Rápidas o bastante para não afetarem o funcionamento do sistema.


12 Regras de um SGBDD
12 Regras de um SGBDD

Percepção do Usuário

➢ As réplicas de dados devem ser mantidas sincronizadas automaticamente


pelo SGBDD.
O Que Não É SGBDD
Um sistema gerenciador de
banco de dados que não

Sistema com o Banco de Dados Duplicado Fisicamente


tem a capacidade nativa
de distribuir ou replicar o
banco de dados, não
pode ser considerado um
sistema gerenciador de
banco de dados distribuído, SGBD Centralizado
apesar do banco de dados
do sistema poder estar
duplicado fisicamente.
BCV / Backup

SGBD Centralizado
O Que Não É SGBDD
Banco de Dados Paralelo (MPP) não é sinônimo de BD distribuído!

✓ Engine única.
✓ Maioria dos casos o hardware é
único (nodes são lógicos).
✓ Rede: barramento entre os nós.
O Que Não É SGBDD
Clients

Public Network
Private Network
SQL Server SQL Server SQL Server SQL Server
Instance 1 Instance 1 Instance 1 Instance 1

Node 1 Node 2 Node 3 Node 4


Shared Storage
(SAN/SMB)

SQL Server Failover Cluster


Próxima Aula
❑Teorema de CAP, Propriedades ACID e BASE.
Bancos de Dados Distribuídos
CAPÍTULO 2. AULA 2.3. TEOREMA DE CAP, PROPRIEDADES ACID E BASE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Propriedades ACID.

❑ Teorema de CAP.

❑ Propriedades BASE.
Transação
▪ Uma sequência de instruções executadas no SGBD.

Transação 2
Transação3

Transação 1
Propriedades ACID
▪ Propriedades das transações em bancos de dados relacionais;

▪ Garantem a integridade e consistência dos dados relacionais.


Propriedades ACID
▪ ATOMICIDADE
– A transação será executada totalmente ou não será executada;
• Transação atômica.

– Requer que as transações sejam “tudo ou nada” (“all or nothing”);


• Se uma parte da transação falhar, a transação inteira deve falhar;

• O estado do banco de dados permanecer inalterado.


Propriedades ACID

▪ CONSISTÊNCIA
– Qualquer transação levará o banco de dados de um estado válido a
outro;

– Em caso de sucesso, a transação cria um novo estado válido dos dados;

– Em caso de falha, retorna todos os dados ao estado imediatamente


anterior ao início da transação.
Propriedades ACID
▪ ISOLAMENTO
– Execuções concorrentes (em paralelo) de transações resultam em um
estado do banco de dados que seria obtido caso as transações fossem
executadas serialmente;

– Uma transação em andamento, mas ainda não


validada, permanece isolada de qualquer outra
operação;

➢ Garante que a transação não sofra


interferência de nenhuma outra transação
concorrente.
Propriedades ACID
▪ DURABILIDADE: uma vez que uma transação tenha sido
confirmada, ela permanecerá assim, mesmo no caso de um reinício
do sistema, crash, falta de energia ou erros posteriores.
Teorema de CAP
▪ Criado por Eric Brewer em 2000;

▪ Três principais requisitos sistêmicos em um ambiente distribuído:


– Consistency, Availability, Partition tolerance;

– Consistência: todos veem os mesmos dados;

– Disponibilidade: o sistema está disponível quando solicitado,


independentemente de ter ocorrido uma falha em alguns dos servidores;

– Tolerância à Partição: perda de conexão entre os nós ou perda de dados


em um determinado nó não causam impacto.

▪ Sistema distribuído pode garantir apenas dois desses requisitos.


Teorema de CAP
▪ Nenhum sistema distribuído está protegido contra falhas de rede:
– Portanto, a partição (falha) geralmente deve ser tolerada.

▪ Podendo haver falhas (partições), são dadas duas opções:


– Tolerância a Falhas + Consistência;

– Tolerância a Falhas + Disponibilidade.


Propriedades BASE
▪ Modelo alternativo de consistência:
– Basically Available: haverá uma resposta a
qualquer solicitação, mesmo que de falha;

– Soft state: o estado do sistema pode mudar


ao longo do tempo, mesmo em momentos
sem entrada de dados ➔ necessário para a
consistência eventual;

– Eventual consistency: dados propagados


para todos os nós, assincronamente.

“BASE: An Acid Alternative” - Dan Pritchett


https://queue.acm.org/detail.cfm?id=1394128
Propriedades BASE
Propriedades BASE
Próxima Aula
❑Técnicas de Distribuição de Dados.
Bancos de Dados Distribuídos
CAPÍTULO 2. AULA 2.4. TÉCNICAS DE DISTRIBUIÇÃO DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Replicação de Dados.

❑ Particionamento de Dados.
Replicação de Dados
▪ Cópias (réplicas) sendo armazenadas em mais de um local;

▪ Não são backups tradicionais (backup database / dump / export);


Replicação de Dados
▪ Muito utilizada para ambientes de Disaster Recovery (DR);

▪ Utilizadas também para separação de workloads distintos;

▪ SGBDD é quem gerencia a replicação:

✓Disponibilidade;

✓Consistência;

✓Integridade;

✓Confiabilidade dos dados.

▪ Transparência da replicação e da localização dos dados;

▪ Não se considera BDs replicados por softwares de terceiros.


Particionamento de Dados
▪ Também conhecida como fragmentação (sharding);
Particionamento de Dados
▪ Muito utilizada em ambientes que requerem escalabilidade horizontal;

▪ Usa-se um hash ou faixa de valor para a distribuição;

▪ SGBDD é quem gerencia a distribuição:


✓ Disponibilidade, consistência, integridade e confiabilidade dos dados;

✓ Transparência da distribuição e da localização dos dados;

✓ Resolução de conflitos.

▪ Dados particionados pela aplicação + SGBD centralizado:


✓ Esses são considerados sistemas de banco de dados paralelos (MPP);

✓ Tabelas particionadas em um mesmo SGBD não são SGBDDs.


Técnicas de Distribuição
▪ Tipos de Replicação de Dados
– Quanto à Consistência:
✓ Assíncrona

✓ Síncrona

– Quanto à Topologia
✓ Hierárquica

✓ Peer-To-Peer

▪ Tipos de Particionamento de Dados


✓ Horizontal

✓ Vertical

✓ Misto
Próxima Aula
❑Tipos de Replicação de Dados.
Bancos de Dados Distribuídos
CAPÍTULO 2. AULA 2.5. TIPOS DE REPLICAÇÃO DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Replicação Assíncrona.

❑ Replicação Síncrona.

❑ Replicação Hierárquica.

❑ Replicação Peer-To-Peer.

❑ Arquiteturas com Replicação de Dados.


Tipos de Replicação de Dados
▪ Quanto à Consistência:

✓Assíncrona

✓Síncrona

▪ Quanto à Topologia:

✓Hierárquica

✓Peer-To-Peer
Replicação Assíncrona
▪ Transação é concluída em um nó e replicada para os demais:
✓ Nó de origem da transação não aguarda a confirmação dos demais nós
do ambiente;

✓ Nó de origem garante a persistência da transação ocorrida nele;

✓ SGBDD garante a persistência da transação distribuída em todos os nós.

▪ Mais performática para o usuário;

▪ Consistência eventual:
▪ Pode ocorrer atraso na replicação.
Replicação Síncrona
▪ Transação só é concluída após todos os nós confirmarem o
commit:
✓ Nó de origem da transação aguarda a confirmação dos demais nós do
ambiente.

▪ Menos performática para o usuário;

▪ Consistência total:
✓ Em qualquer momento, o usuário enxerga o mesmo conjunto de dados
em qualquer um dos nós.
Replicação Hierárquica
▪ Também conhecida como single-master ou master-slave;

▪ Topologia com um nó principal (replica primária / master) e


N nós secundários (slaves);

▪ Operações de escrita (insert / update / delete) somente no


nó primário;

▪ Replicação do log com as transações: síncrona ou


assíncrona;

▪ Operação de leitura na(s) réplica(s) secundária(s): depende


do SGBDD.
Replicação Hierárquica

Client
Replicação Peer-To-Peer (P2P)
▪ Também conhecida como multi-master ou update-anywhere;
✓ Topologia circular, cruzada, etc.

▪ Operações de escrita (insert / update / delete) em todos os nós.


Arquitet. com Replicação de Dados
▪ Oracle Materialized View
– Read only / Updatable* (requer o MVLog);

– Dblink para outros SGBDs.

Hierárquico
Tipo? Peer-to-Peer*
• Assíncrono
• Síncrono
Arquitet. com Replicação de Dados

▪ Oracle Data Guard


– Replicação física dos dados;

– Escrita em 1 nó apenas;

– Standby em recovery.

Tipo?
Hierárquico
• Assíncrono
• Síncrono
Arquitet. com Replicação de Dados

▪ Oracle Active Data Guard


– Escrita apenas no servidor primário;

– Replicação das transações;

– Servidor secundário read-only.

Tipo?
Hierárquico
• Assíncrono
• Síncrono
Arquitet. com Replicação de Dados
▪ MySQL Replication
– Replicação do binary log;

– Master-slave:
• Escrita apenas no servidor primário;

• Servidor secundário read-only.

– Master-master:
• Escrita em todos os nós; Tipo?
• Arquitetura anel: Hierárquico
Peer-to-Peer
– Um servidor só pode ser master • Assíncrono
• Síncrono
de um slave e slave de um master;

– Indisponibilidade nos pontos do anel(!).


Replicação - Conclusão
▪ Escalar horizontalmente o workload de leitura:
– Replicação hierárquica.

▪ Escalar horizontalmente o workload de leitura e escrita:


– Replicação peer-to-peer.

▪ Escalar verticalmente:
– Todos tipos de replicação.

▪ Ambiente escalável com consistência eventual:


– Replicação assíncrona.

▪ Ambiente escalável com consistência total:


– Replicação síncrona.
Próxima Aula
❑Tipos de Particionamento de Dados.
Bancos de Dados Distribuídos
CAPÍTULO 2. AULA 2.6. TIPOS DE PARTICIONAMENTO DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Particionamento Horizontal.

❑ Particionamento Vertical.

❑ Particionamento Misto.

❑ Arquiteturas com Particionamento de Dados.


Particionamento Horizontal
▪ Cada fragmento (shard) consiste em um subconjunto de linhas (tuplas);

▪ É definido pela operação de restrição (filtro):


✓ Hash (hash key);

✓ Faixa de valores.

▪ Muito utilizado em conjunto com a distribuição geográfica dos dados.


Particionamento Vertical
▪ Cada fragmento (shard) consiste em um subconjunto de
atributos (colunas);

▪ É definido pela operação de projeção (select):


▪ Afinidade dos atributos;

▪ Confidencialidade dos dados;

▪ Armazenamento;

▪ Localização.

▪ Atributo(s) da chave primária

e atributos obrigatórios devem

ser replicados em todos shards.


Particionamento Misto
▪ Utilização das técnicas de particionamento horizontal e vertical juntas;

▪ É definido pela operação de restrição e pela de projeção;

▪ Muito comum de ser usado em grandes conjuntos de dados com


diferentes tipos de dados, como por exemplo, CLOB, BLOB e XML.
Arquiteturas com Particionamento
▪ MySQL Cluster (Carrier Grade Edition - CGE)
– Leitura e escrita em todos nós;

– Escalabilidade: horizontal e vertical;

– NDB Cluster;

– Usa arquitetura de sharding;

– Alta disponibilidade:
• Replicação dos shards.

Peer-to-Peer
Tipo? • Assíncrono
Horizontal
Arquiteturas com Particionamento

▪ Oracle Golden Gate


– Replica / Distribui:
• Banco inteiro / tabela inteira / linhas / colunas.

– Diversas fontes e origem de dados:


• Replicação / Distribuição lógica;

• Backup de negócio;

• Homogêneo: bidirecional.

Tipo?
Hierárquico Horizontal
Peer-to-Peer Vertical
• Assíncrono
• Síncrono
Particionamento - Conclusão
▪ Escalar verticalmente?

▪ Escalar horizontalmente o workload de leitura?

▪ Escalar horizontalmente o workload de escrita?

▪ Ambiente escalável com consistência eventual?

▪ Ambiente escalável com consistência total?


Próxima Aula
❑Capítulo 3. Arquiteturas Escaláveis de Dados no SQL Server.
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 3. Arquiteturas Escaláveis de Dados no SQL Server

PROF. GUSTAVO AGUILAR


Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.1. INTRODUÇÃO AO SQL SERVER

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview do SQL Server.

❑ Produtos da Família SQL Server.

❑ Conceitos e Macroarquitetura.
Introdução ao SQL Server
▪ Microsoft SQL Server é um sistema gerenciador de banco de dados relacional,
desenvolvido pela Microsoft.
– Será usado para aplicarmos na prática os conceitos e instruções da Linguagem SQL.

▪ Primeira versão (1.0): lançada em 1989. Versão Ano de Lançamento


2019 2019
– Para sistema operacional OS/2. 2017 2017
2016 2016
2014 2014
▪ Suporte para Windows: a partir da 4.2.1. 2012 2012
2008 R2 2010
▪ Suporte para Linux desde a versão 2017 2008 2008
2005 2005
2000 2000
▪ Versão atual: 2019. 7.0 1998
6.5 1996
6.0 1995
4.2.1 1994
4.2 1992
1.1 1991
1.0 1989
Introdução ao SQL Server
Produtos da Família SQL Server

Database Engine Analytical Engine Report Engine ETL Engine

Bancos OLTP Bancos OLAP Pastas Catálogos


Cluster Failover Cubos Relatórios Pacotes
Snapshot Tabelas Fato / Dashboards Extração
Database Mirror Dimensão Assinaturas Transformação
Replicação Carga de Dados
Always On

SQL SSAS SSRS SSIS


Produtos da Família SQL Server
Conceitos e Macroarquitetura

Servidor
Instância
Banco de Dados / Pasta / Catálogo
Conceitos e Macroarquitetura
▪ Um servidor pode conter 1 ou mais Instâncias SQL/SSAS/SSRS
– Da mesma versão ou não.

– SSIS não é multi-instância, apenas multiversão.

▪ As instâncias são diferentes entre si


– Conjunto próprio de bancos/pastas/catálogos.

▪ Uma Instância pode conter vários BDs


– Até 32.767 bancos de dados.

▪ Os bancos são diferentes entre si


– Cada um possui seu conjunto de tabelas e usuários.
T-SQL
▪ Transact SQL (T-SQL): implementação da Microsoft, no SQL Server,
para a Linguagem SQL ISO / IEC 9075.

▪ Linguagem declarativa.

▪ Possui todas as opções e instruções existentes no padrão ISO


– Variáveis, loop, controle de fluxo e decisões, funções, etc.

– Possui opções e instruções que não estão no padrão.

– Algumas instruções com sintaxe diferente do padrão e/ou de outros SGBDs.


Segurança de Autenticação

SQL Authentication Windows


Authentication

Login interno do SQL Login externo ao SQL


Nome do login e senha Nome do login e senha
são armazenados no SQL. são armazenados no SO/AD.
Necessário informar login e Quando já autenticado no
senha para fazer o logon. SO, necessário informar
somente login para fazer o
logon.

*Não disponível para SSAS SSRS.


Próxima Aula
❑Instalação do SQL Server.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.2. INSTALAÇÃO DO SQL SERVER

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Instalação do SQL Server.


Instalação do SQL Server
Próxima Aula
❑Ferramentas Client.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.3. FERRAMENTAS CLIENT

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ SQL Server Management Studio.

❑ Azure Data Studio.

❑ Scripts, Projetos e Soluções no SSMS.


SQL Server Management Studio
▪ Interface gráfica (client) oficial da Microsoft para se conectar e interagir com o SQL
Server.

▪ Também chamado de SSMS.


https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-2019

▪ Permite administrar o SQL Server e os bancos de dados.

▪ Possui editor de queries e vários Wizards.

▪ Construtor de modelos de dados (diagramas) ➔ integrado com o BD.

▪ Relatórios padrões pré-definidos / customizados.

▪ Outros clients: HeidiSQL, Toad for SQL Server.


SQL Server Management Studio
Azure Data Studio
▪ Interface gráfica (client) da Microsoft para se conectar e interagir com o SQL Server e
outras plataformas de dados.

▪ Também chamado de ADS.

▪ Permite administrar o SQL Server e os bancos de dados.

▪ Possui editor de queries, mas bem menos Wizards que o SSMS.

▪ Não possui construtor de modelos de dados (diagramas).

▪ Trabalha com o conceito de Jupyter Notebooks


Azure Data Studio Notebook
Azure Data Studio Notebook
Scripts, Projetos e Soluções
▪ Comandos T-SQL podem ser salvos em um arquivo texto: script.

▪ Normalmente com a extensão “.sql”.


▪ No SSMS, isso é feito no menu
File ou nos botões de salvar
da barra de ferramentas.
▪ Scripts podem ser abertos de
dentro do SSMS.
▪ Scripts podem ser organizados
em Projetos e Soluções
– Uma solução pode conter vários
projetos, scripts e conexões
Próxima Aula
❑Instalação e Overview do Management Studio.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.4. INSTALAÇÃO E OVERVIEW DO MANAGEMENT STUDIO

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Instalação do SQL Server Management Studio.

❑ Overview da Utilização do SSMS.


Instalação e Overview do
Management Studio
Próxima Aula
❑Instalação e Overview do Azure Data Studio.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.5. INSTALAÇÃO E OVERVIEW DO AZURE DATA STUDIO

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Instalação do Azure Data Studio.

❑ Overview da Utilização do Azure Data Studio.


Instalação e Overview do Azure
Data Studio
Próxima Aula
❑ Queries Distribuídas.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.6. QUERY DISTRIBUÍDA

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Query Distribuída.

❑ Linked Server.

❑ Demonstração.
Query Distribuída

▪ Consulta que executa em mais de uma instância de banco de dados;

▪ Comunicação entre as instância é feita usando protocolos de rede;

▪ Transparência da localização física dos dados


Query Distribuída

▪ Possível também realizar


transações distribuídas
– Protocolo TWO PHASE COMMIT.
Linked Server
Recurso tradicional para se executar
query distribuída.

O Linked Server permite que uma


instância SQL Server leia dados de
fontes de dados remotas e
executem comandos nos servidores
de banco de dados remotos.
Linked Server
▪ Pode ser configurado para
acessar dados que estejam no
Microsoft Access, no Excel e
atém mesmo na nuvem, como o
Azure CosmosDB.

▪ Funciona com qualquer provider


OLE DB que implemente as
interfaces de OLE DB exigidas;

▪ Provider OLE DB / ODBC de


terceiro deve estar instalado
previamente.
Linked Server
▪ Requer uma configuração de
segurança para mapeamento de
logins locais e remotos;

▪ Não aceita grupos no


mapeamento: usar* opção “Be
made using the login's current
security context”;

▪ Linked server público*: opção “Be


made using this security context:”.
Linked Server

Consultas Distribuídas
4PN
➢ Uso com Four-Part-Name:

▪ Cláusula FROM: LinkedServer.Banco.Schema.Objeto;

▪ Permite joins entre objetos de locais remotos distintos;

▪ Menos performáticos na maioria dos casos;


▪ Filtros são feitos localmente: maior tráfego de dados na rede;

▪ Menos flexíveis.
Linked Server

Consultas Distribuídas
OQ
➢ Uso com OpenQuery / Execute AT

▪ Cláusula FROM:
▪ OPENQUERY (LinkedServerName, ‘Query’);
▪ EXECUTE (‘Query’) AT [LinkedName]

▪ Não permite joins entre objetos de locais remotos distintos no mesmo


Openquery / Execute AT;

▪ Mais performáticos: retorna somente o resultado já filtrado.

▪ Mais flexíveis: envia o comando deixando o parse a cargo do remoto;

▪ Execute AT requer RPC no Linked Server.


Linked Server

Transações Distribuídas
4PN
➢ Uso com Four-Part-Name:

▪ Cláusula INTO: LinkedServerName.Banco.Schema.Objeto;

▪ Requer provider com Nested Transaction (transações aninhadas);

▪ Menos performático.
Linked Server

Transações Distribuídas
OQ
➢ Uso com OpenQuery / Execute AT

▪ Cláusula: EXECUTE (‘Query’) AT [LinkedName]

▪ Mais performático;

▪ Mais flexíveis: envia o comando deixando o parse a cargo do servidor


remoto.
Demonstração: Linked Server
Próxima Aula
❑ Polybase.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.7. POLYBASE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ External Data Source.

❑ External File Format.

❑ External Table.

❑ Demonstração.
External Data Source
External File Format
External Table
Usando o Polybase
Próxima Aula
❑ Partitioned View.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.8. PARTITIONED VIEW

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Visão (View).

❑ Partitioned View.

❑ Demonstração.
Visão (View)
▪ É uma query armazenada, criada como um objeto no banco de dados;

▪ Não armazena dados e são vistas como tabelas virtuais dinâmicas


para exibir dados específicos de uma ou mais tabelas / views;

▪ É definida por uma query no momento da sua criação, que especifica


exatamente os dados que a view irá retornar;

▪ Criadas com o comando CREATE VIEW da classe DDL;

▪ Alteradas com o comando ALTER VIEW;

▪ Excluídas através do comando DROP VIEW.


Visão (View)
Visão (View)
▪ Podem participar de joins, agrupamentos, como se fossem tabelas.

▪ Podem conter filtros na query de criação da view, mas podem ser


filtradas em tempo de execução também.

▪ Query de criação da view não pode contar a cláusula ORDER BY.


– Pode-se usar a cláusula ORDER BY na query que utilizará a view para
retornar os dados ➔ externamente à view.
Visão (View)

CREATE VIEW VW_Clientes_Australia AS


SELECT CustomerID, AccountNumber
FROM Sales.Customer
WHERE TerritoryID IN (
SELECT TerritoryID
FROM Sales.SalesTerritory
WHERE Name ='Australia'
);
Visão (View)
▪ Vantagens do Uso de Views
– Simplificam os relacionamentos complexos entre tabelas, mostrando
apenas os dados relevantes ➔ transparência e comodidade para usuários;

– Fornecem segurança, permitindo que os usuários vejam apenas as


informações (colunas / linhas) que estão autorizados a ver ➔ não é
necessário conceder permissões diretamente nas tabelas base da view;

– Fornecem uma camada de abstração, além de compatibilidade com


versões anteriores do schema físico, caso as tabelas base mudem;

– Evitam problemas de performance causado por filtros indevidos ou


ausentes nas queries que consultam diretamente as tabelas base da view;

– Fornecem transparência de acesso e localização em bancos de dados


distribuídos (horizontalmente / verticalmente / misto).
Partitioned View
▪ Homogêneo ou Heterogêneo ➔ acessa outros bancos via linked
server;
✓ Sistema de Bancos de Dados Federados.

▪ Updatable (atualizável) ➔ algumas restrições.

▪ Filtro por linhas e/ou colunas;

▪ Podem ser indexadas (!).

Tipo?
Horizontal
Vertical
Partitioned View
Próxima Aula
❑Log Shipping e SQL Server Replication.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.9. LOG SHIPPING E SQL SERVER REPLICATION

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Log Shipping.

❑ SQL Server Replication.

❑ Demonstração.
Log Shipping
▪ Escrita apenas no servidor primário;

▪ Assíncrono;

▪ Backup / restore de logs:


▪ Requer local compartilhado.

▪ Servidor secundário em 2 modos:


▪ No recovery mode: sem leituras;

▪ Standby mode: permite leituras.

▪ Ideal é que as versões do SQL sejam iguais:


▪ Versão do secundário pode ser superior, mas em caso
de failover, não tem failback.
Tipo? Hierárquico
• Assíncrono
SQL Server Replication
▪ Replica / Distribui: banco inteiro / tabela inteira / linhas / colunas;

▪ Snapshot, Transacional;

▪ Merge: escrita em qualquer nó;

▪ Publisher: SQL e Oracle;

▪ Subscriber: SQL, Oracle e DB2.

Hierárquico / Peer-to-Peer
• Assíncrono
Tipo? Horizontal / Vertical
Log Shipping e SQL Server
Replication
Próxima Aula
❑Database Mirroring e AlwaysOn Availability Groups.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.10. DATABASE MIRRORING E ALWAYSON AVAILABILITY GROUPS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Database Mirroring.

❑ AlwaysOn Availability Groups.


Database Mirroring
▪ Replicação das transações existentes no transaction log;

▪ Não requer pasta compartilhada;

▪ Escrita apenas no servidor primário;

▪ Servidor secundário em recovery mode (não acessível parra leituras);

▪ Replicação Assíncrona ou Síncrona;


✓ Assíncrona

▪ Mais performática;

▪ Apenas failover manual.


Database Mirroring
▪ Replicação Assíncrona ou Síncrona;
✓ Síncrona

▪ Mais segura;

▪ Menos performática;

▪ Failover manual;

▪ Failover automático:

✓ Requer witness.
Database Mirroring

*Síncrono com failover automático


Database Mirroring
▪ Muito usado para disaster recovery / alta disponibilidade / PCNs;

▪ Ideal é que as versões de SQL sejam iguais:


✓ Versão do mirror pode ser maior, mas em caso de failover, não tem failback.

Hierárquico
• Assíncrono
Tipo? • Síncrono
AlwaysOn Availability Groups
▪ Replicação das transações:
▪ Modo Síncrono ➔ mais seguro;

▪ Modo Assíncrono ➔ mais performático.

▪ Escrita apenas no servidor primário;

▪ Servidor secundário permite leitura:


✓ Backup no secundário.

▪ Listener: transparência de localização.

Tipo? Hierárquico Read-write Read


• Assíncrono AG Listener
• Síncrono
AlwaysOn Availability Groups

▪ Distributed Availability Groups (DAG): a partir do SQL 2016;

▪ Escrita somente na réplica primária do AG primário;

▪ Listener não é único e não há failover automático dos AGs entre


sites.

Tipo?
Hierárquico
• Assíncrono
Próxima Aula
❑Demonstração de Database Mirroring.
Arquiteturas Escaláveis de Dados
no SQL Server
CAPÍTULO 3. AULA 3.11. DEMONSTRAÇÃO DE DATABASE MIRRORING

PROF. GUSTAVO AGUILAR


Database Mirroring
Próxima Aula
❑Capítulo 4. Virtualização e Containers.
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 4. Virtualização e Containers

PROF. GUSTAVO AGUILAR


Virtualização e Container
CAPÍTULO 4. AULA 4.1. SERVIDOR VIRTUAL X CONTAINER

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Servidor Virtual.

❑ Container.
Servidor Virtual
▪ Virtualização é uma tecnologia que permite criar serviços de TI usando
recursos vinculados à um determinado hardware.
Servidor Virtual
▪ A virtualização depende de software para simular a funcionalidade do
hardware e criar um servidor virtual:
– Hypervisor.

▪ Os recursos do ambiente físico (CPU, RAM, storage, etc.) são


particionados, pelo hypervisor, conforme a necessidade dos servidores
virtuais.
Servidor Virtual
▪ Os usuários interagem e executam as operações computacionais dentro
do servidor virtual;

▪ O servidor virtual funciona como um único arquivo de dados (extensão


.VMDK, por exemplo);

▪ O arquivo com o servidor virtual pode ser transferido de um computador


para outro, aberto e funcionar da mesma forma.
Servidor Virtual
Servidor Virtual
Benefícios da Virtualização
▪ Independência de hardware: provisionamento ou migração de
qualquer máquina virtual para qualquer servidor físico;

▪ Facilidade para mover e copiar máquinas virtuais;

▪ Execução de diversos sistemas operacionais em uma máquina física;

▪ Divisão de recursos de hardware entre várias máquinas virtuais;

▪ Isolamento de falhas e segurança no nível do hardware;

▪ Gravação do estado integral da máquina virtual em arquivos;

▪ Mais rapidez no aprovisionamento (instalação lógica / templates /


clonagem) e na escalabilidade;

▪ Redução de custos (hardware, licenciamento, etc.).


Container
▪ Diferentemente das máquinas virtuais que virtualizam o
hardware, os Containers virtualizam a camada da
aplicação (SO / SO + BD / SO + Web services, etc.);

▪ Tudo que eles contêm é mantido em um recurso


chamado de imagem: um arquivo baseado em código
que inclui todas as bibliotecas e dependências;

▪ Containers são executados como um processo isolado


dentro do host (físico ou virtual).
Container
Benefícios da Containerização
▪ São mais “leves” ➔ não precisam simular o hardware e não
precisam carregar um sistema operacional completo;
o Armazenam todos os elementos necessários para executá-los.

▪ Simplifica o processo de distribuição ➔ por causa da estrutura


de layers, somente a alteração é transferida quando da
realização de atualizações do ambiente (imagem).

▪ Aprovisionamento mais ágil que de máquinas virtuais;


o Mas fácil e rápido implementar a “TI Elástica”.

▪ Facilidade de gerenciamento.
Próxima Aula
❑Docker.
Virtualização e Container
CAPÍTULO 4. AULA 4.2. DOCKER

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Docker.

❑ Demonstração.
Docker
▪ Plataforma de software para criação de containers (“dockerização”);

▪ www.docker.com
Docker
Usando o Docker
Próxima Aula
❑Kubernetes.
Virtualização e Container
CAPÍTULO 4. AULA 4.3. KUBERNETES

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Introdução ao Kubernetes.

❑ Componentes.
Kubernetes
▪ Sistema de orquestração de containers open-source que automatiza a
implantação, o dimensionamento e a gestão de containers;

▪ Foi originalmente projetado pelo Google e agora é mantido pela Cloud


Native Computing Foundation;

▪ Também conhecido como K8s;

▪ https://kubernetes.io
Kubernetes
▪ O Docker possui um produto para orquestração chamado Swarm;

▪ Kubernetes é baseado no Borg, o sistema de gerenciamento de


containers do Google, escrito na linguagem Go;

▪ Muito mais útil e poderoso até o Docker Swarm 1.0, pois disponibilizava
muitos recursos que o Docker não disponibilizava até aquele momento,
como balanceamento de carga e movimento de containers sem perda
de dados.

▪ Não está preso às limitações da API do Docker (o problema do Swarm):


– Kubernetes não foi desenvolvido especialmente para o Docker;

– Pode trocar a estrutura de containers para Rockets (da CoreOS).


Kubernetes
Componentes do Kubernetes
▪ Minions: cada host do cluster.

▪ Pods: é a menor unidade dentro de um cluster:


o Containers rodando dentro do cluster de Kubernetes;

o Pode ser um container rodando nginx / php / apache, etc.

▪ Kubelet: agente que roda nos hosts do cluster.

▪ Replication Controller
o Responsável por manter um número determinado de pods
em execução

o Onde você diz quantos containers de cada imagem você


desejará que fiquem rodando: caso um caia, o RC cria outra
instância automaticamente.
Componentes do Kubernetes
Componentes do Kubernetes
▪ Services
– Responsável por atribuir uma faixa de IP para um
determinado RC;

– Para que cada vez que o RC crie uma nova instância de pod,
o mesmo inicie com um IP determinado pelo Service.

▪ Namespace:
– Permite dividir o cluster de Kubernetes em dois ambientes,
(produção e teste por exemplo);

– Permite limitar os recursos computacionais por namespace.


Próxima Aula
❑Container as a Service.
Virtualização e Container
CAPÍTULO 4. AULA 4.4. CONTAINER AS A SERVICE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Container as a Service.
Container as a Service
Container as a Service
Container as a Service
Container as a Service
Container as a Service
Container as a Service
Próxima Aula
❑SQL Server Big Data Cluster.
Virtualização e Container
CAPÍTULO 4. AULA 4.5. SQL SERVER BIG DATA CLUSTER

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ SQL Server Big Data Clusters.

❑ Cenários de Uso.
SQL Server Big Data Cluster
▪ Recurso disponível a partir do SQL Server 2019 (15.x);

▪ Permite implantar clusters escalonáveis de containers do SQL Server, do


Spark e do HDFS;

▪ Esses componentes são executados lado a lado


– Permite ler, graver e processar big data com Transact-SQL ou do Spark.

▪ Containers são orquestrados pelo Kubernetes;

▪ Permite fácil escalabilidade e gerenciamento.


SQL Server Big Data Cluster
SQL Server Big Data Cluster
Cenários: Virtualização de Dados
▪ Aproveitando o PolyBase, os clusters de Big Data do SQL Server podem
consultar fontes de dados externas sem mover ou copiar os dados.
Cenários: Data Lake
▪ Um cluster de big data do SQL Server inclui um pool de
armazenamento HDFS escalável, que pode ser usado para armazenar
big data, ingerido de várias fontes externas.
Cenários: Integração de Dados
Cenários: IA Integrada e ML
Próxima Aula
❑Capítulo 5. Arquiteturas Escaláveis de Dados no MongoDB.
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 5. Arquiteturas Escaláveis de Dados no MongoDB

PROF. GUSTAVO AGUILAR


Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.1. INTRODUÇÃO AO MONGODB

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview do MongoDB.

❑ Conceitos e Macroarquitetura.
Overview do MongoDB

SGBD e SGBDD
Banco de dados “Not Only SQL”
NOSQL
centralizado / distribuído Não relacional
Multiplataforma
Escrito em C++
Orientado a Documento
Lançado em 02/2009 Esquema Dinâmico
Inicialmente 10gen. {JSON} Document Database
Atualmente ©MongoDB Inc. Formato JSON (field-value)
Armazenado como BSON

Gratuito e Open Source Universidade MongoDB


Edição Community Server Cursos gratuitos e online, em
*Edição Enterprise inglês, com certificado
(subscrição com suporte) https://university.mongodb.com
www.mongodb.com
Macroarquitetura
Macroarquitetura
▪ Documento (Document) ➔ um registro:
– Conceito similar ao de tupla do mundo relacional;

– Composto por pares de campos (fields) e valores (values);

– Formato JSON ➔ armazenado como BSON;

– Tamanho máximo ➔ 16 MB (pode ser expandido usando-se GridFS).


Macroarquitetura

▪ Analogia dos termos / conceitos Relacionais x MongoDB:

Termos / Conceitos Relacionais Termos / Conceitos MongoDB


Macroarquitetura
▪ Engines de Armazenamento: mecanismos para gerenciar
como os dados são armazenados;

▪ Três engines nativas:


– WiredTiger:
• Engine padrão a partir da versão 3.2 do MongoDB;

• Adequada para a maioria das cargas de trabalho e recomendada para novas implementações;

• Controle de concorrência a nível de documento, checkpoint, compactação, dentre outros recursos;

• No MongoDB Enterprise, também suporta criptografia.

– In-Memory:
• Ao invés de armazenar documentos no disco, esse mecanismo os retém na memória para
redução da latência de leitura / escrita;

• Disponível no MongoDB Enterprise.


Macroarquitetura
▪ MMAPv1:
– Antiga engine padrão ➔ versão 3.0 e anteriores do MongoDB;

– Foi descontinuada a partir da versão 4.0.

▪ Além das engines nativas ➔ Pluggable Storage Engines


– Externas e de terceiros;

– Possibilita usar novos recursos e configurações ideais para arquiteturas


específicas de hardwares.

▪ Cada engine apresenta um desempenho diferente para cargas de


trabalho específicas ➔ escolher a mais aderente.
Macroarquitetura
▪ Auntenticação e Segurança de Acesso

Autenticação Local Autenticação Integrada

Login Interno Login Externo ao


do MongoDB MongoDB
Login e senha SCRAM
são armazenados x.509 Certificates
no MongoDB LDAP*
Kerberos*
*Só na Enterprise

▪ 100% RBAC (Role-Based Access Control):


– Privilégios concedidos somente através de Roles➔ Action on Resource
Próxima Aula
❑Instalação do MongoDB.
Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.2. INSTALAÇÃO DO MONGODB

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Plataformas Suportadas.

❑ Boas Práticas de Instalação.

❑ Instalação Stand Alone.


Plataformas Suportadas
▪ Atualmente na versão 4.4, tem suporte para as plataformas:
– x86_64;

– ARM64;

– PPC64LE (somente a edição Enterprise);

– s390x;

– Desde a versão 3.2 não suporta mais a plataforma 32-bits x86.

▪ Edição Community (gratuita) e Enterprise (paga).

▪ Edição nas nuvens ➔ MongoDB Atlas.


Plataformas Suportadas
▪ Em termos de sistema operacional:
– Linux, em praticamente quase todas as distribuições (Amazon Linux,
Debian, Red Hat, CentOS, Suse, Solaris e Ubuntu);

– macOS;

– Windows.
Boas Práticas de Instalação
▪ Desativar o parâmetro de Transparent Hugepages e persistir
para o próximo restart;

▪ Por default, o serviço do MongoDB roda com o usuário mongod;

▪ Diretórios para separar os arquivos de sistema, dos arquivos dos


bancos de dados, índices, log e journal. Ex.:
– mongodb Mongodb/data/NomeBanco01/collections
– mongodb/data
– mongodb/log/ Mongodb/data/NomeBanco01/index
– mongodb/data/journal

▪ O tipo de file system recomendado para o MongoDB é o XFS, e a


opção noatime deve ser setada
Instalação Stand Alone
▪ Em sistemas operacionais Linux:
– Através de packages .rpm (package management system - yum);
• Necessária comunicação do servidor onde o MongoDB será instalado, com o repositório de packages.

– Usando Tarball.

▪ Em Windows: installer.msi;

▪ Em MacOS: com Homebrew;

▪ Repositório é composto por várias packages, que podem ser


instaladas separadamente:
– mongodb-org-server: contém o serviço da engine de banco de dados,
scripts de inicialização e o arquivo de configuração do MongoDB
(configuration file), que por padrão é criado em /etc/mongod.conf;
Instalação Stand Alone
– mongodb-org-mongos: contém o serviço mongos, um serviço de
roteamento para cenários com sharding, incumbido de processar
consultas, determinando o local desses dados no cluster;

– mongodb-org-shell: contém o mongo shell (client linha de comando);

– mongodb-org-tools: contém ferramentas úteis para se trabalhar com o


MongoDB, como mongoimport, bsondump, mongodump, mongoexport,
mongofiles, mongorestore, mongostat, and mongotop;

– mongodb-org: instala todos os componentes.


Instalação Stand Alone
▪ Por default, na instalação:
– Serviço do MongoDB é configurado para rodar na porta 27017;

– Controle de acesso desabilitado: qualquer usuário consegue,


localmente, logar na instância.

▪ Próximo passo é configurar os parâmetros de inicialização do


MongoDB da forma desejada:
– Arquivo mongod.conf

– No diretório /etc

– Parâmetros importantes:
• Engine a ser utilizada • Separação de bancos por
• Local do log do MongoDB diretórios
• Local de armazenamento dos • Separação dos índices dos
dados dados
• Ativação do Journal • Habilitação do controle de
acesso
Instalação Stand Alone do MongoDB
Próxima Aula
❑MongoDB Compass.
Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.3. MONGODB COMPASS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ MongoDB Compass.

❑ Instalação e Uso.
MongoDB Compass
– Ferramenta gráfica client (gratuita);

– Visualização de esquema integrada: frequência, tipos e intervalos


de campos nas collections;

– Visualização do status do servidor e de desempenho de consultas;

– Editor Visual para CRUD;

– Visualização de planos de execução de queries;

– Validação de dados e gerenciamento de índices;

– Download em https://www.mongodb.com/products/compass.
Instalação e Uso do Compass
Próxima Aula
❑MongoDB Replica Set.
Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.4. MONGODB REPLICA SET

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ MongoDB Replica Set.

❑ Cenários de Uso.
MongoDB Replica Set
▪ Replicação assíncrona;

▪ Replicação do Oplog;

▪ Escrita apenas no servidor primário;

▪ Réplicas secundárias permitem leituras.


MongoDB Replica Set
▪ Distribuição global de dados (até 50 réplicas).
MongoDB Replica Set
Fator de Replicação =3
Write

Read
MongoDB Replica Set
▪ Leitura nas secundárias via parâmetro na string de conexão.

(secondary Preferred)

Tipo?
Hierárquico
• Assíncrono
MongoDB Replica Set
▪ Alta disponibilidade e tolerância à falhas de hardware:
– Eleição de uma nova réplica primária em caso de falhas.

! Quantidade de Réplicas:
– Ímpar: sem empate;

– Par: usar árbitro para desempate.


MongoDB Replica Set
▪ Escalabilidade vertical.
MongoDB Replica Set
▪ Ambientes de disaster recovery (DR).
MongoDB Replica Set
▪ Distribuição da carga de leituras.
MongoDB Replica Set
▪ Coexistência de workloads distintos, sem impactos para o sistema
transacional.
Próxima Aula
❑Implementando Replica Set.
Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.5. IMPLEMENTANDO REPLICA SET

PROF. GUSTAVO AGUILAR


MongoDB Replica Set

SGBD e SGBDD
Banco de dados “Not Only SQL”
NOSQL Não relacional
centralizado / distribuído
Multiplataforma
Escrito em C++
Orientado a Documento
Lançado em 02/2009 Esquema Dinâmico
Inicialmente 10gen. {JSON} Document Database
Atualmente ©MongoDB Inc. Formato JSON (field-value)
Armazenado como BSON

Gratuito e Open Source Universidade MongoDB


Edição Community Server Cursos gratuitos e online, em
*Edição Enterprise inglês, com certificado
(subscrição com suporte) https://university.mongodb.com
Próxima Aula
❑MongoDB Sharding.
Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.6. MONGODB SHARDING

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ MongoDB Sharding.

❑ MongoDB Sharding Zones.

❑ Cenários de Uso.
MongoDB Sharding
▪ Usa técnicas de particionamento
horizontal (sharding);
▪ Leitura e escrita em todos nós;
▪ Escalabilidade: horizontal e vertical;
▪ Alta disponibilidade:
✓ Replicação dos shards
(a partir da versão 3.2).

Tipo?
Peer-to-Peer
• Assíncrono
Horizontal
MongoDB Sharding
▪ Sharded Collections ➔ são divididas em fragmentos (shards);

▪ Shard Key ➔ chave de particionamento de cada collection.


MongoDB Sharding
MongoDB Sharding
▪ Shard Key pode ser de dois tipos:
– Hash: valores gerados e gerenciados pela própria engine do MongoDB;

– Range: permitido definir os limites de valores (faixas) para cada shard.


MongoDB Sharding
▪ Escalabilidade horizontal com sharding.
MongoDB Sharding Zones
▪ Subconjunto de dados (faixas) que podem ser especificadas com
base na shard key;

▪ Cada zona pode ser associada à um ou mais shards do cluster;

▪ Shard pode se associar à qualquer número de zonas.


MongoDB Sharding Zones
▪ Disaster recovery + otimização da performance de acesso aos
dados + distribuição da carga.
MongoDB Sharding Zones
▪ Otimização de performance.

Data Center Remoto


(Secundário)
Data Center Local
(Principal)
Shard 1 Shard 2 Shard 3 Shard 4
MongoDB Sharding Zones
▪ Redução de custos com a infra.
MongoDB Sharding Zones
▪ Otimização da Performance e Processos.
Próxima Aula
❑Implementando Sharding.
Arquiteturas Escaláveis de Dados
no MongoDB
CAPÍTULO 5. AULA 5.7. IMPLEMENTANDO SHARDING

PROF. GUSTAVO AGUILAR


MongoDB Sharding

SGBD e SGBDD
Banco de dados “Not Only SQL”
NOSQL Não relacional
centralizado / distribuído
Multiplataforma
Escrito em C++
Orientado a Documento
Lançado em 02/2009 Esquema Dinâmico
Inicialmente 10gen. {JSON} Document Database
Atualmente ©MongoDB Inc. Formato JSON (field-value)
Armazenado como BSON

Gratuito e Open Source Universidade MongoDB


Edição Community Server Cursos gratuitos e online, em
*Edição Enterprise inglês, com certificado
(subscrição com suporte) https://university.mongodb.com
Próxima Aula
❑Capítulo 6. Arquiteturas Escaláveis de Dados e Nuvem.
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 6. Arquiteturas Escaláveis de Dados e Nuvem

PROF. GUSTAVO AGUILAR


Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 6. AULA 6.1. COMPUTAÇÃO EM NUVEM E ESCALABILIDADE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Computação em Nuvem.

❑ Cloud Provider.

❑ Tipos de Nuvens.

❑ Vantagens da Computação em Nuvem.

❑ Escalabilidade em Nuvem.
Computação em Nuvem

Definição fornecida pelo


NIST (SP800–145 / 2011)

“Modelo para habilitar acesso sob demanda,


conveniente e ubíquo, por meio de redes, à um
reservatório compartilhado de recursos
computacionais configuráveis (ex. redes,
servidores, armazenamento, aplicações e serviços)
que podem ser provisionados rapidamente e
liberados com esforço mínimo de gerenciamento
ou interação com o provedor de serviços”
Computação em Nuvem
▪ Entrega de serviços de computação pela Internet usando um modelo de
precificação pré-pago (pay-as-you-go):
o Paga apenas pelos serviços em nuvem que usa;

o Reduz custos de investimento (CAPEX);

o Dimensione conforme as necessidades da empresa;

o Reduz custos operacionais (OPEX).

▪ O provedor de nuvem (cloud provider) se encarrega de manter a infraestrutura


subjacente (datacenter, energização, resfriamento, servidores físicos,
equipamentos físicos de rede e storage, etc.).
Computação em Nuvem
Tipos de Nuvens

Profissional de Cloud Computing precisa


Localização conhecer os prós e contras de cada tipo e as
tecnologias usadas nas implementações.
Vantagens da Computação em Nuvem
▪ Confiabilidade: acordo de nível de serviço escolhido x disponibilidade
dos recursos;

▪ Agilidade: implantação e configuração rápida de recursos;

▪ Distribuição geográfica: aplicativos e recursos de armazenamento


podem ser implantados em datacenters regionais em todo o mundo:
✓ Clientes terem o melhor desempenho em sua região.

▪ Recuperação de desastres: serviços de backup baseados em nuvem,


replicação de dados e distribuição geográfica para garantir que os dados
estejam seguros caso ocorra um desastre.
Vantagens da Computação em Nuvem
▪ Escalabilidade:
o Vertical: a capacidade de computação pode ser aumentada adicionando
RAM, disco ou CPUs a uma máquina virtual.

o Horizontal: a capacidade de computação pode ser aumentada adicionando


instâncias de um recurso (mais máquinas virtuais, por exemplo).

▪ Elasticidade: os aplicativos baseados em nuvem podem ser


configurados para sempre terem os recursos que precisarem.
Escalabilidade em Nuvem
Escalabilidade em Nuvem
Próxima Aula
❑Modalidades de Serviços.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 6. AULA 6.2. MODALIDADES DE SERVIÇOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Modalidades de Serviços.

❑ IaaS x PaaS x SaaS.

❑ Quando Usar IaaS.


Modalidades de Serviços

IaaS Definem os diferentes níveis de


Infraestrutura como serviço responsabilidade compartilhada
Servidores, armazenamento, segurança, rede
pelos quais um provedor de
Windows Azure VM, EC2, VPCs, S3, etc.
nuvem e um locatário de nuvem
PaaS são responsáveis.
Plataforma como serviço
Ferramentas Dev., SO, BD
Windows Azure, SQL Azure, etc.

SaaS
Software como Serviço
Apps / aplicativos hospedados
Office 365, Webmails, Redes Sociais, etc.
Modalidades de Serviços

Responsabilidades

Migre para Construa com Use


Modalidades de Serviços
Modalidades de Serviços
Modalidades de Serviços
Quando Usar IaaS
▪ Versões mais antigas de sistema operacional / SGBD;

▪ Uso de outros serviços do SO / SGBD / SW;

▪ Necessidades dos aplicativos x Recursos de PaaS;

▪ Não desejar atualizações automáticas;

▪ Facilidade de migração: VM on premise ➔ VM na nuvem. (Lift & Shift).


Próxima Aula

❑ Tipos de Dados.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 6. AULA 6.3. TIPOS DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Dados Estruturados.

❑ Dados Semiestruturados.

❑ Dados Não Estruturados.

❑ Dados na Era da Informação.


Dados Estruturados
▪ Organizados e representados com uma estrutura rígida;
– Aderem a um esquema (schema físico dos dados).

▪ Definição prévia de um modelo de dados;


– Todos os dados têm os mesmos campos ou propriedades.

▪ Em geral, armazenados no formato tabular (em tabelas);


– Linha + Coluna(s) ➔ tupla ➔ dados relacionais.
Dados Semiestruturados
▪ Não contém toda a rigidez requerida na definição dos tipos de
dados estruturados;

▪ Procuram manter certa uniformidade no armazenamento das


informações;
– Mantém tags e marcações internas que identificam elementos de
dados separados.

▪ Comumente chamados de dados não relacionais ou NOSQL.


Dados Não Estruturados
▪ Não são estruturados por meio de modelos ou esquemas de dados
predefinidos;
– Significa que não há restrições quanto aos tipos de dados que podem
conter.

– Dados binários (Blob) pode conter:

• Documento PDF

• Imagem JPEG

• Áudio MP3

• Vídeo MPEG

• Etc.
Dados na Era da Informação

▪ “Início da Era da Internet”:


– Volume de dados não muito significativo;

– Grande parte dos dados de tipo textual;

– Quase a totalidade dos sistemas trabalhando com dados estruturados.


Dados na Era da Informação

▪ “Pré-era da Informação”:
– Expansão da Internet;

– Volume de dados iniciando um crescimento exponencial;

– Sistemas trabalhando também com dados semiestruturados.


Dados na Era da Informação
▪ Era da Informação:
– Uso massivo de Internet banda larga;

– Computação Obíqua, Internet das Coisas (IOT), Big Data, etc.;

– Uso intensivo de redes sociais para divulgação de informações e conteúdo.


Dados na Era da Informação
▪ Era da Informação:
– Crescimento exponencial do volume de
dados, principalmente não estruturados

– Fotos, vídeos, posts, likes, snaps, etc.;

– Proliferação de soluções de Big Data para


lidar com esse alto volume de dados não
estruturados;

– Coexistência com soluções legadas e/ou


baseadas em dados estruturados /
semiestruturados.
Dados na Era da Informação
▪ Papel fundamental do Profissional de Dados.
▪ Arquiteto de dados
▪ Engenheiro de dados
▪ Analista de dados
▪ Analista de segurança de dados
▪ Etc.
Próxima Aula

❑Perfis de Profissionais de Dados.


Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 6. AULA 6.4. PERFIS DE PROFISSIONAIS DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview do Processo de Soluções de Dados.

❑ Perfis de Profissionais de Dados.


Overview do Processo de
Soluções de Dados

Projetar a Solução Implantar a Infraestrutura Implantar o Análise de Dados


para a Solução Pipeline de Dados Ciência de Dados
Aprendizado de Máquina
Etc.
Perfis de Profissionais de Dados

▪ Arquiteto de Soluções

▪ Arquiteto de Dados

▪ Administrador de Banco de Dados

▪ Engenheiro de Dados

▪ Analista de Dados

▪ Cientista de Dados

▪ Engenheiro de Inteligência Artificial


Perfis de Profissionais de Dados

▪ Arquiteto de Soluções (Solutions Architect)


▪ Visão holística de toda a solução;

▪ Integração das soluções;

▪ Recursos e capacidade para a solução;

▪ Estratégias de backup, monitoramento;

▪ Disponibilidade e escalabilidade da solução;

▪ Plano de Continuidade de Negócio (PCN);

▪ Custo da solução;

▪ Etc.
Perfis de Profissionais de Dados

▪ Arquiteto de Dados (Data Architect)


▪ Estruturas de armazenamento dos dados;

▪ Modelos de dados;

▪ Administração de dados corporativos;

▪ Backup de dados de negócio.


Perfis de Profissionais de Dados

▪ Administrador de Banco de Dados (DBA)


▪ Instalação / aprovisionamento

▪ SGBDs

▪ Plataformas de armazenamento de dados

▪ Bancos de dados

▪ Repositórios / quotas

▪ Aspectos operacionais;

▪ Tunning e troubleshoting;

▪ Disponibilidade dos SGBDs / plataformas;

▪ Segurança de acesso.
Perfis de Profissionais de Dados

▪ Engenheiro de Dados (Data Engineer)


▪ Projeto do Pipeline (Fluxo) de Dados:

▪ Extração de dados

▪ Transformação de dados

▪ Ingestão (carga) de dados

▪ Implementação e gerenciamento do fluxo de dados


estruturados e não estruturados de diversas origens
(fontes de dados).
Perfis de Profissionais de Dados

▪ Analista de Dados (Data Analyst)


▪ Projetar e construir modelos de dados analíticos;

▪ Análise Descritivas: ajudar a responder


questões acerca do que aconteceu;

▪ Transformar dados em informações analíticas


com valor comercial;

▪ Planejamento e gerenciamento de dashboards.


Perfis de Profissionais de Dados

▪ Cientista de Dados (Data Scientist)


▪ Análise avançada para ajudar a gerar valor a partir dos
dados;

▪ Análises Preditivas: o que vai acontecer;

▪ Análises Prescritivas: o que precisa ser feito para


atingir determinado objetivo;

▪ Suporte a decisões orientadas a dados (Data-Driven


Decision).
Perfis de Profissionais de Dados

▪ Engenheiro de Inteligência Artificial


▪ Arquitetar e implementar soluções de IA

▪ Serviços Cognitivos

▪ Machine Learning

▪ Mineração de conhecimento

▪ Suporte a soluções de processamento de linguagem


natural, reconhecimento de voz e imagem;

▪ Bots e agentes virtuais.


Overview do Processo de
Soluções de Dados

Arquiteto de Soluções Adm. Banco de Dados Engenheiro de Dados Analista de Dados


Arquiteto de Dados Cientista de Dados
Engenheiro de IA
Próxima Aula

❑Introdução à Plataforma de Dados do Azure.


Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 6. AULA 6.5. INTRODUÇÃO À PLATAFORMA DE DADOS DO AZURE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview da Plataforma de Dados do Azure.


Plataforma de Dados do Azure
Azure Storage
▪ Tipo de armazenamento básico usado no Microsoft Azure;

▪ Armazenamento de arquivos, dados textuais / binários / não


estruturados e de fila de mensagens;

▪ Pode ser usado com máquinas virtuais, via SMB ou API;

▪ Cada serviço é acessado através de uma conta de armazenamento


(Storage Account);

▪ Possuem cinco opções:


– Azure Blobs – Azure Tables

– Azure Files – Azure Disks

– Azure Queues
Azure Storage
SQL Virtual Machines
Azure SQL Managed Instance
▪ Fornece uma instância inteira do SQL Server ➔ PaaS
▪ Até 100 bancos de dados;

▪ Fornece outros recursos que não estão disponíveis no Azure SQL


Database:
▪ Consultas entre bancos de dados;

▪ CLR (Common Language Runtime);

▪ SQL Agent (jobs e scheduler).


Azure SQL Database
▪ Serviço de banco de dados relacional gerenciado no Azure;

▪ Database as a Service ➔ PaaS;

▪ Suporta estruturas como dados relacionais e formatos não


estruturados, como dados espaciais e XML.
Azure Cosmos DB
▪ Serviço de banco de dados multimodelo e distribuídos globalmente;

▪ Database as a Service ➔ PaaS;

▪ Suporte a 5 APIs (modelos de DB Engine)


– SQL (relacional)

– Mongo DB (documento)

– Cassandra (colunar)

– Gremlin (grafo)

– Table (chave-valor)
Azure Data Services
Azure Synapse Analytics
▪ Anteriormente conhecido como SQL DW;

▪ Fornece um ambiente unificado combinando data warehouse e os


recursos de análise de Big Data do Spark;

▪ MPP ➔ processamento massivo paralelo.


Azure Databricks
▪ O Databricks é uma versão do popular mecanismo de análise e
processamento de dados Apache Spark;

▪ O Azure Databricks é a versão totalmente gerenciada do Databricks ➔ PaaS;

▪ Oferece uma plataforma de Big Data e aprendizado de máquina;

▪ Suporte a Python, Scala, R, Java e SQL, além de estruturas e bibliotecas de


ciência de dados, incluindo TensorFlow e PyTorch.
Azure Databricks
Azure HDInsight
▪ Processamento e análise de big data para dar suporte ao processamento
em lote, de data warehousing, IoT e Data Science;

▪ Solução em nuvem de baixo custo que contém várias tecnologias:


Azure Data Factory
▪ Serviço de integração de dados que orquestra a movimentação de
dados entre várias fontes de dados;

▪ ETL baseado em nuvem


– Similar ao que o Integration Services (SSIS) / Pentaho faz no on premises.
Azure Data Factory
Azure Data Catalog
▪ Serviço para catalogar dados e fontes de dados;

▪ Inclui um modelo de alimentação de metadados ➔ crowdsourcing;

▪ Os usuários podem descobrir as fontes de dados de que precisam e


entender as fontes de dados que encontram, além de usar o Catálogo de
Dados para documentar as informações sobre suas fontes de dados.
Azure Purview
Azure Purview
Próxima Aula
❑Capítulo 7. IaaS no Azure para Arquiteturas Escaláveis de Dados.
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 7. IaaS no Azure para Arquiteturas Escaláveis de Dados

PROF. GUSTAVO AGUILAR


Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.1. STORAGE ACCOUNT

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Storage Account.

❑ Configurações Básicas

❑ Ferramentas para Criação.


Storage Account
▪ Conta de Armazenamento: contêiner que agrupa um
conjunto de serviços de armazenamento do Azure;

▪ Recurso do Azure, de uma


assinatura (subscription),
que está incluída em um
grupo de recursos
(Resource Manager).
Configurações Básicas
▪ Uma storage account define uma política que se aplica a todos os serviços
de armazenamento na conta;

▪ Exemplo:
▪ Datacenter Brazil South;
▪ Acessíveis apenas por https;
▪ Cobrados na assinatura do departamento de TI.

▪ Tipo de conta: conjunto de políticas que determinam quais serviços de


dados você pode incluir na conta e os preços desses serviços.
▪ StorageV2 (general purpose v2): oferta atual que suporta todos os
tipos de armazenamento e todos os recursos mais recentes;
▪ Storage (general purpose v1): legado, suportando todos os tipos de
armazenamento, mas pode não ter todos os recursos do V2;
▪ BlobStorage: legado, permitindo apenas block blobs e append blobs,
não suportando file share, tables e queues;
▪ FileStorage: somente para performance Premium.
Configurações Básicas
- Assinatura e Localização;

- Performance: determina o desempenho (tipo de disco);


- Standard: qualquer serviço de dados (Blob, File Share, Fila, Tabela) e usa
unidades de disco magnético;
- Premium: usa disco SSD e é somente para Page Blob e File Share (block
blobs, append blobs, tabelas e filas não são suportados).

- Replicação: cópia dos dados para proteger contra falhas de hardware ou desastres
- No mínimo: armazenamento localmente redundante (LRS)
- Protege contra falhas de hardware ➔ replicado em 3 locais, na região;
- Não protege de um evento que indisponibilize toda a região.
- Armazenamento georredundante (GRS): replicação em diferentes
datacenters em todo o mundo.
Configurações Básicas
- Camada de acesso: velocidade que você poderá acessar os blobs
- Hot fornece acesso mais rápido que Cool, mas a um custo maior.

- Redes virtuais: método de conectividade (público / privado).

- Proteção dos Dados


- Modelo de “lixeira” com expurgo automático ➔ blob e fileshare;
- Opção de versionamento.

- Transferência segura necessária (TLS): ativado requer HTTPs, enquanto


desativado permite HTTP.
Ferramentas para Criação
▪ Portal do Azure;

▪ Azure CLI
– Command-line interface.

▪ Azure PowerShell;

▪ Management client libraries


– Incorporar a criação dentro
de um app.
Próxima Aula
❑Criando uma Storage Account.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.2. CRIANDO UMA STORAGE ACCOUNT

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Criando uma Storage Account


Criando uma Storage Account
Próxima Aula
❑Azure File Storage.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.3. AZURE FILE STORAGE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Azure File Storage.

❑ Demonstração de criação e uso.


Azure File Storage
▪ Recurso para criação de files shares (compartilhamento de
arquivos) na nuvem;
o Usando o protocolo

Server Message Block 3.0 (SMB);

o 100 TB de dados por conta;

o 1 TiB (tebibytes) por

arquivo (+- 1 TB);

o Até 2.000 conexões* simultâneas

por arquivo compartilhado;

o Duas camadas de desempenho:


o Standard: disco comum (até 300 MB/s).

o Premium: disco SSD.


Azure File Storage
Próxima Aula
❑Ingestão de Dados.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.4. INGESTÃO DE DADOS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Ingestão de Dados.

❑ Azure Storage Explorer.


Ingestão de Dados
- Data Factory
Ingestão de Dados
- Azure Storage Explorer: www.storageexplorer.com
Ingestão de Dados
- AzCopy;

- PowerShell;

- Visual Studio;

- Arquivos acima de 2 GB ➔ PowerShell ou Visual Studio;

- AzCopy ➔ tamanho máximo de arquivo de 1 TB;

- Automaticamente dividido em vários arquivos se o


arquivo exceder 200 GB.
Storage Explorer
Próxima Aula
❑Azure Table Storage.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.5. AZURE TABLE STORAGE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Azure Table Storage.

❑ Vantagens.

❑ Desvantagens.
Azure Table Storage
▪ Armazenamento para o modelo de chave-valor;
o Dados de um item (linha) são armazenados como um conjunto de colunas
(campos) e o item é identificado por uma chave exclusiva ➔ 1 MB por linha;

o Quantidade de colunas em cada linha pode ser diferente ➔ até 252;

o Permite armazenamento de dados semiestruturados ➔ numérico / string / binário.


Azure Table Storage
Vantagens
▪ É mais simples de escalar:
o Gasta o mesmo tempo para inserir dados em uma tabela vazia ou em uma
tabela com bilhões de entradas;

o Pode escalar até 500 TB de dados;

o Gerencia automaticamente as partições em uma tabela e aloca o


armazenamento conforme necessário.

▪ Alta disponibilidade:
o Os dados de cada tabela são replicados 3 vezes em uma região do Azure;

o Permite redundância geográfica ➔ + 3 réplicas e + custo.

▪ Especificando as chaves de partição e linha como critérios de


consulta, a recuperação de dados é a mais rápida*.
Desvantagens
▪ A consistência deve ser levada em consideração, pois as atualizações
transacionais em várias entidades não são garantidas;

▪ Não há integridade referencial ➔ quaisquer relações entre as linhas


precisam ser mantidas externamente à tabela (no código);

▪ Consultas com base em campos não-chave podem resultar em


varreduras completas da tabela.
Próxima Aula
❑Criando e Usando Azure Table Storage.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.6. CRIANDO E USANDO AZURE TABLE STORAGE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Criando e Usando Azure Table Storage.


Azure Table Storage
Próxima Aula
❑Azure Blob Storage.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.7. AZURE BLOB STORAGE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Azure Blob Storage.

❑ Tipos de Azure Blob Storage.

❑ Cenários de Uso.
Azure Blob Storage
▪ Serviço que permite armazenar grandes quantidades de dados não
estruturados (blobs), na nuvem;

▪ Conta de armazenamento ➔ Container ➔ Blob;

▪ Pode-se organizar blobs em uma hierarquia de pastas,


Tipos de Azure Blob Storage
▪ Blobs de Página (Page Blobs)
o Organizado como uma coleção de páginas de 512 bytes de tamanho fixo;

o Um blob de página pode conter até 8 TB de dados;

o Otimizado para suportar operações aleatórias de leitura e gravação;

o Pode buscar e armazenar dados para uma única página, se necessário;

o O Azure usa blobs de página para implementar o armazenamento em disco


virtual das máquinas virtuais.
Tipos de Azure Blob Storage
▪ Blobs de Blocos (Block Blobs)
o Conjunto de blocos ➔ cada bloco pode variar em tamanho, até 100 MB;

o Um blob de bloco pode conter até 50.000 blocos ➔ mais de 4,7 TB;

o O bloco é a menor quantidade de dados que pode ser lida ou gravada


como uma unidade individual;

o Mais usados para armazenar objetos binários grandes que mudam com
pouca frequência.
Tipos de Azure Blob Storage
▪ Append Blobs (“Blob de Acréscimo”)
o É um blob de bloco otimizado para suportar operações de append (acréscimo);

o Só permite adicionar blocos ao final ➔ atualizar ou excluir blocos existentes


não é suportado;

o Cada bloco pode variar em tamanho, até 4 MB.

o O tamanho máximo de um append blob é pouco mais de 195 GB.


Cenários de Uso
▪ Envio de imagens ou documentos diretamente para um navegador;

▪ Armazenamento de arquivos para acesso distribuído;

▪ Streaming de vídeo e áudio;

▪ Armazenamento de dados para backup e restauração, recuperação de


desastres e arquivamento;
o Permite controle de versão.

▪ Armazenamento de dados para análise por um serviço local ou


hospedado pelo Azure;

▪ Armazenamento para um Data Lake.


Próxima Aula
❑Criando e Usando Azure Blob Storage.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.8. CRIANDO E USANDO AZURE BLOB STORAGE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Criando e Usando Azure Blob Storage.


Azure Blob Storage
Próxima Aula
❑Data Lake Storage Gen2
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.9. DATA LAKE STORAGE GEN2

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Data Lake Storage Gen2.

❑ Criando um Data Lake Storage Gen2.

❑ Usando um Data Lake Storage Gen2.


Data Lake Storage Gen2
▪ Repositório de dados compatível com HDFS
– HDFS (Hadoop Distributed File Sysyem) ➔ Sistema de Arquivos Distribuído;

– Pode armazenar qualquer tipo de dados.

▪ Gen2 combina os serviços de armazenamento do Gen1 com os


benefícios do Azure Blob Storage;

▪ Desempenho ajustado para o processamento de soluções de análise


de big data.
Data Lake Storage Gen2
Data Lake Storage Gen2
Data Lake Storage Gen2
Próxima Aula
❑Bancos de Dados Distribuídos em IaaS.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 7. AULA 7.10. BANCOS DE DADOS DISTRIBUÍDOS EM IAAS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Bancos de Dados em IaaS.

❑ SQL Server do Azure Marketplace.


Banco de Dados em IaaS
Bancos de Dados em IaaS
SQL Server do Azure Marketplace
SQL Server do Azure Marketplace
- Quando aprovisiona uma VM do Marketplace com SQL Server: parte do
processo instala o SQL Server IaaS Agent Extension:
- Extensões são códigos executados na pós-implantação da VM;

- Instalação de antivírus ou instalação de um recurso do Windows;

- Três recursos principais que podem reduzir a sobrecarga administrativa:

- Backup automatizado do SQL Server;

- Patches automatizados do SQL Server;

- Integração com Azure Key Vault.

- Informações sobre a configuração e utilização do SQL Server.


SQL Server do Azure Marketplace
Próxima Aula
❑Capítulo 8. PaaS no Azure para Arquiteturas Escaláveis de Dados
Infraestrutura de Dados
e Arquitetura Escalável
Capítulo 8. PaaS no Azure para Arquiteturas Escaláveis de Dados

PROF. GUSTAVO AGUILAR


Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.1. AZURE SQL DATABASE MANAGED INSTANCE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Ofertas de Instâncias Gerenciada.

❑ Recursos da Instância Gerenciada.

❑ Criando uma SQL Managed Instance.

❑ Usando uma SQL Managed Instance.


Ofertas de Instância Gerenciada

▪ General Purpose;

▪ Business Critical:
o Maior desempenho e disponibilidade;

o Suporta recursos In-Memory OLTP do SQL;

o Leitura em réplicas secundárias;

o Mais memória RAM por vCore;

o Usa storage atachado diretamente (sem NAS):

✓ Menor latência nas operações de I/O.

▪ Uso das licenças de SQL já compradas para reduzir o custo.


Recursos da Instância Gerenciada
▪ 99.99% de disponibilidade;

▪ Atualizações automáticas de patches Windows / SQL;

▪ Backup gerenciado pelo Azure;


▪ Possível gerar um backup manual “copy only” para o Azure Storage.

▪ Automatic tuning:
▪ Identificar queries onerosas;

▪ Forçar o último plano execução bom;

▪ Adicionar índices;

▪ Remover índices.
Criando e Usando uma SQL
Managed Instance
Próxima Aula
❑Azure SQL Database
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.2. AZURE SQL DATABASE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Azure SQL Database.

❑ Modelos de Implantação.

❑ Modelos de Contratação.

❑ Criando e Usando um Azure SQL Database.


Azure SQL Database

▪ Oferta de banco de dados como serviço (PaaS) da Microsoft;

▪ Infra totalmente gerenciada pela Microsoft :


o Gerenciamento do servidor e da instência SQL;

o Backup e monitoração do banco de dados;

o Patches do SO e do SQL;

o Upgrades de versão do SQL.

▪ Usa uma topologia em cluster para fornecer alta disponibilidade;


o Cada servidor e banco de dados são replicados de forma transparente;

o Garantia que um servidor / banco de dados estará sempre acessível, mesmo


no caso de um banco de dados ou servidor falhar.
Azure SQL Database

(No Azure) (Fora do Azure)


Modelos de Implantação

▪ Single Database:
- Banco de dados isolado;

- Totalmente gerenciado pelo Azure;

- Recursos pré-alocados por banco;

- Pode escalar verticalmente (CPU/RAM/Disco);


Azure SQL Database

▪ Elastic Pool
- Coleção de single databases;

- Com um conjunto compartilhado de recursos (CPU


/ RAM / Disco);

- Útil para cenários com bancos de dados com


requisitos de recursos que variam ao longo do
tempo;
o O Elastic Pool permite que os recursos disponíveis sejam usados sob
demanda e liberados assim que o processamento for concluído;

o Redução de custo comparando com Single Database, onde o recurso é


alocado por banco de dados, sem compartilhamento entre eles.
Modelos de Contratação

▪ Baseado em DTU (Database Transaction Units): combinação de


recursos de computação, memória e I/O.
o Basic: 5 DTUs e tamanho máximo de 2 GB.

o Standard: até 3.000 DTUs e máximo de 1 TB.

o Premium:
✓ Até 4.000 DTUs;

✓ Máximo de 4 TB;

✓ Permite leitura nas réplicas secundárias;

✓ Permite redundância de zona.


Modelos de Contratação

▪ Baseado em vCore: permite selecionar a quantidade de CPU,


memória RAM, velocidade do storage (IOPS) e tipo de hardware.
Modelos de Contratação

▪ Baseado em vCore:
o General Purpose
✓ 500 a 20.000 IPOS, com latência entre 2 e 10 ms;

✓ Pode ser pré-alocado (Provisioned) ou com auto scalling (Serverless);

✓ Permite também escalar verticalmente;

✓ Permite redundância de zona.

o Hyperscale
✓ 500 a 204.800 IPOS, com latência entre 1 e 10 ms;

✓ Para bancos de dados OLTP muito grandes: auto scalling até 100 TB;

✓ Permite também escalar verticalmente;

✓ Permite até 4 réplicas secundárias ➔ para escalar horizontalmente o


workload de leitura e funcionar como DR.
Modelos de Contratação

▪ Baseado em vCore:
o Business Critical / Premium:
✓ Para aplicações OLTP com alto volume de transações;

✓ Cenários que necessitam de baixa latência de I/O;

✓ 5.000 a 204.800 IOPS e latência entre 1 e 2 ms;

✓ Permite também escalar verticalmente;

✓ Permite leitura nas réplicas secundárias;

✓ Permite redundância de zona.


Criando e Usando um Azure
SQL Database
Próxima Aula
❑Azure Cosmos DB.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.3. AZURE COSMOS DB

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Pré-requisitos para Criação.

❑ Criando um Azure Cosmos DB (SQL).

❑ Usando um Azure Cosmos DB (SQL).


Pré-requisitos para Criação

▪ Azure Cosmos DB Account


▪ Recurso que atua como uma entidade organizacional;

▪ Cada conta está associada a um dos vários modelos de dados aos


quais o Azure Cosmos DB oferece suporte;

▪ Quantas contas precisar.


Pré-requisitos para Criação

▪ Request Unit (RU)


▪ Medida da taxa de transferência (throughput) por segundo;

▪ Reservar o número de RU/s que deseja que o Azure Cosmos DB provisione


com antecedência, para que ele possa lidar com a carga estimada e você
possa aumentar ou diminuir sua RU/s a qualquer .
Criando e Usando um Azure
Cosmos DB (SQL)
Próxima Aula
❑Bancos de Dados Open Source no Azure.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.4. BANCOS DE DADOS OPEN SOURCE NO AZURE

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Azure Database for MySQL.

❑ Azure Database for MariaDB.

❑ Azure Database for PostgreSQL.


Bancos de Dados Open Source
no Azure
▪ Mecanismos para deploy:
– Azure Portal;

– PowerShell;

– ARM templates;

– Azure CLI.

▪ Azure Database for MySQL / MariaDB


– Single Database / Replicação.

▪ Azure Database for PostgreSQL


– Single Database / Hyperscale.
Criando Azure Database for MySQL
e for PostgreSQL
Próxima Aula
❑Azure Synapse Analytics
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.5. AZURE SYNAPSE ANALYTICS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Azure Synapse Analytics.

❑ SQL Pools.

❑ Workload Groups.

❑ Demo Azure Synapse Analytics.


Azure Synapse Analytics
▪ Anteriormente conhecido como SQL DW ➔ MPP;

▪ Fornece um ambiente unificado combinando data warehouse e os


recursos de análise de Big Data do Spark;

▪ Azure Synapse tem quatro componentes:


– Synapse SQL: análise completa baseada em T-SQL;
• Pool de SQL: pagamento por DWU provisionado;

• SQL sob demanda: pagamento por TB processado.

– Apache Spark;

– Data Integration: Integração de dados híbridos;

– Studio: experiência de usuário unificada.


Azure Synapse Analytics
SQL Pools
▪ Agrupamento de recursos (CPU, RAM e I/O);

▪ Tamanho é determinado por DWU (Data Warehousing Units).


Workload Groups
▪ Definir os recursos para isolar e reservar recursos para uso:
– Reserva de recursos para um grupo de solicitações;

– Limite da quantidade de recursos que um grupo de solicitações pode


consumer;

– Recursos compartilhados acessados com base no nível de importância


do workload;

– Definição do valor do tempo limite da consulta.

CREATE WORKLOAD GROUP group_name CREATE WORKLOAD CLASSIFIER classifier_name


WITH….. WITH
( (
MIN_PERCENTAGE_RESOURCE = value WORKLOAD_GROUP = 'name'
, CAP_PERCENTAGE_RESOURCE = value , MEMBERNAME = 'security_account’
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ……..
[ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] IMPORTANCE = {LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH} ] [ [ ,
] QUERY_EXECUTION_TIMEOUT_SEC = value ]
)[ ; ]
Azure Synapse Analytics
Próxima Aula
❑Introdução ao Azure HDInsight.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.6. INTRODUÇÃO AO HDINSIGHT

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview do HDInsight.

❑ Principais Componentes.

❑ Ecossistema do Azure HDInsight.


Overview do HDInsight
• Recurso para processamento e análise de Big Data;

• Criação rápida de clusters de Big Data sob demanda, com escalabilidade


horizontal e/ou vertical;

• Solução em nuvem de baixo custo para projetos de Big Data;

• Possui os principais softwares livres da Apache para projetos de Big Data:


Principais Componentes
APACHE HADOOP

• Estrutura que usa HDFS, gerenciamento de recursos


YARN e um modelo de programação MapReduce simples
para processar e analisar, paralelamente, dados em lote.
Principais Componentes
APACHE HADOOP

• Utiliza um modelo de programação MapReduce simples


para processar e analisar, paralelamente, dados em lote.
Principais Componentes
APACHE SPARK

• Estrutura de processamento paralelo, de software livre, que


dá suporte ao processamento em memória para melhorar o
desempenho dos aplicativos de análise de Big Data.
Principais Componentes
APACHE SPARK
Principais Componentes
APACHE HBASE

• Banco de dados NOSQL baseado em Hadoop que


fornece acesso aleatório e forte coerência para grandes
quantidades de dados sem esquema;

• Construído com base no Google BigTable;

• Os dados são armazenados nas linhas e colunas de


uma tabela, e os dados em uma linha são agrupados
por família de colunas.
Principais Componentes
APACHE HBASE
Principais Componentes
APACHE KAFKA

• Plataforma de código fonte aberto usada para criar aplicativos e


pipelines de streaming de dados;

• Também fornece funcionalidade de fila de mensagens, o que


permite publicar e consumir pipelines de dados.
Principais Componentes
APACHE STORM

• Sistema de computação distribuído e em tempo real para


processar rapidamente grandes fluxos de dados;

• Processa topologias ao invés de trabalhos MapReduce.


Principais Componentes
Principais Componentes
APACHE HIVE LLAP

• O Hive oferece uma interface semelhante à SQL para


consulta de dados em diferentes bancos de dados e
sistemas de arquivos integrados ao Hadoop;

• Comandos tradicionais de SQL são implementados na


API Java (HiveQL) para serem executados em dados
distribuídos.

• O Hive LLAP é um recurso para cache de dados em


memória para consultas do Hive.
Principais Componentes
APACHE ML SERVICES

• Cluster para soluções de aprendizagem de máquina;

• Fornece aos cientistas de dados, estatísticos e


programadores de R / Python o acesso sob demanda a
métodos escalonáveis e distribuídos de análise no
HDInsigh;

• Possui um conjunto de modelos e algoritmos de machine


learning que podem ser adaptados.
Ecossistema do Azure HDInsight
Próxima Aula
❑ Aprovisionando um Ambiente do HDInsight.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.7. APROVISIONANDO UM AMBIENTE DO HDINSIGHT

PROF. GUSTAVO AGUILAR


Aprovisionando um Ambiente
de HDInsight
Próxima Aula
❑ Introdução ao Azure DataBricks.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.8. INTRODUÇÃO AO AZURE DATABRICKS

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview do Azure Databricks.

❑ Componentes do Azure Databricks.


Overview do Azure Databricks
• Plataforma de análise baseada no Apache Spark e
otimizada para a plataforma de serviços de nuvem do
Microsoft Azure;

• Configuração rápida e automatizada do cluster Spark;

• Fluxos de trabalho simplificados;

• Workspace interativo que permite a colaboração entre os


cientistas de dados, os engenheiros de dados e os
analistas de dados / negócios.
Overview do Azure Databricks
Componentes do Azure Databricks
SPARK SQL E DATAFRAMES

• Módulo Spark para trabalhar usando dados estruturados;

• DataFrame é uma coleção distribuída de dados organizados em colunas


nomeadas (conceitualmente equivalente a uma tabela em um banco de
dados relacional ou uma estrutura de dados em R/Python).
Componentes do Azure Databricks
STREAMING

• Módulo para processamento de dados em tempo real e análise para


aplicativos analíticos e interativos;

• Integra-se com HDFS, Flume e Kafka.


Componentes do Azure Databricks
MLIB: biblioteca Machine Learning que consiste em algoritmos e utilitários
de aprendizado comuns, incluindo classificação, regressão, clustering, etc.

GRAPHX: módulo para tarefas de análise de gráficos e operações em


grafos.

SPARK CORE API: suporte para R, SQL, Python, Scala e Java.


Próxima Aula
❑ Demonstração do Azure DataBricks.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.9. DEMONSTRAÇÃO DO AZURE DATABRICKS

PROF. GUSTAVO AGUILAR


Azure Databricks
Próxima Aula
❑ Introdução ao Azure Data Factory.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.10. INTRODUÇÃO AO AZURE DATA FACTORY

PROF. GUSTAVO AGUILAR


Nesta Aula

❑ Overview do Azure Data Factory.

❑ Componentes do Azure Data Factory.


Overview do Azure Data Factory
• Serviço de integração de dados e ETL baseado em nuvem;

• Conectores para mais de 90 tipos de fontes de dados diferentes;

• ETLs simples à complexos, com integração com Azure HDInsight,


Azure Databricks ou Azure Synapse Analytics.
Overview do Azure Data Factory
Overview do Azure Data Factory
• Permite criar e agendar fluxos de trabalho orientados a dados para
orquestrar a movimentação de dados e transformá-los;
Overview do Azure Data Factory
Overview do Azure Data Factory

• Possibilita a criação de pipelines de forma gráfica ou via código.


Componentes do Azure Data Factory
ATIVIDADE

• Representa uma etapa de processamento em um pipeline.


• Atividade para copiar dados de um repositório de dados
para outro;
• Atividade que executa uma consulta de Hive em um cluster
do Azure HDInsight para transformar ou analisar dados;
• Etc.

• O Data Factory dá suporte a três tipos de atividades:


• Atividades de movimentação de dados;
• Atividades de transformação de dados;
• Atividades de controle.
Componentes do Azure Data Factory
PIPELINE

• Agrupamento lógico de atividades que realiza uma unidade de trabalho.


Juntas, as atividades em um pipeline executam uma tarefa.

• Exemplo: pipeline contém um grupo de atividades que ingere dados


provenientes de um blob do Azure e, em seguida, executa uma consulta
Hive em um cluster HDInsight para particionar os dados.

• Pipeline permite gerenciar atividades como um conjunto, em vez de


gerenciar cada uma individualmente.

• Atividades podem operar de modo sequencial ou de forma


independente, em paralelo.
Componentes do Azure Data Factory
MAPEAMENTO DE FLUXO DE DADOS (MAPPING DATA FLOW)

• São transformações de dados visualmente projetadas no Azure


Data Factory;

• Permitem que os engenheiros de dados desenvolvam lógicas de


transformação de dados sem escrever código;

• O Data Factory executará a lógica em um cluster Spark,


autogerenciado pelo Azure, que será ativado e desativado quando
necessário.
Componentes do Azure
Data Factory

Azure Data Factory Mapping Data Flow


Componentes do Azure Data Factory
▪ CONJUNTO DE DADOS (DATASET): representam as estruturas de
dados nos repositórios de dados, que simplesmente apontam para ou
fazem referência aos dados que deseja-se usar em atividades, seja
como entrada ou saída.

▪ SERVIÇO VINCULADO (LINKED SERVICE): define as informações de


conexão necessárias para que o Data Factory se conecte aos recursos
externos. Duas finalidades:
▪ Para representar um armazenamento de dados: ex. banco SQL / Oracle;
▪ Para representar um recurso de computação que pode hospedar a
execução de uma atividade: ex. um cluster Hadoop do HDInsight, onde a
atividade HDInsightHive é executada.
Componentes do Azure
Data Factory
▪ Um serviço vinculado define a conexão à fonte de dados e um conjunto
de dados representa a estrutura dos dados.
▪ Por exemplo, um serviço vinculado de armazenamento do azure especifica a
string de conexão para conectar-se à conta de Armazenamento do Azure
(Storage Account), e um conjunto de dados de blob do Azure especifica o
contêiner de blob e a pasta que contém os dados.
Próxima Aula
❑ Criando um Pipeline de Dados com o Azure Data Factory.
Arquiteturas Escaláveis de Dados e Nuvem
CAPÍTULO 8. AULA 8.11. CRIANDO UM PIPELINE DE DADOS COM O AZURE DATA FACTORY

PROF. GUSTAVO AGUILAR


Criando um Pipeline de Dados com
o Azure Data Factory
Infraestrutura de Dados
e Arquitetura Escalável
FIM

PROF. GUSTAVO AGUILAR

Você também pode gostar