Fundamentos de dados não relacionais

Entenda os niveis do Blob Storage, as APIs do Cosmos DB, Azure Files e Data Lake Storage, explicados com analogias simples para iniciantes.

O exame DP-900 pergunta frequentemente qual API do Cosmos DB usar em cada cenario e qual nivel do Blob Storage e mais economico. Este guia explica por que o Azure tem tantos servicos de armazenamento diferentes e quando usar cada um, com analogias simples.

 

Por que precisamos de diferentes servicos de armazenamento?

Pense nos diferentes tipos de armazenamento na vida real. Um supermercado coloca os produtos mais vendidos ao alcance da mao. Um deposito guarda mercadorias de forma menos acessivel, mas mais barata. Um arquivo morto guarda documentos raramente consultados ao menor custo, mas recupera-los leva tempo.

O armazenamento em nuvem funciona da mesma forma. Diferentes tipos de dados — arquivos, logs, conjuntos de dados analiticos, dados de apps globais — precisam de solucoes de armazenamento otimizadas para seus padroes de acesso e custos.

| Servico | Analogia | Melhor para | |---------|---------|------------| | Blob Storage | Armario de arquivos | Fotos, videos, documentos, backups | | Azure Files | Unidade de rede compartilhada | Compartilhar arquivos entre usuarios | | Table Storage | Planilha simples | Dados chave-valor estruturados | | Data Lake Gen2 | Deposito de analitica massivo | Dados brutos para analise | | Cosmos DB | Rede de bibliotecas global | Dados NoSQL distribuidos globalmente |

 

Azure Blob Storage — O armario de arquivos

Blob significa Binary Large Object. E o armazenamento de objetos do Azure para dados nao estruturados: imagens, videos, PDFs, backups. Os tres tipos de blob sao: Block Blob (o mais comum, para arquivos grandes como imagens e videos), Append Blob (permite apenas adicionar dados ao final, ideal para arquivos de log) e Page Blob (paginas de 512 bytes para leitura/gravacao aleatoria, usado pelos discos de VM).

Os niveis de acesso equilibram custo e velocidade. Hot e o mais caro em armazenamento, mas o mais barato em acesso, para dados consultados diariamente. Cool e intermediario, para dados mantidos por mais de 30 dias. Cold e para dados mantidos por mais de 90 dias. Archive e o mais barato em armazenamento, mas requer reidratacao (ate 15 horas) antes de acessar os dados.

| Nivel | Custo armazenamento | Custo acesso | Melhor para | |-------|--------------------|--------------|----| | Hot | Alto | Baixo | Acesso diario | | Cool | Medio | Medio | 30+ dias, acesso ocasional | | Cold | Baixo | Medio-Alto | 90+ dias, acesso raro | | Archive | Muito baixo | Muito alto + demora | 180+ dias, quase nunca |

As opcoes de redundancia sao LRS (3 copias no mesmo datacenter), ZRS (zonas de disponibilidade na mesma regiao), GRS (replicacao para outra regiao) e GZRS (combinacao de zona e geo).

!3 tipos de armazenamento Blob

Azure Files — Unidade de rede compartilhada

O Azure Files fornece compartilhamentos de arquivos totalmente gerenciados na nuvem que voce pode montar como um servidor de arquivos tradicional. Suporta SMB e NFS, para que clientes Windows, Linux e macOS possam se conectar. Ideal para migrar servidores de arquivos locais para a nuvem ou compartilhar arquivos de configuracao entre varias maquinas virtuais.

 

Azure Table Storage — Armazenamento simples de chave-valor

O Azure Table Storage e um armazenamento NoSQL de chave-valor. Como uma planilha gigante onde cada linha pode ter colunas diferentes: sem esquema fixo. E muito mais barato e escalavel do que um banco de dados relacional, mas nao suporta JOINs nem consultas complexas. Observacao: a API Table do Cosmos DB oferece distribuicao global e latencia de milissegundos, diferente do Table Storage basico.

 

Azure Data Lake Storage Gen2 — Deposito de analitica

O Data Lake Storage Gen2 e construido sobre o Blob Storage com um sistema de arquivos hierarquico adicionado. Armazena dados brutos em escala massiva (de terabytes a petabytes) e permite que mecanismos de analitica como Azure Databricks e Synapse os leiam diretamente. Se o Blob Storage e um grande deposito, o ADLS Gen2 e uma biblioteca meticulosamente organizada com pastas e controle de acesso granular (ACLs compativeis com POSIX).

 

Azure Cosmos DB — Rede de bibliotecas global

Imagine que seu servidor de banco de dados esta em Lisboa. Um usuario no Rio de Janeiro faz uma solicitacao e os dados precisam viajar de ida e volta pelo Atlantico: 200 ms ou mais. O Cosmos DB replica automaticamente os dados em regioes do Azure em todo o mundo, garantindo latencia de um digito em milissegundos, independentemente de onde os usuarios estejam.

Conceitos-chave: Request Unit (RU) e a unidade de throughput (ler 1 KB = 1 RU). A Partition Key e o atributo usado para distribuir dados uniformemente. Os niveis de consistencia vao de Strong (dados sempre atuais, maior latencia) a Eventual (mais rapido, dados potencialmente desatualizados por um momento).

As APIs do Cosmos DB permitem usar drivers de bancos de dados conhecidos sem reescrever a aplicacao:

| API | Modelo de dados | Caso de uso | |-----|----------------|------------| | NoSQL (Core) | Documentos JSON | Uso geral, escolha padrao | | MongoDB | Documentos BSON | Migrar apps MongoDB | | Cassandra | Familias de colunas | Gravacoes massivas, series temporais | | Gremlin | Grafo (nos + arestas) | Redes sociais, recomendacoes | | Table | Chave-valor | Migrar apps Azure Table Storage |

 

Pontos-chave para o exame

"imagens, videos, arquivos" -- Blob Storage "acesso diario, armazenamento mais caro" -- nivel Hot "mantido 30+ dias, acesso ocasional" -- nivel Cool "quase nunca acessado, reidratacao ate 15h" -- nivel Archive "3 copias no mesmo datacenter" -- LRS / "copia em outra regiao" -- GRS "arquivos de log, apenas adicionar ao final" -- Append Blob "disco de VM (VHD)" -- Page Blob "servidor de arquivos compartilhado, SMB/NFS" -- Azure Files "chave-valor simples, sem esquema fixo" -- Azure Table Storage "dados analiticos massivos, espaco de nomes hierarquico" -- Data Lake Storage Gen2 "distribuicao global, latencia de um digito em ms" -- Cosmos DB "documentos JSON, API padrao" -- Cosmos DB NoSQL API "migrar apps MongoDB" -- Cosmos DB MongoDB API "dados de grafo, redes sociais" -- Cosmos DB Gremlin API "familias de colunas, gravacoes massivas" -- Cosmos DB Cassandra API "chave de distribuicao de dados, distribuicao uniforme" -- Partition Key "unidade de throughput, ler 1KB = 1RU" -- Request Unit (RU)

Voltar à lista do blog