[Azure] — Sequencia de posts para aprofundar os estudos da certificação Azure DP-900 Data Fundamentals Exam (3/4)
Neste post vamos falar sobre a primeira parte da prova.
Explorar dados não relacionais no Azure (25–30%)
- Explorar os casos de uso e os benefícios de gerenciamento do uso do Armazenamento de Tabelas do Azure
- Explorar os casos de uso e os benefícios de gerenciamento do uso do Armazenamento de Blobs do Azure
- Explorar os casos de uso e os benefícios de gerenciamento do uso do Armazenamento de Arquivos do Azure
- Explorar os casos de uso e os benefícios de gerenciamento do uso do Azure Cosmos DB
1.Qual é o serviço do Azure que implementa o modelo de chave-valor NoSQL ?
Azure Table Storage
2. O que é o Armazenamento de tabelas do Azure ?
Todas as linhas em uma tabela precisam ter uma chave, mas, além disso, as colunas em cada linha podem variar. Ao contrário dos bancos de dados relacionais tradicionais, as tabelas do Armazenamento de Tabelas do Azure não têm nenhum conceito de relações, procedimentos armazenados, índices secundários ou chaves estrangeiras. Os dados geralmente serão desnormalizados, com cada linha contendo todos os dados de uma entidade lógica.
3.Você tem dados semi-estruturados e deseja armazenar esses dados no banco de dados como pares chave-valor em que a chave é exclusiva e as colunas podem variar e cada linha contém todos os dados de uma entidade lógica. Qual opção de armazenamento você deve selecionar ?
Azure Table Storage
4. Por que o Armazenamento de Tabelas do Azure fornece acesso muito mais rápido aos dados de que você precisa ?
O Armazenamento de Tabelas do Azure fornece acesso muito mais rápido aos dados porque os dados estão disponíveis em uma única linha, sem exigir que você execute junções entre relacionamentos. Para ajudar a garantir acesso rápido, o Armazenamento de Tabelas do Azure divide uma tabela em partições.
5.O que é uma partição no Armazenamento de Tabelas do Azure ?
O particionamento é um mecanismo para agrupar linhas relacionadas, com base em uma propriedade comum ou chave de partição. As linhas que compartilham a mesma chave de partição serão armazenadas juntas. O particionamento não apenas ajuda a organizar os dados, mas também pode melhorar a escalabilidade e o desempenho
6. Essas partições podem aumentar ou diminuir conforme necessário ?
As partições são independentes umas das outras e podem aumentar ou diminuir à medida que as linhas são adicionadas ou removidas de uma partição. Uma tabela pode conter qualquer número de partições.
7. Como o particionamento ajuda a melhorar o desempenho?
Ao pesquisar dados, você pode incluir a chave de partição nos critérios de pesquisa. Isso ajuda a diminuir o volume de dados a serem examinados e melhora o desempenho reduzindo a quantidade de E/S (leituras e gravações) necessária para localizar os dados.
8. Do que é composta a chave de Armazenamento de tabelas do Azure (Azure Table Storage) ?
A chave em uma tabela do Armazenamento de Tabelas do Azure compreende dois elementos:
- A chave de partição que identifica a partição que contém a linha
- A chave de linha que é exclusiva para cada linha na mesma partição. Os itens na mesma partição são armazenados em ordem de chave de linha. Se um aplicativo adicionar uma nova linha a uma tabela, o Azure garantirá que a linha seja colocada na posição correta na tabela.
9. O que são consultas de ponto (point query) e consultas de intervalo(range query) no Armazenamento de Tabelas do Azure ?
- Consulta de ponto (point query) → Em uma consulta de ponto, quando um aplicativo recupera uma única linha, a chave de partição permite que o Azure aprimore rapidamente a partição correta e a chave de linha permite que o Azure identifique a linha nessa partição.
- Consultas de intervalo(range query) → Em uma consulta de intervalo, o aplicativo procura um conjunto de linhas em uma partição, especificando o ponto inicial e final do conjunto como chaves de linha. Esse tipo de consulta também é muito rápido, desde que você tenha projetado suas chaves de linha de acordo com os requisitos das consultas realizadas por sua aplicação.
10.Você precisa definir um esquema para o Armazenamento de Tabelas do Azure ?
As tabelas do Armazenamento de Tabelas do Azure não têm esquema. É fácil adaptar seus dados à medida que as necessidades de seu aplicativo evoluem.
11.Quais são as vantagens de usar o Armazenamento de Tabelas do Azure ?
É mais simples de escalar. Leva o mesmo tempo para inserir dados em uma tabela vazia ou em uma tabela com bilhões de entradas. Uma conta de armazenamento do Azure pode conter até 500 TB de dados. Uma tabela pode conter dados semi-estruturados. Não há necessidade de mapear e manter os relacionamentos complexos normalmente exigidos por um banco de dados relacional normalizado. A inserção de linha é rápida, a consulta de dados é rápida, caso especifique as chaves de partição e chave linha como critérios de consulta.
12. Quais são as desvantagens de usar o Armazenamento de Tabelas do Azure ?
A consistência precisa ser considerada, pois as atualizações transacionais em várias entidades não são garantidas. Não há integridade referencial, quaisquer relacionamentos entre linhas precisam ser mantidos externamente à tabela. É difícil filtrar e classificar dados não-chave. As consultas que pesquisam com base em campos não-chave podem resultar em verificações completas da tabela
13. Quais são os casos de uso do Armazenamento de Tabelas do Azure ?
Armazenando TBs de dados estruturados capazes de atender a aplicativos estaláveis na web. Os exemplos incluem catálogos de produtos para aplicativos de comércio eletrônico e informações de clientes, onde os dados podem ser rapidamente identificados e ordenados por uma chave composta. No caso de um catálogo de produtos, a chave de partição pode ser a categoria do produto (como calçados) e a chave de linha identifica o produto específico nessa categoria (como botas de escalada). Armazenar conjuntos de dados que não exigem junções complexas, chaves estrangeiras ou procedimentos armazenados e que podem ser desnormalizados para acesso rápido.
Em um sistema IoT, você pode usar o Armazenamento de Tabelas do Azure para capturar dados do sensor do dispositivo. Cada dispositivo pode ter sua própria partição, e os dados podem ser ordenados pela data e hora em que cada medição foi capturada. Capturar registro de eventos e dados de monitoramento de desempenho. O log de eventos e as informações de desempenho geralmente contêm dados estruturados de acordo com o tipo de evento ou medida de desempenho que está sendo registrada. Os dados podem ser particionados por evento ou tipo de medição de desempenho e ordenados pela data e hora em que foram registrados. Como alternativa, você pode particionar os dados por data, se precisar analisar uma série ordenada de eventos e medidas de desempenho cronologicamente. Se você deseja analisar dados por tipo e data/hora, considere armazenar os dados duas vezes, particionados por tipo e novamente por data. A gravação de dados é rápida e os dados são estáticos depois de gravados.
14. O Armazenamento de Tabelas do Azure destina-se a dar suporte a volumes muito grandes de dados, com até várias centenas de TBs de tamanho ?
SIM até 500 TB de dados
15. Você precisa criar uma conta de armazenamento antes de criar um Armazenamento de Tabelas do Azure ?
Sim, Armazenamento de Tabelas do Azure precisa de uma conta de armazenamento
16.O que é o Armazenamento de Blobs do Azure ?
O armazenamento de Blobs do Azure é um serviço que permite armazenar grandes quantidades de dados não estruturados, ou blobs, na nuvem.
17.Você precisa criar uma conta de armazenamento antes de criar um Armazenamento de Blobs do Azure ?
Sim, Armazenamento de Blobs do Azure precisa de uma conta de armazenamento criada.
18.Quais são os diferentes tipos de blob e quais o Serviços de Blob o Azure oferece suporte ?
- Blobs de blocos(Block blobs) → Um blob de blocos é tratado como um conjunto de blocos. Cada bloco pode variar em tamanho, até 100 MB. Um blob de blocos pode conter até 50.000 blocos, fornecendo um tamanho máximo de mais de 4,7 TB. O bloco é a menor quantidade de dados que pode ser lida ou escrita como uma unidade individual. Blobs de bloco são mais bem usados para armazenar objetos binários grandes e discretos que mudam com pouca frequência.
- Blobs de página (Page blobs) → Um blob de página é organizado como uma coleção de páginas de 512 bytes de tamanho fixo. Um blob de página é otimizado para dar suporte a operações aleatórias de leitura e gravação; você pode buscar e armazenar dados para uma única página, se necessário. Um blob de páginas pode conter até 8 TB de dados. O Azure usa blobs de página para implementar o armazenamento em disco virtual para máquinas virtuais.
- Blobs de acréscimo (Append blobs) → Blobs de acréscimo é um blob de bloco otimizado para dar suporte a operações de acréscimo. Você só pode adicionar blocos ao final de um blob de acréscimo, a atualização ou exclusão de blocos existentes não é compatível. Cada bloco pode variar em tamanho, até 4 MB. O tamanho máximo de um blob de acréscimo é pouco mais de 195 GB.
19. É possível controlar quem pode ler e gravar blobs dentro de um contêiner no nível do contêiner ?
Sim, por meio de assinaturas SAS é possível liberar as permissões abaixo.
20.Quantas camadas de acesso o Armazenamento de Blobs fornece ?
A camada Hot é o padrão. Você usa essa camada para blobs que são acessados com frequência. Os dados do blob são armazenados em mídia de alto desempenho.
A camada Cool. Essa camada tem desempenho inferior e incorre em custos de armazenamento reduzidos em comparação com a camada Hot. Use a camada Cool para dados acessados com pouca frequência. É comum que os blobs recém-criados sejam acessados com frequência inicialmente, mas menos com o passar do tempo. Nessas situações, você pode criar o blob na camada Hot, mas migrá-lo para a camada Cool posteriormente. Você pode migrar um blob da camada Cool de volta para a camada Hot.
A camada Archive (arquivo morto) . Essa camada oferece o menor custo de armazenamento, mas com maior latência. A camada Archive destina-se a dados históricos que não devem ser perdidos, mas são necessários apenas raramente. Os blobs na camada de Arquivo são armazenados efetivamente em um estado offline. A latência de leitura típica para as camadas Hot e Cool é de alguns milissegundos, mas para a camada Archive, pode levar horas para que os dados fiquem disponíveis. Para recuperar um blob da camada de Arquivo, você deve alterar a camada de acesso para Quente ou Frio. O blob será então reidratado. Você pode ler o blob somente quando o processo de reidratação estiver concluído.
21. Você está salvando objetos no Armazenamento de Blobs com a camada Hot e deseja mover esses arquivos após 6 meses para a camada Archive, pois não precisamos mais acessar os arquivos. Como resolver esse cenário ?
É possível criar políticas de gerenciamento de ciclo de vida para blobs em uma conta de armazenamento. Uma política de gerenciamento de ciclo de vida pode mover automaticamente um blob de Hot to Cool e, em seguida, para a camada de Archive (arquivo morto), à medida que envelhece e é usado com menos frequência (a política é baseada no número de dias desde a modificação).
22. Quais são os casos de uso do Armazenamento de Blobs do Azure ?
- Expor imagens ou documentos diretamente para um navegador, na forma de um site estático;
- Armazenando arquivos para acesso distribuído;
- Transmissão de vídeo e áudio;
- Armazenar dados para backup e restauração, recuperação de desastres e arquivamento;
- Armazenar dados para análise por um serviço local ou hospedado no Azure
23. O que você deve fazer se quiser manter e restaurar versões anteriores de um blob ?
Controle de versão
24.Qual recurso você deve habilitar se quiser recuperar um blob que foi removido ou substituído por acidente ?
Soft Delete
25.O que são snapshots ?
Um snapshot é uma versão somente leitura de um blob em um determinado momento.
26.O que é a opção Change Feed no Blob Storage Service ?
O feed de alterações para um blob fornece um registro ordenado, somente leitura, das atualizações feitas em um blob.
27.O que é o Armazenamento de Arquivos do Azure ?
O Armazenamento de Arquivos do Azure permite que você compartilhe até 100 TB de dados em uma única conta de armazenamento. O tamanho máximo de um único arquivo é de 1TB. O Armazenamento de Arquivos do Azure oferece suporte a até 2.000 conexões simultâneas por arquivo compartilhado.
28. Como você carrega arquivos no Armazenamento de Arquivos do Azure ?
Você pode carregar arquivos para o Armazenamento de Arquivos do Azure usando o portal do Azure ou ferramentas como o utilitário AzCopy. Você também pode usar o serviço de Sincronização de Arquivos do Azure para sincronizar cópias em cache local de arquivos compartilhados com os dados no Armazenamento de Arquivos do Azure.
29.Quantas camadas que o Armazenamento de Arquivos do Azure oferece ?
Standard → usa hardware baseado em disco rígido em um datacenter e a Premium → usa discos de estado sólido (SSD). O nível Premium oferece maior taxa de transferência, mas é cobrado a uma taxa mais alta.
30.Quais são alguns dos casos de uso do Armazenamento de Arquivos do Azure ?
- Migre aplicativos existentes para a nuvem.
- Compartilhe dados do servidor no local e na nuvem.
- Integre aplicativos modernos com o Armazenamento de Arquivos do Azure.
- Simplifique a hospedagem de dados de carga de trabalho de alta disponibilidade (HA).
31. O que é o Azure Cosmos DB ?
O Azure Cosmos DB é um sistema de gerenciamento de banco de dados NoSQL multi-modelo. O Cosmos DB gerencia dados como um conjunto particionado de documentos. Um documento é uma coleção de campos, identificados por uma chave. Os campos em cada documento podem variar e um campo pode conter documentos filho. Muitos bancos de dados de documentos usam JSON (JavaScript Object Notation) para representar a estrutura do documento. Nesse formato, os campos em um documento são colocados entre chaves, { … }, e cada campo é prefixado com seu nome. O Cosmos DB é um sistema de gerenciamento de banco de dados altamente escalável. O Cosmos DB aloca automaticamente espaço em um contêiner para suas partições, e cada partição pode crescer até 10 GB de tamanho. Os índices são criados e mantidos automaticamente.
32. Quais são as diferentes APIs suportadas pelo Cosmos DB ?
- API SQL → Essa interface fornece uma linguagem de consulta semelhante a SQL sobre documentos, permite identificar e recuperar documentos usando instruções SELECT.
- Table API → Essa interface permite que você use a API do Armazenamento de Tabelas do Azure para armazenar e recuperar documentos. A finalidade dessa interface é permitir que você alterne do Armazenamento de Tabelas para o Cosmos DB sem exigir que você modifique seus aplicativos existentes.
- API do MongoDB → MongoDB é outro banco de dados de documentos bem conhecido, com sua própria interface programática. Muitas organizações executam o MongoDB localmente. Você pode usar a API do MongoDB para Cosmos DB para permitir que um aplicativo do MongoDB seja executado inalterado em um banco de dados do Cosmos DB.
- API do Cassandra → Cassandra é um sistema de gerenciamento de banco de dados de família de colunas. Este é outro sistema de gerenciamento de banco de dados que muitas organizações executam no local. A API do Cassandra para Cosmos DB fornece uma interface programática semelhante ao Cassandra para o Cosmos DB. As solicitações de API do Cassandra são mapeadas para solicitações de documento do Cosmos DB.
- API do Gremlin → A API Gremlin implementa uma interface de banco de dados grafo para Cosmos DB. Um grafo é uma coleção de objetos de dados e relacionamentos direcionados. Os dados ainda são mantidos como um conjunto de documentos no Cosmos DB, mas a API do Gremlin permite que você execute consultas de grafos sobre dados. Usando a API Gremlin, você pode percorrer os objetos e relacionamentos no grafo para descobrir todos os tipos de relacionamentos complexos. O objetivo principal das APIs Table, MongoDB, Cassandra e Gremlin é oferecer suporte a aplicativos existentes. Se você estiver criando um novo aplicativo e banco de dados, deverá usar a API SQL.
33. Quais são alguns dos cenários em que o CosmosDB é adequado?
Web e varejo → Usando o modelo de replicação multimestre do Azure Cosmos DB e os compromissos de desempenho da Microsoft, os Engenheiros de dados podem implementar uma arquitetura de dados para dar suporte a aplicativos Web e móveis que atingem menos do que um tempo de resposta de 10 ms em qualquer lugar do mundo.
Jogos → A camada de banco de dados é um componente crucial dos aplicativos de jogos. Os jogos modernos realizam processamento gráfico em clientes móveis/de console, mas dependem da nuvem para fornecer conteúdo personalizado, como estatísticas durante o jogo, integração de mídias sociais e tabelas de classificação
com as maiores pontuações
Cenários de IoT → Milhares de dispositivos foram criados e vendidos para gerar dados de sensor conhecidos como dispositivos IoT (Internet das Coisas). Com tecnologias como o Hub IoT do Azure, os Engenheiros de Dados podem criar facilmente uma arquitetura da solução de dados que captura dados em tempo real. O Cosmos DB pode aceitar e armazenar essas informações muito rapidamente.
34.Quais são os elementos de uma chave de armazenamento do Azure Table ?
- Chave de Partição → Partition key
- Chave de Linha → Row Key
35.Quando você deve usar um blob de bloco e quando deve usar um blob de página ?
- blob de página → para blobs que exigem acesso aleatório de leitura e gravação.
- blob de bloco → para objetos discretos que mudam com pouca frequência.
36.Por que você pode usar o armazenamento de arquivos do Azure ?
Para permitir que usuários em sites diferentes compartilhem arquivos.
37. Você está construindo um sistema que monitora a temperatura ao longo de um conjunto de blocos de escritórios e define o ar condicionado em cada sala em cada bloco para manter uma temperatura ambiente agradável. Seu sistema precisa gerenciar o ar condicionado em vários milhares de prédios espalhados pelo país/região, e cada prédio normalmente contém pelo menos 100 quartos com ar condicionado. Que tipo de armazenamento de dados NoSQL é mais apropriado para capturar os dados de temperatura para permitir que sejam processados rapidamente ? (Ps tirada do slide oficial do DP900)
Envie os dados para um banco de dados do Cosmos DB e use o Azure Functions para processar os dados.
38. Quais são as ferramentas que você pode usar para provisionar serviços?
- Azure portal
- Azure command-line interface (CLI)
- Azure PowerShell
- Azure Resource Manager templates
39. O que é replicação e quantas opções temos ao provisionar uma conta de armazenamento ?
Replicação → Os dados em uma conta de armazenamento do Azure são sempre replicados três vezes na região que você especifica como o local principal da conta. O Armazenamento do Azure oferece duas opções de como seus dados são replicados na região primária:
Localmente redundante (LRS) → copia seus dados de forma síncrona três vezes em um único local físico na região. O LRS é a opção de replicação mais barata, mas não é recomendado para aplicativos que exigem alta disponibilidade.
Geograficamente Redundância (GRS) → copia seus dados de forma síncrona três vezes em um único local físico na região primária usando o LRS. Em seguida, ele copia seus dados de forma assíncrona para um único local físico na região secundária. Essa forma de replicação protege você contra interrupções regionais.
Geograficamente Redundância com acesso de leitura (RA-GRS) → é uma extensão do GRS que fornece acesso direto somente leitura aos dados no local secundário. Por outro lado, a opção GRS não expõe os dados no local secundário e é usada apenas para recuperação de uma falha no local primário. A replicação RA-GRS permite que você armazene uma cópia somente leitura dos dados perto de usuários localizados em um local geograficamente distante, ajudando a reduzir os tempos de latência de leitura.
40. Quais são as opções para proteger os recursos do Azure, como conta de armazenamento, Azure cosmos DB entro outros ?
- Azure Private Endpoint
- Firewalls e virtual networks
- Configurar autenticação
- Configurar controle de acesso
- Configurar segurança avançada
41. Quando configuramos o CosmosDB para replicação, qual é o comportamento padrão?
Por padrão, apenas a região na qual você criou a conta oferece suporte a operações de gravação, as réplicas são todas somente leitura.
42.A replicação é de maneira assíncrona no Cosmos DB ?
Sim, a Replicação é assíncrona, portanto, é provável que haja um atraso entre uma alteração feita em uma região e essa alteração tornando-se visível em outras regiões.
43. O que é consistência eventual ?
Esta opção é a menos consistente. É baseado na situação que acabamos de descrever na questão 42. As alterações não serão perdidas, elas aparecerão eventualmente, mas podem não aparecer imediatamente. Além disso, se um aplicativo fizer várias alterações, algumas dessas alterações poderão ser imediatamente visíveis, mas outras poderão ser atrasadas, as alterações podem aparecer fora de ordem.
44. O que é a opção de prefixo consistente ?
Essa opção garante que as alterações apareçam em ordem, embora possa haver um atraso antes que elas se tornem visíveis. Nesse período, os aplicativos podem ver dados antigos.
45. O que é a opção Sessão ?
Se um aplicativo fizer várias alterações, todas elas ficarão visíveis para esse aplicativo e em ordem. Outros aplicativos podem ver dados antigos, embora as alterações apareçam em ordem, como aconteceu com a opção Prefixo consistente.
46. Qual é a opção Staleness limitada?
Há um atraso entre a gravação e a leitura dos dados atualizados. Você especifica essa inatividade como um período de tempo ou o número de versões anteriores para as quais os dados serão inconsistentes.
47. O que é uma opção de consistência forte?
Todas as gravações são visíveis apenas para os clientes depois que as alterações são confirmadas como gravadas com êxito em todas as réplicas. Esta opção não está disponível se você precisar distribuir seus dados em várias regiões globais.
48. Qual opção de consistência do CosmosDB fornece a menor latência e a menor consistência?
Consistência eventual
49. Qual é a assinatura de acesso compartilhado?
Você pode usar assinaturas de acesso compartilhado (SAS) para conceder direitos limitados a recursos em uma conta de armazenamento do Azure por um período de tempo especificado. Esse recurso permite que os aplicativos acessem recursos como blobs e arquivos, sem exigir que eles sejam autenticados primeiro.
50. Qual é o operador que você usa como parte da cláusula SELECT para eliminar duplicatas nos dados do resultado?
DISTINTO (DISTINCT), fui ruim essa tradução para português.
51. Cite algumas das funções agregadoras?
COUNT(x) → Essa função retorna uma contagem do número de instâncias do campo p no conjunto de resultados. Para contar todos os itens no conjunto de resultados, defina p como um valor escalar, como 1.
SUM(p) → Esta função retorna a soma de todas as instâncias do campo p no conjunto de resultados. Os valores de p devem ser numéricos.
AVG(p) → Esta função retorna a média matemática de todas as instâncias do campo p no conjunto de resultados. Os valores de p devem ser numéricos.
MAX(p) → Esta função retorna o valor máximo do campo p no conjunto de resultados.
MIN(p) → Esta função retorna o valor mínimo do campo p no conjunto de resultados.