Você está na página 1de 94

Bootcamp Data Woman Engineers 2024 | Microsoft e DataEX

Modulo 1: Explorar os conceitos principais sobre dados

Nas últimas décadas, a quantidade de dados gerados por sistemas, aplicativos e


dispositivos aumentou significativamente. Os dados estão em toda parte, em
uma infinidade de estruturas e formatos.

Os dados são agora mais fáceis de recolher e mais baratos de armazenar,


tornando-os acessíveis a quase todas as empresas. As soluções de dados
incluem tecnologias de software e plataformas que podem ajudar a facilitar a
recolha, a análise e o armazenamento de informações importantes. Todas as
empresas querem aumentar as suas receitas e obter mais lucros. Neste mercado
competitivo, os dados são um ativo importante. Quando analisados
corretamente, os dados fornecem uma riqueza de informações úteis e informam
decisões críticas de negócios.

A capacidade de capturar, armazenar e analisar dados é um requisito


fundamental para todas as organizações do mundo. Neste módulo, você
aprenderá sobre opções para representar e armazenar dados e sobre cargas de
trabalho de dados típicas. Ao concluir este módulo, você construirá a base para
aprender sobre as técnicas e serviços usados para trabalhar com dados.

Identificar formatos de dados


Os dados são uma coleção de fatos, como números, descrições e observações,
usados para registrar informações. As estruturas de dados nas quais esses
dados são organizados geralmente representam entidades que são importantes
para uma organização (como clientes, produtos, ordens de venda e assim por
diante). Cada entidade normalmente tem um ou mais atributos ou
características (por exemplo, um cliente pode ter um nome, um endereço, um
número de telefone e assim por diante).

Você pode classificar os dados como estruturados, semiestruturados ou não


estruturados.

Dados estruturados

Dados estruturados são dados que aderem a um esquema fixo, portanto, todos
os dados têm os mesmos campos ou propriedades. Mais comumente, o
esquema para entidades de dados estruturados é tabular - em outras palavras,
os dados são representados em uma ou mais tabelas que consistem em linhas
para representar cada instância de uma entidade de dados e colunas para
representar atributos da entidade. Por exemplo, a imagem a seguir mostra
representações de dados tabulares para entidades Cliente e Produto.

Os dados estruturados geralmente são armazenados em um banco de dados no


qual várias tabelas podem fazer referência umas às outras usando valores-chave
em um modelo relacional, que exploraremos mais detalhadamente mais adiante.

Dados semiestruturados

Dados semiestruturados são informações que têm alguma estrutura, mas que
permitem alguma variação entre instâncias de entidade. Por exemplo, embora a
maioria dos clientes possa ter um endereço de e-mail, alguns podem ter vários
endereços de e-mail e outros podem não ter nenhum.

Um formato comum para dados semiestruturados é JavaScript Object


Notation (JSON). O exemplo abaixo mostra um par de documentos JSON que
representam informações do cliente. Cada documento do cliente inclui
endereço e informações de contato, mas os campos específicos variam entre os
clientes.

JSONCopiar
// Customer 1
{
"firstName": "Joe",
"lastName": "Jones",
"address":
{
"streetAddress": "1 Main St.",
"city": "New York",
"state": "NY",
"postalCode": "10099"
},
"contact":
[
{
"type": "home",
"number": "555 123-1234"
},
{
"type": "email",
"address": "joe@litware.com"
}
]
}

// Customer 2
{
"firstName": "Samir",
"lastName": "Nadoy",
"address":
{
"streetAddress": "123 Elm Pl.",
"unit": "500",
"city": "Seattle",
"state": "WA",
"postalCode": "98999"
},
"contact":
[
{
"type": "email",
"address": "samir@northwind.com"
}
]
}
Nota

JSON é apenas uma das muitas maneiras pelas quais os dados semiestruturados
podem ser representados. O objetivo aqui não é fornecer um exame detalhado
da sintaxe JSON, mas sim ilustrar a natureza flexível das representações de
dados semiestruturadas.

Dados não estruturados

Nem todos os dados são estruturados ou até semiestruturados. Por exemplo,


documentos, imagens, dados de áudio e vídeo e arquivos binários podem não
ter uma estrutura específica. Este tipo de dados é referido como dados não
estruturados.

Explore o armazenamento de
arquivos
A capacidade de armazenar dados em arquivos é um elemento central de
qualquer sistema de computação. Os arquivos podem ser armazenados em
sistemas de arquivos locais no disco rígido do seu computador pessoal e em
mídias removíveis, como unidades USB; Mas, na maioria das organizações,
arquivos de dados importantes são armazenados centralmente em algum tipo
de sistema de armazenamento de arquivos compartilhado. Cada vez mais, esse
local de armazenamento central é hospedado na nuvem, permitindo um
armazenamento econômico, seguro e confiável para grandes volumes de dados.

O formato de arquivo específico usado para armazenar dados depende de


vários fatores, incluindo:

 O tipo de dados que estão sendo armazenados (estruturados,


semiestruturados ou não estruturados).
 Os aplicativos e serviços que precisarão ler, gravar e processar os dados.
 A necessidade de os arquivos de dados serem legíveis por seres humanos,
ou otimizados para armazenamento e processamento eficientes.

Alguns formatos de arquivo comuns são discutidos abaixo.

Arquivos de texto delimitados

Os dados geralmente são armazenados em formato de texto sem formatação


com delimitadores de campo específicos e terminadores de linha. O formato
mais comum para dados delimitados é valores separados por vírgulas (CSV), no
qual os campos são separados por vírgulas e as linhas são terminadas por um
retorno de carro / nova linha. Opcionalmente, a primeira linha pode incluir os
nomes dos campos. Outros formatos comuns incluem valores separados por
tabulações (TSV) e delimitados por espaço (nos quais guias ou espaços são
usados para separar campos) e dados de largura fixa nos quais cada campo
recebe um número fixo de caracteres. O texto delimitado é uma boa opção para
dados estruturados que precisam ser acessados por uma ampla gama de
aplicativos e serviços em um formato legível por humanos.

O exemplo a seguir mostra os dados do cliente em formato delimitado por


vírgula:

Copiar
FirstName,LastName,Email
Joe,Jones,joe@litware.com
Samir,Nadoy,samir@northwind.com

JavaScript Object Notation (JSON)

JSON é um formato ubíquo no qual um esquema de documento hierárquico é


usado para definir entidades de dados (objetos) que têm vários atributos. Cada
atributo pode ser um objeto (ou uma coleção de objetos); tornando o JSON um
formato flexível que é bom para dados estruturados e semiestruturados.

O exemplo a seguir mostra um documento JSON contendo uma coleção de


clientes. Cada cliente tem três atributos (firstName, lastName e contact),
e o atributo contact contém uma coleção de objetos que representam um ou
mais métodos de contato (email ou telefone). Observe que os objetos são
colocados entre chaves ({..}) e as coleções estão entre colchetes ([..]). Os
atributos são representados por pares nome:valor e separados por vírgulas (,).

JSONCopiar
{
"customers":
[
{
"firstName": "Joe",
"lastName": "Jones",
"contact":
[
{
"type": "home",
"number": "555 123-1234"
},
{
"type": "email",
"address": "joe@litware.com"
}
]
},
{
"firstName": "Samir",
"lastName": "Nadoy",
"contact":
[
{
"type": "email",
"address": "samir@northwind.com"
}
]
}
]
}

Linguagem de marcação extensível (XML)

XML é um formato de dados legível por humanos que foi popular nas décadas
de 1990 e 2000. Ele foi amplamente substituído pelo formato JSON menos
detalhado, mas ainda existem alguns sistemas que usam XML para representar
dados. O XML usa tags entre colchetes angulares (<.. />) para
definir elementos e atributos, como mostrado neste exemplo:

XMLCopiar
<Customers>
<Customer name="Joe" lastName="Jones">
<ContactDetails>
<Contact type="home" number="555 123-1234"/>
<Contact type="email" address="joe@litware.com"/>
</ContactDetails>
</Customer>
<Customer name="Samir" lastName="Nadoy">
<ContactDetails>
<Contact type="email" address="samir@northwind.com"/>
</ContactDetails>
</Customer>
</Customers>

BLOB (Binary Large Object, objeto binário grande)

Em última análise, todos os arquivos são armazenados como dados binários (1 e


0), mas nos formatos legíveis por humanos discutidos acima, os bytes de dados
binários são mapeados para caracteres imprimíveis (normalmente através de um
esquema de codificação de caracteres, como ASCII ou Unicode). No entanto,
alguns formatos de arquivo, particularmente para dados não estruturados,
armazenam os dados como binários brutos que devem ser interpretados por
aplicativos e renderizados. Os tipos comuns de dados armazenados como
binários incluem imagens, vídeo, áudio e documentos específicos do aplicativo.

Ao trabalhar com dados como este, os profissionais de dados geralmente se


referem aos arquivos de dados como BLOBs (Binary Large Objects).

Formatos de arquivo otimizados

Embora formatos legíveis por humanos para dados estruturados e


semiestruturados possam ser úteis, eles normalmente não são otimizados para
espaço de armazenamento ou processamento. Com o tempo, alguns formatos
de arquivo especializados que permitem compactação, indexação e
armazenamento e processamento eficientes foram desenvolvidos.

Alguns formatos de arquivo otimizados comuns que você pode ver


incluem Avro, ORC e Parquet:

 O Avro é um formato baseado em linhas. Foi criado pelo Apache.


Cada registo contém um cabeçalho que descreve a estrutura dos
respetivos dados. Esse cabeçalho é armazenado no formato JSON.
Os dados são armazenados como informações binárias. Uma
aplicação utiliza as informações no cabeçalho para analisar os
dados binários e extrair os respetivos campos. O Avro é um bom
formato para compactar dados e minimizar os requisitos de
armazenamento e largura de banda de rede.

 O formato ORC (formato de colunas de linhas otimizadas) organiza


os dados em colunas e não em linhas. Foi desenvolvido pela
HortonWorks para otimizar as operações de leitura e escrita no
Apache Hive (o Hive é um sistema de armazém de dados que
suporta rápida sumarização de dados e consultas em grandes
conjuntos de dados). Um ficheiro ORC contém faixas de dados.
Cada faixa inclui os dados de uma coluna ou conjunto de colunas.
Uma faixa contém um índice sobre as respetivas linhas, os dados de
cada linha e um rodapé com informações estatísticas (número,
soma, máximo, mínimo, entre outras) de cada coluna.
 O Parquet é outro tipo de formato de dados de colunas. Foi criado
pela Cloudera e pelo Twitter. Um ficheiro Parquet contém grupos
de linhas. Os dados de cada coluna são armazenados no mesmo
grupo de linhas. Cada grupo de linhas contém um ou vários
segmentos de dados. Um ficheiro Parquet inclui metadados que
descrevem o conjunto de linhas em cada segmento. Uma aplicação
pode utilizar estes metadados para localizar rapidamente o
segmento correto para um determinado conjunto de linhas e obter
os dados relativos a essas linhas nas colunas especificadas. O
Parquet é especialmente indicado para armazenar e processar tipos
de dados aninhados de forma eficiente. Além disso, suporta
esquemas de compressão e codificação muito eficientes.

Explorar bases de dados


Uma base de dados é utilizada para definir um sistema central no qual os dados
podem ser armazenados e consultados. Em um sentido simplista, o sistema de
arquivos no qual os arquivos são armazenados é uma espécie de banco de
dados; mas quando usamos o termo em um contexto de dados profissional,
geralmente nos referimos a um sistema dedicado para gerenciar registros de
dados em vez de arquivos.

Bases de dados relacionais

Os bancos de dados relacionais são comumente usados para armazenar e


consultar dados estruturados. Os dados são armazenados em tabelas que
representam entidades, como clientes, produtos ou ordens de venda. A cada
instância de uma entidade é atribuída uma chave primária que a identifica
exclusivamente, e essas chaves são usadas para referenciar a instância da
entidade em outras tabelas. Por exemplo, a chave primária de um cliente pode
ser referenciada em um registro de ordem de venda para indicar qual cliente fez
o pedido. Esse uso de chaves para referenciar entidades de dados permite que
um banco de dados relacional seja normalizado, o que em parte significa a
eliminação de valores de dados duplicados para que, por exemplo, os detalhes
de um cliente individual sejam armazenados apenas uma vez, não para cada
ordem de venda que o cliente coloca. As tabelas são gerenciadas e consultadas
usando SQL (Structured Query Language), que é baseada em um padrão ANSI,
portanto, é semelhante em vários sistemas de banco de dados.
Bases de dados não relacionais

Bancos de dados não relacionais são sistemas de gerenciamento de dados que


não aplicam um esquema relacional aos dados. Os bancos de dados não
relacionais são frequentemente chamados de banco de dados NoSQL, embora
alguns ofereçam suporte a uma variante da linguagem SQL.

Há quatro tipos comuns de banco de dados não relacional comumente em uso.

 Bancos de dados chave-valor em que cada registro consiste em


uma chave exclusiva e um valor associado, que pode estar em
qualquer formato.

 Bancos de dados de documentos, que são uma forma específica


de banco de dados chave-valor em que o valor é um documento
JSON (que o sistema é otimizado para analisar e consultar)

 Bancos de dados de famílias de colunas, que armazenam dados


tabulares que incluem linhas e colunas, mas você pode dividir
as colunas em grupos conhecidos como famílias de colunas.
Cada família de colunas detém um conjunto de colunas que estão
logicamente relacionadas.

 Bancos de dados gráficos, que armazenam entidades como nós


com links para definir relações entre eles.

Explore o processamento de dados


transacionais
Um sistema de processamento de dados transacionais é o que a maioria das
pessoas considera a principal função da computação empresarial. Um sistema
transacional registra transações que encapsulam eventos específicos que a
organização deseja rastrear. Uma transação pode ser financeira, como a
movimentação de dinheiro entre contas em um sistema bancário, ou pode fazer
parte de um sistema de varejo, rastreando pagamentos de bens e serviços de
clientes. Pense numa transação como uma unidade de trabalho pequena e
discreta.

Normalmente, os sistemas transacionais são de volume elevado, processando


por vezes vários milhões de transações num único dia. Os dados processados
têm de estar acessíveis muito rapidamente. O trabalho executado pelos
sistemas transacionais é geralmente conhecido como Processamento de
Transações Online (OLTP).

As soluções OLTP dependem de um sistema de banco de dados no qual o


armazenamento de dados é otimizado para operações de leitura e gravação, a
fim de suportar cargas de trabalho transacionais nas quais os registros de dados
são criados, recuperados, atualizados e excluídos (geralmente referidos
como operações CRUD). Estas operações são aplicadas transacionalmente, de
forma a garantir a integridade dos dados armazenados na base de dados. Para
fazer isso, os sistemas OLTP impõem transações que suportam a chamada
semântica ACID:

 Atomicidade – cada transação é tratada como uma única unidade,


que é bem-sucedida completamente ou falha completamente. Por
exemplo, uma transação que envolva debitar fundos de uma conta
e creditar o mesmo valor em outra conta deve concluir ambas as
ações. Se uma ação não puder ser concluída, a outra ação deverá
falhar.
 Consistência – as transações só podem levar os dados no banco de
dados de um estado válido para outro. Para continuar o exemplo de
débito e crédito acima, o estado concluído da transação deve
refletir a transferência de fundos de uma conta para a outra.
 Isolamento – transações simultâneas não podem interferir umas
com as outras e devem resultar em um estado consistente do
banco de dados. Por exemplo, enquanto a transação para transferir
fundos de uma conta para outra está em processo, outra transação
que verifica o saldo dessas contas deve retornar resultados
consistentes - a transação de verificação de saldo não pode
recuperar um valor para uma conta que reflita o saldo antes da
transferência e um valor para a outra conta que reflita o saldo após a
transferência.
 Durabilidade – quando uma transação é autorizada, ela permanece
comprometida. Após a conclusão da transação de transferência de
conta, os saldos de conta revisados são mantidos de modo que,
mesmo que o sistema de banco de dados seja desligado, a
transação confirmada seja refletida quando for ligada novamente.

Os sistemas OLTP são normalmente usados para dar suporte a aplicativos em


tempo real que processam dados corporativos - geralmente chamados de
aplicativos de linha de negócios (LOB).
Explore o processamento de dados
analíticos
O processamento de dados analíticos normalmente usa sistemas somente
leitura (ou principalmente leitura) que armazenam grandes volumes de dados
históricos ou métricas de negócios. A análise pode ser baseada em um
instantâneo dos dados em um determinado ponto no tempo ou em uma série
de instantâneos.

Os detalhes específicos de um sistema de processamento analítico podem variar


entre soluções, mas uma arquitetura comum para análise em escala empresarial
tem esta aparência:

1. Os dados operacionais são extraídos, transformados e carregados


(ETL) em um data lake para análise.
2. Os dados são carregados em um esquema de tabelas -
normalmente em um data lakehouse baseado em Spark com
abstrações tabulares sobre arquivos no data lake ou em um data
warehouse com um mecanismo SQL totalmente relacional.
3. Os dados no data warehouse podem ser agregados e carregados
em um modelo OLAP (processamento analítico online) ou cubo. Os
valores numéricos agregados (medidas) das tabelas de fatos são
calculados para interseções de dimensões a partir de tabelas
de dimensões. Por exemplo, a receita de vendas pode ser totalizada
por data, cliente e produto.
4. Os dados no data lake, data warehouse e modelo analítico podem
ser consultados para produzir relatórios, visualizações e painéis.

Os data lakes são comuns em cenários de processamento analítico de dados em


grande escala, onde um grande volume de dados baseados em arquivos deve
ser coletado e analisado.

Os armazéns de dados são uma maneira estabelecida de armazenar dados em


um esquema relacional otimizado para operações de leitura – principalmente
consultas para dar suporte a relatórios e visualização de dados. Os Data
Lakehouses são uma inovação mais recente que combina o armazenamento
flexível e escalável de um data lake com a semântica de consulta relacional de
um data warehouse. O esquema de tabela pode exigir alguma desnormalização
de dados em uma fonte de dados OLTP (introduzindo alguma duplicação para
tornar as consultas mais rápidas).

Um modelo OLAP é um tipo agregado de armazenamento de dados otimizado


para cargas de trabalho analíticas. As agregações de dados são entre dimensões
em diferentes níveis, permitindo que você faça drill up/down para visualizar
agregações em vários níveis hierárquicos, por exemplo, para encontrar vendas
totais por região, por cidade ou para um endereço individual. Como os dados
OLAP são pré-agregados, as consultas para retornar os resumos que eles
contêm podem ser executadas rapidamente.

Diferentes tipos de usuários podem realizar trabalho analítico de dados em


diferentes estágios da arquitetura geral. Por exemplo:

 Os cientistas de dados podem trabalhar diretamente com arquivos


de dados em um data lake para explorar e modelar dados.
 Os analistas de dados podem consultar tabelas diretamente no data
warehouse para produzir relatórios e visualizações complexos.
 Os usuários corporativos podem consumir dados pré-agregados
em um modelo analítico na forma de relatórios ou painéis.

Resumo
Os dados estão no centro da maioria das aplicações e soluções de software. Ele
pode ser representado em muitos formatos, armazenado em arquivos e bancos
de dados e usado para registrar transações ou para dar suporte a análises e
relatórios.

Neste módulo você aprendeu a:

 Identificar formatos de dados comuns


 Descrever opções para armazenar dados em arquivos
 Descrever opções para armazenar dados em bancos de dados
 Descrever as características das soluções de processamento de
dados transacionais
 Descrever as características das soluções de processamento de
dados analíticos
Modulo 2: Explorar cargos no mundo dos dados

Há uma ampla variedade de cargos envolvidos na gestão, controlo e utilização


de dados. Alguns cargos são orientados para negócios, outros envolvem mais
engenharia, centram-se na investigação ou são cargos híbridos que combinam
diferentes aspetos da gestão de dados. Sua organização pode definir funções
de forma diferente ou dar-lhes nomes diferentes, mas as funções descritas nesta
unidade encapsulam a divisão mais comum de tarefas e responsabilidades.

As três principais funções de trabalho que lidam com dados na maioria das
organizações são:

 Os administradores de banco de dados gerenciam bancos de dados,


atribuindo permissões aos usuários, armazenando cópias de backup de
dados e restaurando dados em caso de falha.
 Os engenheiros de dados gerenciam a infraestrutura e os processos
para integração de dados em toda a organização, aplicando rotinas
de limpeza de dados, identificando regras de governança de dados e
implementando pipelines para transferir e transformar dados entre
sistemas.
 Os analistas de dados exploram e analisam dados para criar visualizações
e gráficos que permitem que as organizações tomem decisões
informadas.
Nota

As funções definem tarefas e responsabilidades diferenciadas. Em algumas


organizações, a mesma pessoa pode desempenhar várias funções, portanto, em
sua função de administrador de banco de dados, ela pode provisionar um
banco de dados transacional e, em seguida, em sua função de engenheiro de
dados, pode criar um pipeline para transferir dados do banco de dados para um
data warehouse para análise.

Administrador da Base de Dados

Um administrador de banco de dados é responsável pelo design,


implementação, manutenção e aspetos operacionais de sistemas de banco de
dados locais e baseados em nuvem. Eles são responsáveis pela disponibilidade
geral e pelo desempenho e otimizações consistentes dos bancos de dados.
Trabalham com os intervenientes para implementar políticas, ferramentas e
processos para planos de cópias de segurança e recuperação a fim de recuperar
após um desastre natural ou um erro humano.

O administrador de bases de dados também é responsável por gerir a


segurança dos dados na base de dados, ao conceder privilégios sobre os dados
e conceder ou negar acesso aos utilizadores conforme apropriado.

Engenheiro de Dados

Um engenheiro de dados colabora com as partes interessadas para


projetar e implementar cargas de trabalho relacionadas a dados, incluindo
pipelines de ingestão de dados, atividades de limpeza e transformação e
armazenamentos de dados para cargas de trabalho analíticas. Eles usam uma
ampla gama de tecnologias de plataforma de dados, incluindo bancos de dados
relacionais e não relacionais, armazenamentos de arquivos e fluxos de dados.

São também responsáveis por garantir que a privacidade dos dados é mantida
dentro da cloud e expandida do local para os arquivos de dados na cloud. Eles
possuem o gerenciamento e o monitoramento de pipelines de dados para
garantir que as cargas de dados tenham o desempenho esperado.

Analista de Dados

Um analista de dados permite que as empresas maximizem o


valor de seus ativos de dados. Eles são responsáveis por explorar dados para
identificar tendências e relacionamentos, projetar e construir modelos analíticos
e habilitar recursos avançados de análise por meio de relatórios e visualizações.

Um analista de dados transforma os dados não processados em informações


relevantes com base nos requisitos empresariais identificados de modo a
fornecer informações relevantes.

Nota

As funções descritas aqui representam as principais funções relacionadas a


dados encontradas na maioria das organizações de médio a grande porte. Há
funções adicionais relacionadas a dados não mencionadas aqui,
como cientista de dados e arquiteto de dados, e há outros profissionais técnicos
que trabalham com dados, incluindo desenvolvedores de aplicativos
e engenheiros de software.

Identificar serviços de dados


O Microsoft Azure é uma plataforma de nuvem que alimenta os aplicativos e a
infraestrutura de TI de algumas das maiores organizações do mundo. Inclui
muitos serviços para suportar soluções na nuvem, incluindo cargas de trabalho
de dados transacionais e analíticos.

Alguns dos serviços de nuvem mais comumente usados para dados são
descritos abaixo.

Nota

Este tópico aborda apenas alguns dos serviços de dados mais comumente
usados para soluções transacionais e analíticas modernas. Serviços adicionais
também estão disponíveis.

SQL do Azure

Azure SQL é o nome coletivo para uma família de soluções de banco


de dados relacional baseadas no mecanismo de banco de dados do Microsoft
SQL Server. Os serviços SQL específicos do Azure incluem:

 Banco de Dados SQL do Azure – um banco de dados de plataforma


como serviço (PaaS) totalmente gerenciado hospedado no Azure
 Instância Gerenciada SQL do Azure – uma instância hospedada do SQL
Server com manutenção automatizada, que permite uma configuração
mais flexível do que o Banco de Dados SQL do Azure, mas com mais
responsabilidade administrativa para o proprietário.
 Azure SQL VM – uma máquina virtual com uma instalação do SQL Server,
permitindo a máxima configurabilidade com total responsabilidade de
gerenciamento.

Os administradores de banco de dados normalmente provisionam e gerenciam


sistemas de banco de dados SQL do Azure para dar suporte a aplicativos de
linha de negócios (LOB) que precisam armazenar dados transacionais.
Os engenheiros de dados podem usar os sistemas de banco de dados SQL do
Azure como fontes para pipelines de dados que executam operações de
extração, transformação e carregamento (ETL) para ingerir os dados
transacionais em um sistema analítico.

Os analistas de dados podem consultar bancos de dados SQL do Azure


diretamente para criar relatórios, embora em grandes organizações os dados
geralmente sejam combinados com dados de outras fontes em um
armazenamento de dados analítico para dar suporte à análise corporativa.

Banco de Dados do Azure para bancos de dados relacionais de código


aberto

O Azure inclui serviços geridos para sistemas de bases de dados


relacionais de código aberto populares, incluindo:

 Banco de Dados do Azure para MySQL - um sistema de


gerenciamento de banco de dados de código aberto simples de
usar que é comumente usado em aplicativos de pilha
Linux, Apache, MySQL e PHP (LAMP).

 Banco de Dados do Azure para MariaDB - um sistema de


gerenciamento de banco de dados mais recente, criado pelos
desenvolvedores originais do MySQL. Desde então, o mecanismo
de banco de dados foi reescrito e otimizado para melhorar o
desempenho. O MariaDB oferece compatibilidade com o Oracle
Database (outro popular sistema de gerenciamento de banco de
dados comercial).

 Banco de Dados do Azure para PostgreSQL - um banco de dados


de objeto relacional híbrido. Você pode armazenar dados em
tabelas relacionais, mas um banco de dados PostgreSQL também
permite armazenar tipos de dados personalizados, com suas
próprias propriedades não relacionais.

Tal como acontece com os sistemas de base de dados SQL do Azure, as bases
de dados relacionais de código aberto são geridas por administradores de
bases de dados para suportar aplicações transacionais e fornecer uma fonte de
dados para engenheiros de dados que criam pipelines para soluções analíticas e
analistas de dados que criam relatórios.
BD do Cosmos para o Azure

O Azure Cosmos DB é um sistema de banco de dados não relacional


(NoSQL) de escala global que dá suporte a várias interfaces de programação de
aplicativos (APIs), permitindo que você armazene e gerencie dados como
documentos JSON, pares chave-valor, famílias de colunas e gráficos.

Em algumas organizações, as instâncias do Cosmos DB podem ser


provisionadas e gerenciadas por um administrador de banco de dados; embora
muitas vezes os desenvolvedores de software gerenciem o armazenamento de
dados NoSQL como parte da arquitetura geral do aplicativo. Os engenheiros de
dados geralmente precisam integrar fontes de dados do Cosmos DB em
soluções analíticas corporativas que oferecem suporte à modelagem e à
geração de relatórios por analistas de dados.

Armazenamento do Azure

O Armazenamento do Azure é um serviço principal do Azure que


permite armazenar dados em:

 Contêineres de Blob - armazenamento escalável e econômico para


arquivos binários.
 Compartilhamentos de arquivos - compartilhamentos de arquivos de
rede, como você normalmente encontra em redes corporativas .
 Tabelas - armazenamento de chave-valor para aplicativos que precisam
ler e gravar valores de dados rapidamente.

Os engenheiros de dados usam o Armazenamento do Azure para


hospedar data lakes - armazenamento de blob com um namespace hierárquico
que permite que os arquivos sejam organizados em pastas em um sistema de
arquivos distribuído.
Azure Data Factory

O Azure Data Factory é um serviço do Azure que permite definir e


agendar pipelines de dados para transferir e transformar dados. Você pode
integrar seus pipelines com outros serviços do Azure, permitindo que você
ingira dados de armazenamentos de dados na nuvem, processe os dados
usando computação baseada em nuvem e persista os resultados em outro
armazenamento de dados.

O Azure Data Factory é usado por engenheiros de dados para criar soluções de
extração, transformação e carregamento (ETL) que preenchem armazenamentos
de dados analíticos com dados de sistemas transacionais em toda a organização.

Azure Synapse Analytics

O Azure Synapse Analytics é uma solução abrangente e unificada de


Plataforma como Serviço (PaaS) para análise de dados que fornece uma única
interface de serviço para vários recursos analíticos, incluindo:

 Pipelines - baseados na mesma tecnologia do Azure Data Factory.


 SQL - um mecanismo de banco de dados SQL altamente escalável,
otimizado para cargas de trabalho de data warehouse.
 Apache Spark - um sistema de processamento de dados distribuído de
código aberto que suporta várias linguagens de programação e APIs,
incluindo Java, Scala, Python e SQL.
 Azure Synapse Data Explorer - uma solução de análise de dados de alto
desempenho otimizada para consulta em tempo real de dados de log e
telemetria usando Kusto Query Language (KQL).

Os engenheiros de dados podem usar o Azure Synapse Analytics para criar uma
solução unificada de análise de dados que combina pipelines de ingestão de
dados, armazenamento de data warehouse e armazenamento de data lake por
meio de um único serviço.

Os analistas de dados podem usar pools SQL e Spark por meio de blocos de
anotações interativos para explorar e analisar dados e aproveitar a integração
com serviços como o Azure Machine Learning e o Microsoft Power BI para criar
modelos de dados e extrair insights dos dados.
Azure Databricks

O Azure Databricks é uma versão integrada do Azure da popular


plataforma Databricks, que combina a plataforma de processamento de dados
Apache Spark com semântica de banco de dados SQL e uma interface de
gerenciamento integrada para permitir análises de dados em larga escala.

Os engenheiros de dados podem usar as habilidades existentes do Databricks e


do Spark para criar armazenamentos de dados analíticos no Azure Databricks.

Os Analistas de Dados podem usar o suporte nativo de bloco de anotações no


Azure Databricks para consultar e visualizar dados em uma interface baseada na
Web fácil de usar.

Azure HDInsight

O Azure HDInsight é um serviço do Azure que fornece clusters


hospedados no Azure para tecnologias populares de processamento de big
data de código aberto do Apache, incluindo:

 Apache Spark - um sistema de processamento de dados distribuído que


suporta várias linguagens de programação e APIs, incluindo Java, Scala,
Python e SQL.
 Apache Hadoop - um sistema distribuído que usa tarefas
MapReduce para processar grandes volumes de dados de forma eficiente
em vários nós de cluster. Os trabalhos do MapReduce podem ser escritos
em Java ou abstraídos por interfaces como o Apache Hive - uma API
baseada em SQL que é executada no Hadoop.
 Apache HBase - um sistema de código aberto para armazenamento e
consulta de dados NoSQL em grande escala.
 Apache Kafka - um agente de mensagens para processamento de fluxo
de dados.

Os engenheiros de dados podem usar o Azure HDInsight para dar suporte a


cargas de trabalho de análise de big data que dependem de várias tecnologias
de código aberto.
Azure Stream Analytics

O Azure Stream Analytics é um mecanismo de processamento de


fluxo em tempo real que captura um fluxo de dados de uma entrada, aplica
uma consulta para extrair e manipular dados do fluxo de entrada e grava os
resultados em uma saída para análise ou processamento adicional.

Os engenheiros de dados podem incorporar o Azure Stream Analytics em


arquiteturas de análise de dados que capturam dados de streaming para
ingestão em um armazenamento de dados analíticos ou para visualização em
tempo real.

Azure Data Explorer

O Azure Data Explorer é um serviço autônomo que oferece a


mesma consulta de alto desempenho de dados de log e telemetria que o
tempo de execução do Azure Synapse Data Explorer no Azure Synapse
Analytics.

Os analistas de dados podem usar o Azure Data Explorer para consultar e


analisar dados que incluem um atributo de carimbo de data/hora, como
normalmente é encontrado em arquivos de log e dados de telemetria da
Internet das Coisas (IoT).

Microsoft Purview

O Microsoft Purview fornece uma solução para governança e


descoberta de dados em toda a empresa. Você pode usar o Microsoft Purview
para criar um mapa de seus dados e rastrear a linhagem de dados em várias
fontes de dados e sistemas, permitindo que você encontre dados confiáveis
para análise e relatórios.

Os engenheiros de dados podem usar o Microsoft Purview para impor a


governança de dados em toda a empresa e garantir a integridade dos dados
usados para dar suporte a cargas de trabalho analíticas.
Microsoft Fabric

O Microsoft Fabric é uma plataforma unificada de análise de


Software como Serviço (SaaS) baseada em lakehouse aberta e governada que
inclui funcionalidade para suportar:

 Ingestão de dados e ETL


 Análise de data lakehouse
 Análise de armazém de dados
 Ciência de dados e aprendizado de máquina
 Análise em tempo real
 Visualização de dados
 Governança e gerenciamento de dados

Resumo
Gerenciar e trabalhar com dados é uma habilidade especializada que requer
conhecimento de várias tecnologias. A maioria das organizações define cargos
para as várias tarefas responsáveis pela gestão de dados.

Neste módulo você aprendeu a:

 Identificar funções profissionais de dados comuns


 Identificar serviços de nuvem comuns usados por profissionais de
dados

Modulo 3: Explorar conceitos de dados relacionais fundamentais

Nos primeiros anos dos sistemas de computação, cada aplicativo armazenava


dados em sua própria estrutura única. Quando os programadores queriam
compilar aplicações para utilizarem esses dados, tinham de saber muito acerca
da sua estrutura de dados para encontrarem os dados necessários. Essas
estruturas de dados eram ineficientes, difíceis de manter e de otimizar para um
bom desempenho do aplicativo. O modelo de banco de dados relacional foi
projetado para resolver o problema de múltiplas estruturas de dados arbitrárias.
O modelo relacional fornece uma maneira padrão de representar e consultar
dados que podem ser usados por qualquer aplicativo. Uma das principais
vantagens do modelo de banco de dados relacional é o uso de tabelas, que são
uma maneira intuitiva, eficiente e flexível de armazenar e acessar informações
estruturadas.

O modelo relacional simples, mas poderoso, é utilizado por organizações de


todos os tipos e dimensões para várias necessidades de gestão de informações.
As bases de dados relacionais são utilizadas para controlar inventários,
processar transações de comércio eletrônico, gerir grandes quantidades de
informações dos clientes críticas para a organização e mais. Um banco de dados
relacional é útil para armazenar qualquer informação que contenha elementos
de dados relacionados que devem ser organizados em uma estrutura
consistente e baseada em regras.

Compreender os dados relacionais


Em um banco de dados relacional, você modela coleções de entidades do
mundo real como tabelas. Uma entidade pode ser qualquer coisa para a qual
você deseja registrar informações; tipicamente objetos e eventos importantes.
Por exemplo, em um exemplo de sistema de varejo, você pode criar tabelas para
clientes, produtos, pedidos e itens de linha dentro de um pedido. Uma tabela
contém linhas e cada uma linha representa uma só instância de uma entidade.
No cenário de varejo, cada linha na tabela do cliente contém os dados de um
único cliente, cada linha na tabela de produtos define um único produto, cada
linha na tabela de pedidos representa um pedido feito por um cliente e cada
linha na tabela de itens de linha representa um produto que foi incluído em um
pedido.
As tabelas relacionais são um formato para dados estruturados e cada linha de
uma tabela tem as mesmas colunas; embora, em alguns casos, nem todas as
colunas precisem ter um valor – por exemplo, uma tabela de clientes pode
incluir uma coluna MiddleName; que pode estar vazia (ou NULL) para linhas
que representam clientes sem nome do meio ou cujo nome do meio é
desconhecido).

Cada coluna armazena dados de um tipo de dados específico. Por exemplo,


uma coluna Email em uma tabela Cliente provavelmente seria definida para
armazenar dados (texto) baseados em caracteres (texto) (que podem ser
fixos ou variáveis em comprimento), uma coluna Preço em uma tabela
Produto poderia ser definida para armazenar dados numéricos decimais,
enquanto uma coluna Quantidade em uma tabela Ordem poderia ser
restrita a valores numéricos inteiros e uma coluna DataDoEncomenda na
mesma Ordem tabela seria definida para armazenar valores de data/hora. Os
tipos de dados disponíveis que você pode usar ao definir uma tabela dependem
do sistema de banco de dados que você está usando; embora existam tipos de
dados padrão definidos pelo American National Standards Institute (ANSI) que
são suportados pela maioria dos sistemas de banco de dados.

Compreender a normalização
Normalização é um termo usado por profissionais de banco de dados para um
processo de design de esquema que minimiza a duplicação de dados e impõe a
integridade dos dados.

Embora existam muitas regras complexas que definem o processo de


refatoração de dados em vários níveis (ou formas) de normalização, uma
definição simples para fins práticos é:

1. Separe cada entidade em sua própria tabela.


2. Separe cada atributo discreto em sua própria coluna.
3. Identifique exclusivamente cada instância de entidade (linha)
usando uma chave primária.
4. Use colunas de chave estrangeira para vincular entidades
relacionadas.

Para entender os princípios fundamentais da normalização, suponha que a


tabela a seguir represente uma planilha que uma empresa usa para acompanhar
suas vendas.
Observe que os detalhes do cliente e do produto são duplicados para cada item
individual vendido; e que o nome do cliente e o endereço postal, bem como o
nome e o preço do produto, sejam combinados nas mesmas células da planilha.

Agora vamos ver como a normalização muda a maneira como os dados são
armazenados.

Cada entidade representada nos dados (cliente, produto, ordem de venda e


item de linha) é armazenada em sua própria tabela e cada atributo discreto
dessas entidades está em sua própria coluna.
Registrar cada instância de uma entidade como uma linha em uma tabela
específica da entidade remove a duplicação de dados. Por exemplo, para alterar
o endereço de um cliente, você só precisa modificar o valor em uma única linha.

A decomposição de atributos em colunas individuais garante que cada valor


seja restrito a um tipo de dados apropriado - por exemplo, os preços dos
produtos devem ser valores decimais, enquanto as quantidades de itens de
linha devem ser números inteiros. Além disso, a criação de colunas individuais
fornece um nível útil de granularidade nos dados para consulta - por exemplo,
você pode facilmente filtrar clientes para aqueles que moram em uma cidade
específica.

As instâncias de cada entidade são identificadas exclusivamente por um ID ou


outro valor de chave, conhecido como chave primária, e quando uma entidade
faz referência a outra (por exemplo, um pedido tem um cliente associado), a
chave primária da entidade relacionada é armazenada
como uma chave estrangeira. Você pode procurar o endereço do cliente (que é
armazenado apenas uma vez) para cada registro na tabela Pedido, fazendo
referência ao registro correspondente na tabela Cliente. Normalmente, um
sistema de gerenciamento de banco de dados relacional (RDBMS) pode impor
integridade referencial para garantir que um valor inserido em um campo de
chave estrangeira tenha uma chave primária correspondente existente na tabela
relacionada – por exemplo, impedindo pedidos de clientes inexistentes.

Em alguns casos, uma chave (primária ou estrangeira) pode ser definida como
uma chave composta com base em uma combinação única de várias colunas.
Por exemplo, a tabela LineItem no exemplo acima usa uma combinação
exclusiva de OrderNo e ItemNo para identificar um item de linha de uma
ordem individual.

Explore SQL
SQL significa Structured Query Language ( Linguagem de Consulta Estruturada)
e é usado para se comunicar com um banco de dados relacional. É a linguagem
padrão para sistemas de gestão de bases de dados relacionais. As instruções
SQL são utilizadas para realizar tarefas como atualizar os dados numa base de
dados ou obter dados de uma base de dados. Alguns sistemas de gestão de
bases de dados relacionais comuns que utilizam SQL incluem o Microsoft SQL
Server, MySQL, PostgreSQL, MariaDB e Oracle.

Nota
O SQL foi originalmente uniformizado pelo American National Standards
Institute (ANSI) em 1986 e pela International Organization for Standardization
(ISO) em 1987. Desde então, a norma foi alargada várias vezes, à medida que os
fornecedores de bases de dados relacionais adicionaram novas funcionalidades
aos sistemas. Além disso, a maioria dos fornecedores de bases de dados
incluem extensões próprias que não fazem parte da norma, o que originou
vários dialetos de SQL.

Você pode usar instruções SQL como SELECT, INSERT, UPDATE,


DELETE, CREATE e DROP para realizar quase tudo o que precisa fazer com um
banco de dados. Embora estas instruções SQL façam parte da norma SQL,
muitos sistemas de gestão de bases de dados têm também extensões adicionais
próprias para lidar com as caraterísticas específicas desse sistema de gestão de
bases de dados. Estas extensões fornecem funcionalidades não abrangidas pela
norma SQL e incluem áreas como a gestão de segurança e programação. Por
exemplo, o Microsoft SQL Server e os serviços de banco de dados do Azure
baseados no mecanismo de banco de dados do SQL Server usam o Transact-
SQL. Esta implementação inclui extensões proprietárias para gravar
procedimentos armazenados e acionadores (código de aplicação que pode ser
armazenado na base de dados) e gestão de contas de utilizador. O PostgreSQL
e o MySQL também têm versões próprias destas funcionalidades.

Alguns dialetos populares de SQL incluem:

 Transact-SQL (T-SQL). Esta versão do SQL é usada pelo Microsoft


SQL Server e pelos serviços SQL do Azure.

 pgSQL. Este é o dialeto com extensões implementadas no


PostgreSQL.

 PL/SQL. Este é o dialeto utilizado pela Oracle. PL/SQL significa


Procedural Language/SQL.

Os utilizadores que pretendam trabalhar especificamente com um sistema de


base de dados individual devem conhecer as caraterísticas do seu dialeto e
plataforma SQL preferenciais.

Nota

Os exemplos de código SQL neste módulo são baseados no dialeto Transact-


SQL, salvo indicação em contrário. A sintaxe para outros dialetos é geralmente
semelhante, mas pode variar em alguns detalhes.
Tipos de instrução SQL

As instruções SQL são agrupadas em três grupos lógicos principais:

 Data Definition Language (DDL)


 Linguagem de controle de dados (DCL)
 Data Manipulation Language (DML)

Declarações DDL

Pode utilizar instruções DDL para criar, modificar e remover tabelas e outros
objetos numa base de dados (tabelas, procedimentos armazenados, vistas, etc.).

As instruções DDL mais comuns são:

Expandir tabela

Declaração Description

CREATE Permite criar um novo objeto na base de dados, como uma tabela ou uma
vista.

ALTERAR Permite modificar a estrutura de um objeto, por exemplo, alterar uma tabela
para adicionar uma nova coluna.

DROP Permite remover um objeto da base de dados.

RENAME Permite mudar o nome de um objeto existente.

Aviso

A instrução DROP é muito poderosa. Quando remover uma tabela com a


instrução DROP, perdem-se todas as linhas dessa tabela. Apenas será possível
recuperar estes dados se tiver uma cópia de segurança.

O exemplo seguinte cria uma nova tabela de base de dados. Os itens entre
parênteses especificam os detalhes de cada coluna, incluindo o nome, o tipo de
dados, se a coluna tem ou não de conter sempre um valor (NOT NULL) e se os
dados na coluna são utilizados para identificar exclusivamente uma linha
(CHAVE PRIMÁRIA). Cada tabela deve ter uma chave primária, embora o SQL
não imponha esta regra.

Nota

As colunas marcadas como NOT NULL são referidas como colunas


obrigatórias. Se omitir a cláusula NOT NULL, pode criar linhas que não contêm
um valor na coluna. Diz-se que uma coluna vazia numa linha tem um
valor NULL.

SQLCopiar
CREATE TABLE Product
(
ID INT PRIMARY KEY,
Name VARCHAR(20) NOT NULL,
Price DECIMAL NULL
);

Os tipos de dados disponíveis para as colunas numa tabela variam entre


sistemas de gestão de bases de dados. No entanto, a maioria dos sistemas de
gerenciamento de banco de dados suporta tipos numéricos como INT (um
número inteiro ou inteiro), DECIMAL (um número decimal) e tipos de cadeia de
caracteres como VARCHAR (VARCHAR significa dados de caracteres de
comprimento variável). Para obter mais informações, veja a documentação do
sistema de gestão de bases de dados selecionado.

Declarações DCL

Os administradores de banco de dados geralmente usam instruções DCL para


gerenciar o acesso a objetos em um banco de dados concedendo, negando ou
revogando permissões para usuários ou grupos específicos.

As três principais declarações DCL são:

Expandir tabela

Declaração Description

GRANT Conceder permissão para executar ações específicas

DENY Negar permissão para executar ações específicas

REVOKE Remover uma permissão concedida anteriormente

Por exemplo, a instrução GRANT a seguir permite que um usuário


chamado user1 leia, insira e modifique dados na tabela Product.

SQLCopiar
GRANT SELECT, INSERT, UPDATE
ON Product
TO user1;
Declarações DML

Você usa instruções DML para manipular as linhas em tabelas. Essas instruções
permitem recuperar (consultar) dados, inserir novas linhas ou modificar linhas
existentes. Pode também eliminar linhas que já não sejam necessárias.

As quatro instruções DML principais são:

Expandir tabela

Declaração Description

SELECIONAR Ler linhas de uma tabela

INSERT Inserir linhas novas numa tabela

ATUALIZAR Modificar dados em linhas existentes

DELETE Excluir linhas existentes

O formato básico de uma instrução INSERT insere uma linha de cada vez. Por
predefinição, as instruções SELECT, UPDATE e DELETE são aplicadas a todas as
linhas numa tabela. Normalmente, aplicaria uma cláusula WHERE a estas
instruções para especificar os critérios. Apenas as linhas que corresponderem a
esses critérios serão selecionadas, atualizadas ou eliminadas.

Aviso

O SQL não apresenta pedidos de confirmação, por isso tenha cuidado ao utilizar
a instrução DELETE ou UPDATE sem uma cláusula WHERE, pois pode perder ou
modificar muitos dados.

O código a seguir é um exemplo de uma instrução SQL que seleciona todas as


colunas (indicadas por *) da tabela Customer onde o valor da coluna Cidade é
"Seattle":

SQLCopiar
SELECT *
FROM Customer
WHERE City = 'Seattle';

Para recuperar apenas um subconjunto específico de colunas da tabela, liste-


as na cláusula SELECT , da seguinte forma:

SQLCopiar
SELECT FirstName, LastName, Address, City
FROM Customer
WHERE City = 'Seattle';

Se uma consulta devolver muitas linhas, estas não aparecem necessariamente


numa sequência específica. Se quiser ordenar os dados, pode adicionar uma
cláusula ORDER BY. Os dados serão ordenados pela coluna especificada:

SQLCopiar
SELECT FirstName, LastName, Address, City
FROM Customer
WHERE City = 'Seattle'
ORDER BY LastName;

Pode ainda executar instruções SELECT para obter dados de múltiplas tabelas
com uma cláusula JOIN. As associações indicam como as linhas numa tabela se
ligam às linhas na outra para determinar quais os dados a devolver. Uma
condição de junção típica corresponde a uma chave estrangeira de uma tabela
e sua chave primária associada na outra tabela.

A consulta a seguir mostra um exemplo que une as tabelas Cliente e Pedido. A


consulta usa aliases de tabela para abreviar os nomes de tabela ao especificar
quais colunas recuperar na cláusula SELECT e quais colunas corresponder
na cláusula JOIN.

SQLCopiar
SELECT o.OrderNo, o.OrderDate, c.Address, c.City
FROM Order AS o
JOIN Customer AS c
ON o.Customer = c.ID

O próximo exemplo mostra como modificar uma linha existente usando SQL. Ele
altera o valor da coluna Endereço na tabela Cliente para linhas que têm o
valor 1 na coluna ID. Todas as outras linhas permanecem inalteradas:

SQLCopiar
UPDATE Customer
SET Address = '123 High St.'
WHERE ID = 1;
Aviso

Se omitir a cláusula WHERE, uma instrução UPDATE irá modificar todas as


linhas na tabela.

Utilize a instrução DELETE para remover linhas. Especifique a tabela a partir da


qual eliminar e uma cláusula WHERE que identifica as linhas a eliminar:

SQLCopiar
DELETE FROM Product
WHERE ID = 162;
Aviso

Se omitir a cláusula WHERE, uma instrução DELETE irá remover todas as linhas
da tabela.

A instrução INSERT tem uma forma ligeiramente diferente. Tem de especificar


uma tabela e colunas numa cláusula INTO e uma lista de valores a armazenar
nestas colunas. O SQL Standard só suporta a introdução de uma linha de cada
vez, conforme mostrado no exemplo a seguir. Alguns dialetos permitem-lhe
especificar múltiplas cláusulas VALUES para adicionar várias linhas de cada vez:

SQLCopiar
INSERT INTO Product(ID, Name, Price)
VALUES (99, 'Drill', 4.99);
Nota

Este tópico descreve algumas instruções SQL básicas e sintaxe para ajudá-lo a
entender como o SQL é usado para trabalhar com objetos em um banco de
dados. Se você quiser saber mais sobre como consultar dados com SQL, revise o
caminho de aprendizado Introdução à consulta com Transact-SQL no
Microsoft Learn.

Descrever objetos de banco de dados


Além de tabelas, um banco de dados relacional pode conter outras estruturas
que ajudam a otimizar a organização de dados, encapsular ações programáticas
e melhorar a velocidade de acesso. Nesta unidade, você aprenderá sobre três
dessas estruturas com mais detalhes: exibições, procedimentos armazenados
e índices.

O que é uma vista?

Uma vista é uma tabela virtual baseada nos resultados de uma consulta
SELECT . Você pode pensar em um modo de exibição como uma janela em
linhas especificadas em uma ou mais tabelas subjacentes. Por exemplo, você
pode criar uma exibição nas tabelas Pedido e Cliente que recupera dados de
pedidos e clientes para fornecer um único objeto que facilita a determinação
de endereços de entrega para pedidos:

SQLCopiar
CREATE VIEW Deliveries
AS
SELECT o.OrderNo, o.OrderDate,
c.FirstName, c.LastName, c.Address, c.City
FROM Order AS o JOIN Customer AS c
ON o.Customer = c.ID;

Pode consultar a vista e filtrar os dados praticamente da mesma forma que uma
tabela. A consulta a seguir localiza detalhes de pedidos para clientes que
moram em Seattle:

SQLCopiar
SELECT OrderNo, OrderDate, LastName, Address
FROM Deliveries
WHERE City = 'Seattle';

O que é um procedimento armazenado?

Um procedimento armazenado define instruções SQL que podem ser


executadas sob comando. Os procedimentos armazenados são usados para
encapsular a lógica programática em um banco de dados para ações que os
aplicativos precisam executar ao trabalhar com dados.

Você pode definir um procedimento armazenado com parâmetros para criar


uma solução flexível para ações comuns que talvez precisem ser aplicadas a
dados com base em uma chave ou critérios específicos. Por exemplo, o
procedimento armazenado a seguir pode ser definido para alterar o nome de
um produto com base na ID do produto especificada.

SQLCopiar
CREATE PROCEDURE RenameProduct
@ProductID INT,
@NewName VARCHAR(20)
AS
UPDATE Product
SET Name = @NewName
WHERE ID = @ProductID;

Quando um produto precisa ser renomeado, você pode executar o


procedimento armazenado, passando a ID do produto e o novo nome a ser
atribuído:

SQLCopiar
EXEC RenameProduct 201, 'Spanner';
O que é um índice?

Um índice ajuda a procurar dados numa tabela. Um índice de uma tabela é


como um índice de um livro. Um índice num livro contém um conjunto
ordenado de referências, com as páginas em que cada referência ocorre.
Quando quer localizar uma referência a um item num livro, procura-a no índice.
Pode utilizar os números de página no índice para ir diretamente para as
páginas corretas no livro. Sem um índice, poderia ter de ler todo o livro para
encontrar as referências que procura.

Quando cria um índice numa base de dados, especifica uma coluna da tabela e
o índice contém uma cópia desses dados em sequência de ordenação, com
ponteiros para as linhas correspondentes na tabela. Quando o utilizador executa
uma consulta que especifique esta coluna na cláusula WHERE, o sistema de
gestão de bases de dados pode utilizar este índice para obter os dados mais
rapidamente do que obteria se tivesse de analisar toda a tabela, linha por linha.

Por exemplo, você pode usar o código a seguir para criar um índice na coluna
Nome da tabela Produto :

SQLCopiar
CREATE INDEX idx_ProductName
ON Product(Name);

O índice cria uma estrutura baseada em árvore que o otimizador de consulta do


sistema de banco de dados pode usar para localizar rapidamente linhas na
tabela Produto com base em um Nome especificado.

Para uma tabela que contém poucas linhas, usar o índice provavelmente não é
mais eficiente do que simplesmente ler a tabela inteira e encontrar as linhas
solicitadas pela consulta (nesse caso, o otimizador de consulta ignorará o
índice). No entanto, quando uma tabela tem muitas linhas, os índices podem
melhorar drasticamente o desempenho das consultas.

Pode criar muitos índices numa tabela. Portanto, se você também quiser
encontrar produtos com base no preço, criar outro índice na coluna
Preço na tabela Produto pode ser útil. No entanto, os índices não são
gratuitos. Um índice consome espaço de armazenamento e, sempre que você
insere dados em uma tabela, atualiza ou exclui dados em uma tabela, os índices
dessa tabela devem ser mantidos. Esse trabalho adicional pode tornar mais
lentas as operações de inserção, atualização e exclusão. Você deve encontrar
um equilíbrio entre ter índices que aceleram suas consultas versus o custo de
executar outras operações.

Resumo
Os bancos de dados relacionais são uma maneira comum de os aplicativos
transacionais armazenarem e gerenciarem dados. Eles consistem em um
esquema de tabelas, que são ligadas através de valores de chave comuns. Você
usa SQL para consultar e manipular os dados nas tabelas e pode enriquecer o
banco de dados criando objetos como modos de exibição, procedimentos
armazenados e índices.

Neste módulo, aprendeu a:

 Identificar características de dados relacionais


 Definir normalization
 Identificar tipos de instrução SQL
 Identificar objetos comuns de banco de dados relacional

Modulo 4: Explore serviços de banco de dados relacional no Azure

Introdução
O Azure dá suporte a vários serviços de banco de dados, permitindo que você
execute sistemas populares de gerenciamento de banco de dados relacional,
como SQL Server, PostgreSQL e MySQL, na nuvem.

A maioria dos serviços de banco de dados do Azure é totalmente gerenciada,


liberando tempo valioso que você gastaria gerenciando seu banco de dados. O
desempenho ao nível empresarial com elevada disponibilidade incorporada
significa que pode dimensionar rapidamente e alcançar a distribuição global
sem se preocupar com tempo de inatividade dispendioso. Os programadores
podem tirar proveito de inovações líder no setor, como a segurança com
monitorização automática e deteção de ameaças e o ajuste automático para um
desempenho melhorado. Além de todas estas funcionalidades, tem
disponibilidade garantida.

Descrever os serviços e recursos do


SQL do Azure
Azure SQL é um termo coletivo para uma família de serviços de banco de dados
baseados no Microsoft SQL Server no Azure. Os serviços SQL específicos do
Azure incluem:

 SQL Server em Máquinas Virtuais (VMs) do Azure - Uma máquina


virtual em execução no Azure com uma instalação do SQL Server. O uso
de uma VM torna essa opção uma solução de infraestrutura como serviço
(IaaS) que virtualiza a infraestrutura de hardware para computação,
armazenamento e rede no Azure; tornando-o uma ótima opção para a
migração "lift and shift" de instalações existentes do SQL Server no local
para a nuvem.
 Instância Gerenciada SQL do Azure - Uma opção de plataforma como
serviço (PaaS) que fornece quase 100% de compatibilidade com instâncias
locais do SQL Server enquanto abstrai o hardware e o sistema operacional
subjacentes. O serviço inclui gerenciamento automatizado de atualizações
de software, backups e outras tarefas de manutenção, reduzindo a carga
administrativa do suporte a uma instância do servidor de banco de dados.
 Banco de Dados SQL do Azure - Um serviço de banco de dados PaaS
totalmente gerenciado e altamente escalável projetado para a nuvem.
Esse serviço inclui os principais recursos de nível de banco de dados do
SQL Server local e é uma boa opção quando você precisa criar um novo
aplicativo na nuvem.
 Azure SQL Edge - Um mecanismo SQL otimizado para cenários de
Internet das Coisas (IoT) que precisam trabalhar com streaming de dados
de séries cronológicas.
Nota

O Azure SQL Edge está incluído nesta lista para integridade. Vamos nos
concentrar nas outras opções para cenários de banco de dados relacional mais
gerais neste módulo.
SQL Server nas VMs Instância Gerida do Base de Dados SQL do
do Azure Azure SQL Azure

Tipo de serviço IaaS PaaS PaaS


de nuvem

Compatibilidade Totalmente Quase 100% de Oferece suporte à


com o SQL compatível com compatibilidade com o maioria dos principais
Server instalações físicas e SQL Server. A maioria dos recursos de nível de
virtualizadas locais. bancos de dados locais banco de dados do SQL
Aplicativos e bancos pode ser migrada com Server. Alguns recursos
de dados podem ser alterações mínimas de dependentes de um
facilmente migrados código usando o serviço aplicativo local podem
sem alterações. de Migração de Banco de não estar disponíveis.
Dados do Azure

Arquitetura As instâncias do SQL Cada instância Você pode provisionar


Server são gerenciada pode oferecer um único banco de dados
instaladas em uma suporte a vários bancos em um servidor dedicado
máquina virtual. de dados. Além disso, os gerenciado (lógico) ou
Cada instância pode pools de pode usar
suportar vários instâncias podem ser um pool elástico para
bancos de dados. usados para compartilhar compartilhar recursos
recursos de forma entre vários bancos de
eficiente entre instâncias dados e aproveitar a
menores. escalabilidade sob
demanda.

Disponibilidade 99,99% 99,99% 99.995%

Gestão Você deve gerenciar Atualizações, backups e Atualizações, backups e


todos os aspetos do recuperação totalmente recuperação totalmente
servidor, incluindo automatizados. automatizados.
atualizações do
sistema operacional
e do SQL Server,
configuração,
backups e outras
tarefas de
manutenção.

Casos de Use essa opção Use essa opção para a Use essa opção para
utilização quando precisar maioria dos cenários de novas soluções de nuvem
SQL Server nas VMs Instância Gerida do Base de Dados SQL do
do Azure Azure SQL Azure

migrar ou estender migração para a nuvem, ou para migrar


uma solução SQL especialmente quando aplicativos que tenham
Server local e você precisar de dependências mínimas
manter o controle alterações mínimas em no nível da instância.
total sobre todos os aplicativos existentes.
aspetos da
configuração do
servidor e do banco
de dados.

SQL Server nas Máquinas Virtuais do Azure

O SQL Server nas Máquinas Virtuais permite-lhe utilizar versões completas do


SQL Server na Cloud sem precisar de gerir qualquer hardware no local. Este é
um exemplo da abordagem IaaS.

O SQL Server em execução numa máquina virtual do Azure replica efetivamente


a base de dados em execução no hardware no local real. A migração do sistema
em execução no local para uma máquina virtual do Azure não é diferente de
deslocar as bases de dados de um servidor no local para outro.

Esta abordagem é adequada para migrações e aplicações que exigem acesso às


funcionalidades do sistema operativo que podem não ser suportadas ao nível
da PaaS. As máquinas virtuais SQL estão preparadas para a migração lift-and-
shift de aplicações existentes que exigem uma migração rápida para a cloud
com alterações mínimas. Você também pode usar o SQL Server em VMs do
Azure para estender aplicativos locais existentes para a nuvem em implantações
híbridas.

Nota

Uma implementação híbrida é um sistema em que parte da operação é


executada no local e parte na cloud. A base de dados pode fazer parte de um
sistema maior que é executado no local, embora os elementos da base de
dados possam ser alojados na cloud.

Pode utilizar o SQL Server numa máquina virtual para desenvolver e testar
aplicações tradicionais do SQL Server. Com uma máquina virtual, tem os direitos
administrativos completos sobre o DBMS e o sistema operativo. É uma opção
perfeita quando uma organização já tem recursos de TI disponíveis para manter
as máquinas virtuais.
Estas capacidades permitem-lhe:

 Crie cenários de desenvolvimento e teste rápidos quando não quiser


comprar hardware do SQL Server local que não seja de produção.
 Tornar-se compatível com a migração lift-and-shift para aplicações
existentes que exigem uma migração rápida para a cloud com alterações
mínimas ou inexistentes.
 Aumentar verticalmente a plataforma na qual o SQL Server está em
execução, ao alocar mais memória, potência de CPU e espaço em disco à
máquina virtual. Pode redimensionar rapidamente uma máquina virtual
do Azure sem a necessidade de reinstalar o software que está a ser
executado nesta.

Benefícios comerciais

A execução do SQL Server em máquinas virtuais permite-lhe cumprir as


necessidades de negócios exclusivas e diversificadas através de uma
combinação de implementações no local e alojadas na cloud, enquanto utiliza o
mesmo conjunto de produtos do servidor, as ferramentas de desenvolvimento e
a experiência nesses ambientes.

Nem sempre é fácil para as empresas mudarem os DBMS para um serviço


totalmente gerido. Poderão existir requisitos específicos que deverão ser
cumpridos para permitir a migração para um serviço gerido, que exige a
realização de alterações na base de dados e nas aplicações que o utilizam. Por
esse motivo, o uso de máquinas virtuais pode oferecer uma solução, mas usá-
las não elimina a necessidade de administrar seu DBMS com o mesmo cuidado
que faria no local.

Instância Gerida da Base de Dados SQL do Azure

A instância SQL Managed do Azure executa efetivamente uma instância


totalmente controlável do SQL Server na nuvem. Pode instalar várias bases de
dados na mesma instância. Tem controlo total sobre essa instância, assim como
faria para um servidor no local. A Instância Gerenciada SQL automatiza backups,
patches de software, monitoramento de banco de dados e outras tarefas gerais,
mas você tem controle total sobre a segurança e a alocação de recursos para
seus bancos de dados. Você pode encontrar informações detalhadas em O que
é a Instância Gerenciada SQL do Azure?.

As instâncias gerenciadas dependem de outros serviços do Azure, como o


Armazenamento do Azure para backups, Hubs de Eventos do Azure para
telemetria, ID do Microsoft Entra para autenticação, Cofre da Chave do Azure
para Criptografia de Dados Transparente (TDE) e alguns serviços da plataforma
Azure que fornecem recursos de segurança e suporte. As instâncias geridas
fazem ligações a esses serviços.

Todas as comunicações são encriptadas e assinadas com certificados. Para


verificar a fiabilidade dos intervenientes na comunicação, as instâncias geridas
verificam constantemente estes certificados através de listas de revogação de
certificados. Se os certificados forem revogados, a instância gerida fechará as
ligações para proteger os dados.

Casos de utilização

Considere a Instância Gerenciada SQL do Azure se quiser elevar e deslocar uma


instância do SQL Server local e todos os seus bancos de dados para a nuvem,
sem incorrer na sobrecarga de gerenciamento da execução do SQL Server em
uma máquina virtual.

A Instância Gerenciada SQL do Azure fornece recursos não disponíveis no Banco


de Dados SQL do Azure (discutido abaixo). Se o sistema utilizar funcionalidades
como servidores ligados, Service Broker (um sistema de processamento de
mensagens que pode ser utilizado para distribuir o trabalho entre servidores) ou
Correio de Base de Dados (que permite que a base de dados envie mensagens
de e-mail para os utilizadores), deverá utilizar a instância gerida. Para verificar a
compatibilidade com um sistema no local existente, pode instalar o Assistente
de Migração de Dados (DMA). Esta ferramenta analisa as bases de Dados no
SQL Server e comunica quaisquer problemas que possam bloquear a migração
para uma instância gerida.

Benefícios comerciais

A Instância Gerenciada SQL do Azure permite que um administrador de sistema


gaste menos tempo em tarefas administrativas porque o serviço as executa para
você ou simplifica muito essas tarefas. As tarefas automatizadas incluem a
instalação e aplicação de patches do software do sistema operativo e do gestor
de bases de dados, o redimensionamento e a configuração de instâncias
dinâmicas, a realização de cópias de segurança, a replicação da base de dados
(incluindo a base de dados do sistema), a configuração de elevada
disponibilidade e a configuração dos fluxos de dados de monitorização de
desempenho e bom funcionamento.

A Instância Gerenciada SQL do Azure tem quase 100% de compatibilidade com


o SQL Server Enterprise Edition, executado localmente.
A Instância Gerenciada SQL do Azure dá suporte a logons e logons do
mecanismo de Banco de Dados do SQL Server integrados à ID do Microsoft
Entra. Os logons do mecanismo de banco de dados do SQL Server incluem um
nome de usuário e uma senha. Deve introduzir as credenciais sempre que se
ligar ao servidor. Os logins do Microsoft Entra usam as credenciais associadas à
entrada atual do computador e você não precisa fornecê-las sempre que se
conectar ao servidor.

Base de Dados SQL do Azure

A Base de Dados SQL do Azure é uma oferta PaaS da Microsoft. O utilizador cria
um servidor de bases de dados gerido na cloud e, em seguida, implementa as
bases de dados neste servidor.

Nota

Um servidor da Base de Dados SQL é uma construção lógica que funciona como
um ponto administrativo central para várias bases de dados de conjuntos ou
individuais, inícios de sessão, regras da firewall, regras de auditoria, políticas de
deteção de ameaças e grupos de ativação pós-falha.

O Banco de Dados SQL do Azure está disponível como um Banco de Dados


Único ou um Pool Elástico.

Base de Dados Individual

Esta opção permite-lhe configurar e executar rapidamente uma base de dados


do SQL Server individual. O utilizador cria e executa um servidor de bases de
dados na cloud e acede à base de dados através deste servidor. A Microsoft
gere o servidor, por isso, tudo o que precisa de fazer é configurar a base de
dados, criar as tabelas e preenchê-las com os dados. Você pode dimensionar o
banco de dados se precisar de mais espaço de armazenamento, memória ou
poder de processamento. Por predefinição, os recursos são alocados
previamente e é cobrado à hora pelos recursos pedidos. Também pode
especificar uma configuração sem servidor. Nessa configuração, a Microsoft cria
seu próprio servidor, que pode ser compartilhado por bancos de dados
pertencentes a outros assinantes do Azure. A Microsoft garante a privacidade
da base de dados. A base de dados é dimensionada automaticamente e os
recursos são alocados ou desalocados, conforme necessário.
Conjunto Elástico

Esta opção é semelhante à Base de Dados Individual, só que, por predefinição,


várias bases de dados podem partilhar os mesmos recursos, como memória,
espaço de armazenamento de dados e capacidade de processamento através
de arquitetura multi-inquilino. Os recursos são referidos como um conjunto. O
utilizador cria o conjunto e apenas as bases de dados o podem utilizar. Este
modelo será útil se tiver bases de dados com requisitos de recursos que variam
ao longo do tempo e podem ajudá-lo a reduzir os custos. Por exemplo, a base
de dados das folhas de pagamentos pode exigir muita potência de CPU no final
de cada mês à medida que gere o processamento das folhas de pagamentos,
mas, noutras ocasiões, a base de dados pode tornar-se muito menos ativa. Pode
ter outra base de dados que é utilizada para executar relatórios. Esta base de
dados pode tornar-se ativa durante vários dias no meio do mês, à medida que
os relatórios de gestão são gerados, mas com uma carga mais leve noutras
ocasiões. O Conjunto Elástico permite-lhe utilizar os recursos disponíveis no
conjunto e, em seguida, libertá-los após a conclusão do processamento.

Casos de utilização

A Base de Dados SQL do Azure oferece a melhor opção de baixo custo com
uma administração mínima. Ele não é totalmente compatível com instalações
locais do SQL Server. É frequentemente usado em novos projetos de nuvem
onde o design do aplicativo pode acomodar quaisquer alterações necessárias
em seus aplicativos.

Nota

Pode utilizar o Assistente de Migração de Dados para detetar problemas de


compatibilidade com as bases de dados que podem afetar a funcionalidade da
base de dados na Base de Dados SQL do Azure. Para obter mais informações,
veja Overview of Data Migration Assistant (Descrição geral do Assistente de
Migração de Dados).

A Base de Dados SQL do Azure é geralmente utilizada para:

 Aplicações na cloud modernas que precisam das funcionalidades mais


recentes e estáveis do SQL Server.
 Aplicações que precisam de elevada disponibilidade.
 Sistemas com uma carga variável que precisam que o servidor de banco
de dados aumente e diminua a escala rapidamente.
Benefícios comerciais

O Banco de Dados SQL do Azure atualiza e corrige automaticamente o software


SQL Server para garantir que você esteja sempre executando a versão mais
recente e segura do serviço.

As funcionalidades de escalabilidade da Base de Dados SQL do Azure garantem


que pode aumentar os recursos disponíveis para armazenar e processar dados
sem precisar de executar uma atualização manual dispendiosa.

O serviço oferece garantias de alta disponibilidade, para garantir que seus


bancos de dados estejam disponíveis pelo menos 99,995% do tempo. A Base de
Dados SQL do Azure suporta uma recuperação para um ponto anterior no
tempo, o que lhe permite recuperar uma base de dados para o estado em que
estava em qualquer ponto no passado. Os bancos de dados podem ser
replicados para diferentes regiões para fornecer mais resiliência e recuperação
de desastres.

A proteção avançada contra ameaças proporciona recursos de segurança


avançados, como avaliações de vulnerabilidade, para ajudar a detetar e corrigir
possíveis problemas de segurança com as bases de dados. A proteção de
ameaças também deteta atividades anómalas que indicam tentativas
potencialmente perigosas e invulgares de acesso ou exploração das bases de
dados. Monitoriza continuamente a sua base de dados em busca de atividades
suspeitas e apresenta alertas de segurança imediatos em casos de potenciais
vulnerabilidades, ataques de injeção SQL e padrões anómalos de acesso a bases
de dados. Os alertas de deteção de ameaças proporcionam detalhes sobre a
atividade suspeita e recomendam ações de investigação e mitigação da ameaça.

A auditoria controla os eventos da base de dados e escreve-os num registo de


auditoria na conta de armazenamento do Azure. A auditoria pode ajudar a
manter a conformidade regulatória, a compreender as atividades da base de
dados e a obter informações relativas a discrepâncias e anomalias que podem
indicar preocupações comerciais ou suspeitas de violações de segurança.

O Banco de dados SQL ajuda a proteger seus dados fornecendo criptografia


que protege os dados armazenados no banco de dados (em repouso) e
enquanto estão sendo transferidos pela rede (em movimento).

Descrever os serviços do Azure para


bancos de dados de código aberto
Além dos serviços SQL do Azure, os serviços de dados do Azure estão
disponíveis para outros sistemas de banco de dados relacional populares,
incluindo MySQL, MariaDB e PostgreSQL. O principal motivo para esses serviços
é permitir que as organizações que os usam em aplicativos locais migrem para
o Azure rapidamente, sem fazer alterações significativas em seus aplicativos.

O que são MySQL, MariaDB e PostgreSQL?

MySQL, MariaDB e PostgreSQL são sistemas de gerenciamento de banco de


dados relacional adaptados para diferentes especializações.

O MySQL começou como um gestor de bases de dados open-source simples de


utilizar. É o principal banco de dados relacional de código aberto
para aplicativos de pilha Linux, Apache, MySQL e PHP (LAMP). Está disponível em
várias edições: Community, Standard e Enterprise. A edição Community está
disponível gratuitamente e tem sido historicamente popular enquanto gestor de
bases de dados para aplicações Web, em execução no Linux. Também estão
disponíveis versões para Windows. A edição Standard oferece um desempenho
mais elevado e utiliza uma tecnologia diferente para armazenar dados. A edição
Enterprise oferece um conjunto abrangente de ferramentas e funcionalidades,
incluindo segurança, disponibilidade e escalabilidade melhoradas. As edições
Standard e Enterprise são as versões utilizadas com maior frequência por
organizações comerciais, embora estas versões do software não sejam gratuitas.

O MariaDB é um gestor de bases de dados mais recente, criado pelos


programadores originais do MySQL. Desde então, o motor de base de dados
tem sido reescrito e otimizado para melhorar o desempenho. O MariaDB
oferece compatibilidade com o Oracle Database (outro gestor de bases de
dados comercial popular). Uma funcionalidade notável do MariaDB é o suporte
incorporado para os dados temporais. Uma tabela pode conter várias versões
de dados, o que permite que uma aplicação consulte os dados tal como
apareciam num determinado momento no passado.

O PostgreSQL é uma base de dados híbrida de objeto relacional. Pode


armazenar dados em tabelas relacionais, mas uma base de dados PostgreSQL
também permite que armazene tipos de dados personalizados, com as suas
próprias propriedades não relacionais. O gestor de bases de dados é extensível;
pode adicionar módulos de código à base de dados, que podem ser executados
por consultas. Outra funcionalidade importante é a capacidade de armazenar e
manipular dados geométricos, como linhas, círculos e polígonos.

O PostgreSQL tem a sua própria linguagem de consulta, chamada pgsql. Esta


linguagem é uma variante da linguagem de consulta relacional padrão, SQL,
com funcionalidades que permitem que escreva procedimentos armazenados
que são executados dentro da base de dados.

Base de Dados do Azure para MySQL

O Banco de Dados do Azure para MySQL é uma implementação PaaS do


MySQL na nuvem do Azure, com base no MySQL Community Edition.

O serviço Banco de Dados do Azure para MySQL inclui alta disponibilidade sem
custo adicional e escalabilidade conforme necessário. Só paga o que utilizar. As
cópias de segurança automáticas são disponibilizadas com recuperação para
um ponto anterior no tempo.

O servidor proporciona segurança de ligação para aplicar regras da firewall e,


opcionalmente, exigir ligações SSL. Muitos parâmetros do servidor permitem
que configure as definições do servidor, como modos de bloqueio, número
máximo de ligações e tempos limite.

A Base de Dados do Azure para MySQL proporciona um sistema de base de


dados global que aumenta verticalmente para bases de dados de grande
dimensão sem a necessidade de gerir hardware, componentes de rede,
servidores virtuais, patches de software e outros componentes subjacentes.

Determinadas operações não estão disponíveis com a Base de Dados do Azure


para MySQL. Estas funções preocupam-se principalmente com a segurança e a
administração. O Azure gere estes aspetos do próprio servidor de bases de
dados.

Benefícios da Base de Dados do Azure para MySQL

As seguintes funcionalidades são proporcionadas com a Base de Dados do


Azure para MySQL:

 Funcionalidades incorporadas de elevada disponibilidade.


 Desempenho previsível.
 Dimensionamento fácil que responde rapidamente à procura.
 Dados protegidos, tanto inativos como em movimento.
 Cópias de segurança automáticas e recuperação para um ponto anterior
no tempo até 35 dias.
 Segurança de nível empresarial e conformidade com a legislação.

O sistema utiliza preços pay as you go para que pague apenas pelo que utiliza.
Os servidores da Base de Dados do Azure para MySQL proporcionam a
funcionalidade de monitorização para adicionar alertas e para ver métricas e
registos.

Azure Database for MariaDB

O Banco de Dados do Azure para MariaDB é uma implementação do


sistema de gerenciamento de banco de dados MariaDB adaptado para ser
executado no Azure. Baseia-se na Community Edition do MariaDB.

A base de dados é totalmente gerida e controlada pelo Azure. Depois de ter


aprovisionado o serviço e transferido os dados, o sistema não requer
praticamente qualquer administração adicional.

Benefícios do Azure Database for MariaDB

O Azure Database for MariaDB proporciona:

 Elevada disponibilidade incorporada sem custo adicional.


 Desempenho previsível, com preços pay as you go inclusivos.
 Dimensionamento conforme necessário, em alguns segundos.
 Proteção segura de dados confidenciais inativos e em movimento.
 Cópias de segurança automáticas e recuperação para um ponto anterior
no tempo até 35 dias.
 Segurança e conformidade de nível empresarial.

Base de Dados do Azure para PostgreSQL

Se preferir PostgreSQL, você pode escolher o Banco de Dados do Azure


para PostgreSQL para executar uma implementação PaaS do PostgreSQL na
Nuvem do Azure. Este serviço oferece os mesmos benefícios de disponibilidade,
desempenho, dimensionamento, segurança e administrativos que o serviço
MySQL.

Alguns recursos de bancos de dados PostgreSQL locais não estão disponíveis


no Banco de Dados do Azure para PostgreSQL. Esses recursos estão
principalmente preocupados com as extensões que os usuários podem
adicionar a um banco de dados para executar tarefas especializadas, como
escrever procedimentos armazenados em várias linguagens de programação
(além do pgsql, que está disponível) e interagir diretamente com o sistema
operacional. É suportado um conjunto principal das extensões utilizadas com
maior frequência e a lista de extensões disponíveis está sob análise contínua.
Banco de Dados do Azure para Servidor Flexível PostgreSQL

A opção de implantação de servidor flexível para PostgreSQL é um serviço de


banco de dados totalmente gerenciado. Ele fornece um alto nível de controle e
personalizações de configuração de servidor, e fornece controles de otimização
de custos.

Benefícios da Base de Dados do Azure para PostgreSQL

A Base de Dados do Azure para PostgreSQL é um serviço altamente disponível.


Contém mecanismos incorporados de deteção de falha e ativação pós-falha.

Os utilizadores do PostgreSQL deverão estar familiarizados com a


ferramenta pgAdmin, que pode utilizar para gerir e monitorizar uma base de
dados do PostgreSQL. Pode continuar a utilizar esta ferramenta para se ligar à
Base de Dados do Azure para PostgreSQL. No entanto, algumas funcionalidades
focadas no servidor, como a execução de backup e restauração do servidor, não
estão disponíveis porque o servidor é gerenciado e mantido pela Microsoft.

O Banco de Dados do Azure para PostgreSQL registra informações sobre


consultas executadas em bancos de dados no servidor e as salva em um banco
de dados chamado azure_sys. Pode consultar a vista query_store.qs_view para
ver estas informações e utilizá-las para monitorizar as consultas que os
utilizadores estão a executar. Estas informações podem-se mostrar inestimáveis
caso precise de ajustar as consultas realizadas pelas aplicações.

Resumo
O Azure dá suporte a uma variedade de serviços de banco de dados que você
pode usar para dar suporte a novos aplicativos de nuvem ou migrar aplicativos
existentes para a nuvem.

Neste módulo, ficou a saber como:

 Identificar opções para os serviços SQL do Azure


 Identificar opções para bancos de dados de código aberto no Azure
 Provisionar um serviço de banco de dados no Azure

Modulo 5: Explore o Armazenamento do Azure para dados não relacionais

Introdução
A maioria dos aplicativos de software precisa armazenar dados. Muitas vezes,
isso toma a forma de um banco de dados relacional, no qual os dados são
organizados em tabelas relacionadas e gerenciados usando Structured Query
Language (SQL). No entanto, muitos aplicativos não precisam da estrutura
rígida de um banco de dados relacional e dependem de armazenamento não
relacional (muitas vezes chamado de NoSQL).

O Armazenamento do Azure é um dos principais serviços do Microsoft Azure e


oferece uma variedade de opções para armazenar dados na nuvem. Neste
módulo, você explora os recursos fundamentais do armazenamento do Azure e
aprende como ele é usado para dar suporte a aplicativos que exigem
armazenamentos de dados não relacionais.

Objetivos de aprendizagem

Neste módulo, você aprenderá a:

 Descrever os recursos e capacidades do armazenamento de blob do Azure


 Descrever os recursos do Azure Data Lake Gen2
 Descrever os recursos e capacidades do armazenamento de arquivos do
Azure
 Descrever recursos e capacidades do armazenamento de tabelas do Azure
 Provisionar e usar uma conta de Armazenamento do Azure

Explore 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 como objetos binários
grandes, ou blobs, na nuvem. Os blobs são uma maneira eficiente de armazenar
arquivos de dados em um formato otimizado para armazenamento baseado em
nuvem, e os aplicativos podem lê-los e gravá-los usando a API de
armazenamento de blob do Azure.
Numa conta de armazenamento do Azure, pode armazenar os blobs
em contentores. Um contêiner fornece uma maneira conveniente de agrupar
blobs relacionados. Controla quem pode ler e escrever blobs dentro de um
contentor ao nível do contentor.

Dentro de um contêiner, você pode organizar blobs em uma hierarquia de


pastas virtuais, semelhante aos arquivos em um sistema de arquivos no disco.
No entanto, por padrão, essas pastas são simplesmente uma maneira de usar
um caractere "/" em um nome de blob para organizar os blobs em namespaces.
As pastas são puramente virtuais e você não pode executar operações no nível
da pasta para controlar o acesso ou executar operações em massa.

O Armazenamento de Blobs do Azure dá suporte a três tipos diferentes de blob:

 Blobs de blocos. Os blobs de blocos são processados como


conjuntos de blocos. Cada bloco pode variar em tamanho, até 4000
MiB. Um blob de bloco pode conter até 190,7 TiB (4000 MiB X
50.000 blocos), dando um tamanho máximo de mais de 5000 MiB.
O bloco é a mais pequena quantidade de dados que podem ser
lidos ou escritos como uma unidade individual. Os blobs de blocos
são recomendados para armazenar grandes objetos binários
discretos que são alterados com pouca frequência.
 Blobs de páginas. Os blobs de páginas são organizados como uma
coleção de páginas de tamanho fixo de 512 bytes. Os blobs de
páginas são otimizados para suportar operações de leitura e escrita
aleatórias. Pode obter e armazenar dados para uma única página,
se necessário. Os blobs de páginas podem conter até 8 TB de
dados. O Azure utiliza blobs de páginas para implementar o
armazenamento de discos virtuais das máquinas virtuais.
 Blobs de acréscimo. Os blobs de acréscimo são blobs de blocos
otimizados para suportar operações de acréscimo. Só pode
adicionar blocos no fim de um blob de acréscimo. A atualização ou
a eliminação dos blocos existentes não é suportada. Cada bloco
pode variar em tamanho, até 4 MB. O tamanho máximo de um blob
de acréscimo é pouco mais de 195 GB.
O armazenamento de blobs proporciona três camadas de acesso, que permitem
equilibrar a latência de acesso e o custo de armazenamento:

 A camada Frequente é a predefinição. Utiliza esta camada para os


blobs acedidos com frequência. Os dados dos blobs são
armazenados em suportes de elevado desempenho.
 O nível Cool tem um desempenho mais baixo e incorre em custos de
armazenamento reduzidos em comparação com o nível Hot . Utilize
a camada Esporádico para dados que são acedidos com pouca
frequência. É comum que os blobs criados recentemente sejam
acedidos com frequência no início, mas menos à medida que o
tempo passa. Nestas situações, pode criar o blob na camada
Frequente, mas migrá-lo para a camada Esporádico posteriormente.
Pode migrar um blob da camada Esporádico de volta para a
camada Frequente.
 O nível de arquivamento oferece o menor custo de armazenamento,
mas com maior latência. A camada Arquivo destina-se a dados
históricos que não se devem perder, mas que raramente são
necessários. Os blobs na camada Arquivo são efetivamente
armazenados num estado offline. A latência de leitura típica das
camadas Frequente e Esporádico é de alguns milissegundos, ao
passo que na camada Arquivo, pode demorar horas para que os
dados fiquem disponíveis. Para recuperar um blob da camada
Arquivo, tem de mudar a camada de acesso para Frequente ou
Esporádico. O blob, em seguida, será reidratado. O blob poderá ser
lido apenas quando o processo de reidratação estiver concluído.

Pode criar políticas de gestão do ciclo de vida para os blobs numa conta de
armazenamento. Uma política de gestão do ciclo de vida pode mover
automaticamente um blob da camada Frequente para a camada Esporádico e,
em seguida, para a camada Arquivo, à medida que ganha idade e é utilizada
com menos frequência (a política baseia-se no número de dias decorridos
desde a modificação). Uma política de gestão do ciclo de vida também pode ser
organizada para eliminar blobs desatualizados.

Explore Azure DataLake Storage


Gen2
O Repositório Azure Data Lake (Gen1) é um serviço separado para
armazenamento de dados hierárquico para data lakes analíticos, geralmente
usado pelas chamadas soluções analíticas de big data que trabalham com dados
estruturados, semiestruturados e não estruturados armazenados em arquivos. O
Azure Data Lake Storage Gen2 é uma versão mais recente deste serviço que
está integrado no Armazenamento do Azure, permitindo-lhe tirar partido da
escalabilidade do armazenamento de blob e do controlo de custos dos níveis
de armazenamento, combinados com as capacidades do sistema de ficheiros
hierárquico e a compatibilidade com os principais sistemas de análise do Azure
Data Lake Store.

Sistemas como Hadoop no Azure HDInsight, Azure Databricks e Azure Synapse


Analytics podem montar um sistema de arquivos distribuído hospedado no
Azure Data Lake Store Gen2 e usá-lo para processar grandes volumes de dados.

Para criar um sistema de arquivos Gen2 do Repositório Azure Data Lake, você
deve habilitar a opção Namespace Hierárquico de uma conta de
Armazenamento do Azure. Você pode fazer isso ao criar inicialmente a conta de
armazenamento ou pode atualizar uma conta de Armazenamento do Azure
existente para dar suporte ao Data Lake Gen2. No entanto, esteja ciente de que
a atualização é um processo unidirecional – depois de atualizar uma conta de
armazenamento para oferecer suporte a um namespace hierárquico para
armazenamento de blob, você não pode revertê-lo para um namespace simples.

Explore os arquivos do Azure


Muitos sistemas no local que compõem uma rede de computadores internos
utilizam a partilha de ficheiros. A partilha de ficheiros permite que armazene um
ficheiro num computador e conceda acesso a esse ficheiro a utilizadores e
aplicações em execução noutros computadores. Esta estratégia pode funcionar
corretamente para computadores na mesma rede local, mas não é tão
adequada quando o número de utilizadores aumenta ou se os utilizadores
estiverem localizados em locais diferentes.

Os Arquivos do Azure são essencialmente uma maneira de criar


compartilhamentos de rede baseados em nuvem, como você normalmente
encontra em organizações locais para disponibilizar documentos e outros
arquivos para vários usuários. Ao hospedar compartilhamentos de arquivos no
Azure, as organizações podem eliminar custos de hardware e despesas gerais
de manutenção e se beneficiar da alta disponibilidade e do armazenamento em
nuvem escalável para arquivos.

Cria o Armazenamento de ficheiros do Azure numa conta de armazenamento.


Os Arquivos do Azure permitem que você compartilhe até 100 TB de dados em
uma única conta de armazenamento. Estes dados podem estar distribuídos por
um número qualquer de partilhas de ficheiros na conta. O tamanho máximo de
um único arquivo é de 1 TB, mas você pode definir cotas para limitar o tamanho
de cada compartilhamento abaixo desse valor. Atualmente, o Armazenamento
de Ficheiros do Azure suporta até 2000 ligações simultâneas por ficheiro
partilhado.

Depois de criar uma conta de armazenamento, você pode carregar arquivos


para o Armazenamento de Arquivos do Azure usando o portal do Azure ou
ferramentas como o utilitário AzCopy . Também pode utilizar o serviço de
Sincronização de Ficheiros do Azure para sincronizar as cópias armazenadas em
cache localmente de ficheiros partilhados com os dados no Armazenamento de
Ficheiros do Azure.
O Armazenamento de Ficheiros do Azure dispõe de dois escalões de
desempenho. O escalão Standard utiliza hardware baseado em discos rígidos
num datacenter e o escalão Premium utiliza discos de estado sólido. O
escalão Premium oferece um débito maior, mas é cobrada uma taxa mais alta.

Os Arquivos do Azure dão suporte a dois protocolos comuns de


compartilhamento de arquivos de rede:

 O compartilhamento de arquivos SMB (Server Message Block ) é


comumente usado em vários sistemas operacionais (Windows,
Linux, macOS).
 Os compartilhamentos NFS (Network File System ) são usados por
algumas versões do Linux e macOS. Para criar um
compartilhamento NFS, você deve usar uma conta de
armazenamento de camada premium e criar e configurar uma rede
virtual através da qual o acesso ao compartilhamento possa ser
controlado.

Explore as Tabelas do Azure


O Armazenamento de Tabela do Azure é uma solução de armazenamento
NoSQL que usa tabelas que contêm itens de dados de chave/valor . Cada item é
representado por uma linha que contém colunas para os campos de dados que
precisam ser armazenados.

No entanto, não se deixe enganar pensando que uma tabela do


Armazenamento de Tabela do Azure é como uma tabela em um banco de
dados relacional. Uma Tabela do Azure permite armazenar dados
semiestruturados. Todas as linhas de uma tabela devem ter uma chave exclusiva
(composta por uma chave de partição e uma chave de linha) e, quando você
modifica dados em uma tabela, uma coluna de carimbo de data/hora registra a
data e a hora em que a modificação foi feita, mas, além disso, as colunas em
cada linha podem variar. As tabelas do Armazenamento de Tabela do Azure não
têm nenhum conceito de chaves estrangeiras, relações, procedimentos
armazenados, exibições ou outros objetos que você possa encontrar em um
banco de dados relacional. Os dados no armazenamento de Tabela do Azure
geralmente são desnormalizados, com cada linha contendo os dados inteiros
para uma entidade lógica. Por exemplo, uma tabela contendo informações do
cliente pode armazenar o nome, sobrenome, um ou mais números de telefone e
um ou mais endereços para cada cliente. O número de campos em cada linha
pode ser diferente, dependendo da quantidade de números de telefone e de
endereços de cada cliente, e dos detalhes registados para cada endereço. Numa
base de dados relacional, estas informações seriam divididas por várias linhas
em várias tabelas.

Para ajudar a garantir um acesso rápido, o Armazenamento de Tabelas do Azure


divide as tabelas em partições. A criação de partições é um mecanismo que
permite agrupar linhas relacionadas, com base numa chave de partição ou
propriedade comum. As linhas que partilham a mesma chave de partição serão
armazenadas juntas. O particionamento não só ajuda a organizar os dados, mas
também pode melhorar a escalabilidade e o desempenho das seguintes
maneiras:

 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. As tabelas podem conter qualquer
número de partições.
 Quando procurar dados, pode incluir a chave de partição nos
critérios de pesquisa. Isso ajuda a reduzir o volume de dados a
serem examinados e melhora o desempenho, reduzindo a
quantidade de E/S (operações de entrada e saída,
ou leituras e gravações) necessárias para localizar os dados.

A chave em uma tabela de Armazenamento de Tabela do Azure compreende


dois elementos; A chave de partição que identifica a partição que contém a
linha e uma chave de linha que é exclusiva para cada linha na mesma partição.
Os itens na mesma partição são armazenados por ordem de chave de linha. Se
uma aplicação adicionar uma nova linha a uma tabela, o Azure garantirá que a
linha é colocada na posição correta na tabela. Esse esquema permite que um
aplicativo execute rapidamente consultas de ponto que identificam uma única
linha e consultas de intervalo que buscam um bloco contíguo de linhas em uma
partição.
Resumo
Concluído100 XP
 1 minuto

O Armazenamento do Azure é um serviço fundamental no Microsoft Azure e


permite uma ampla gama de cenários e soluções de armazenamento de dados.

Neste módulo, ficou a saber como:

 Descrever os recursos e capacidades do armazenamento de blob do


Azure
 Descrever os recursos do Azure Data Lake Gen2
 Descrever os recursos e capacidades do armazenamento de
arquivos do Azure
 Descrever recursos e capacidades do armazenamento de tabelas do
Azure
 Provisionar e usar uma conta de Armazenamento do Azure

Modulo 6: Explore os fundamentos do Azure Cosmos DB

Introdução
Concluído100 XP
 1 minuto

As bases de dados relacionais armazenam informações em tabelas relacionais,


mas, às vezes, a estrutura imposta por este modelo pode ser muito rígida e com
frequência causa um baixo desempenho, a menos que gaste tempo a
implementar ajustes detalhados. Existem outros modelos, conhecidos
coletivamente como bancos de dados NoSQL . Estes modelos armazenam dados
noutras estruturas, como, por exemplo, em documentos, grafos, arquivos de
chaves-valor e arquivos de famílias de colunas.

O Azure Cosmos DB é um serviço de banco de dados em nuvem altamente


escalável para dados NoSQL.

Descrever o Azure Cosmos DB


Concluído100 XP

 5 minutos
O Azure Cosmos DB dá suporte a várias interfaces de programação de
aplicativos (APIs) que permitem que os desenvolvedores usem a semântica de
programação de muitos tipos comuns de armazenamento de dados para
trabalhar com dados em um banco de dados do Cosmos DB. A estrutura de
dados interna é abstrata, permitindo que os desenvolvedores usem o Cosmos
DB para armazenar e consultar dados usando APIs com as quais já estão
familiarizados.

Nota

Uma API é uma Interface de Programação de Aplicações. Os gestores de bases


de dados (e outras estruturas de software) proporcionam um conjunto de APIs
que os programadores podem utilizar para escrever programas que precisam de
aceder a dados. As APIs variam para diferentes sistemas de gerenciamento de
banco de dados.

O Cosmos DB usa índices e particionamento para fornecer desempenho rápido


de leitura e gravação e pode ser dimensionado para grandes volumes de dados.
Você pode habilitar gravações em várias regiões, adicionando as regiões do
Azure de sua escolha à sua conta do Cosmos DB para que os usuários
distribuídos globalmente possam trabalhar com dados em sua réplica local.
Quando usar o Cosmos DB

O Cosmos DB é um gestor de bases de dados altamente dimensionável. O


Cosmos DB aloca automaticamente espaço num contentor para as partições, e
cada partição pode crescer até 10 GB de tamanho. Os índices são criados e
mantidos automaticamente. Não há praticamente nenhuma sobrecarga
administrativa.

O Cosmos DB é um serviço fundamental no Azure. O Cosmos DB é utilizado por


muitos produtos da Microsoft para aplicações críticas para a empresa à escala
global, incluindo Skype, Xbox, Microsoft 365, Azure e muitos outros. O
Cosmos DB é altamente adequado para os seguintes cenários:

 IoT e telemática. Normalmente, estes sistemas ingerem grandes


quantidades de dados em picos de atividade frequentes. O Cosmos
DB pode aceitar e armazenar essas informações rapidamente. Os
dados podem ser utilizados pelos serviços de análise, como o Azure
Machine Learning, o Azure HDInsight e o Power BI. Além disso,
pode processar os dados em tempo real com Funções do Azure que
são acionadas à medida que os dados chegam à base de dados.

 Retalho e marketing. A Microsoft usa o Cosmos DB para suas


próprias plataformas de comércio eletrônico que funcionam como
parte da Windows Store e do Xbox Live. O CosmosDB também é
utilizado no setor do retalho para armazenamento de dados dos
catálogos e como fonte de eventos em pipelines de processamento
de encomendas.

 Jogos. A camada da base de dados é um componente crucial das


aplicações de jogos. Os jogos modernos executam o
processamento gráfico em clientes móveis/de consola, mas contam
com a cloud para disponibilizar conteúdo personalizado, como as
estatísticas no jogo, a integração de redes sociais e as classificações
com as pontuações mais altas. Os jogos necessitam geralmente de
latências de milissegundos para as leituras e as escritas para
proporcionar uma experiência de jogo envolvente. Uma base de
dados de jogos precisa de ser rápida e conseguir lidar com grandes
picos em taxas de pedidos durante os lançamentos de novos jogos
e nas atualizações de funcionalidades.

 Aplicações Web e móveis. O Azure Cosmos DB é frequentemente


utilizado em aplicações Web e em aplicações móveis e é ideal para
modelar interações sociais, integrar com serviços de terceiros e para
a criação de experiências personalizadas. Os SDKs do Cosmos DB
podem ser utilizados para criar aplicações iOS e Android avançadas
com a arquitetura Xamarin popular.

Identificar APIs do Azure Cosmos DB


Concluído100 XP

 6 minutos

O Azure Cosmos DB é o banco de dados distribuído totalmente gerenciado e


sem servidor da Microsoft para aplicativos de qualquer tamanho ou escala, com
suporte para cargas de trabalho relacionais e não relacionais. Os
desenvolvedores podem criar e migrar aplicativos rapidamente usando seus
mecanismos de banco de dados de código aberto preferidos, incluindo
PostgreSQL, MongoDB e Apache Cassandra. Ao provisionar uma nova instância
do Cosmos DB, você seleciona o mecanismo de banco de dados que deseja
usar. A escolha do mecanismo depende de muitos fatores, incluindo o tipo de
dados a serem armazenados, a necessidade de suportar aplicativos existentes e
as habilidades dos desenvolvedores que trabalharão com o armazenamento de
dados.

Azure Cosmos DB para NoSQL

O Azure Cosmos DB para NoSQL é o serviço não relacional nativo da Microsoft


para trabalhar com o modelo de dados do documento. Ele gerencia dados em
formato de documento JSON e, apesar de ser uma solução de armazenamento
de dados NoSQL, usa sintaxe SQL para trabalhar com os dados.

Uma consulta SQL para um banco de dados do Azure Cosmos DB contendo


dados do cliente pode ser semelhante a esta:

SQLCopiar
SELECT *
FROM customers c
WHERE c.id = "joe@litware.com"

O resultado dessa consulta consiste em um ou mais documentos JSON,


conforme mostrado aqui:

JSONCopiar
{
"id": "joe@litware.com",
"name": "Joe Jones",
"address": {
"street": "1 Main St.",
"city": "Seattle"
}
}

Azure Cosmos DB para MongoDB

MongoDB é um banco de dados de código aberto popular no qual os dados


são armazenados no formato Binary JSON (BSON). O Azure Cosmos DB para
MongoDB permite que os desenvolvedores usem bibliotecas de cliente e
código do MongoDB para trabalhar com dados no Azure Cosmos DB.

O MongoDB Query Language (MQL) usa uma sintaxe compacta e orientada a


objetos na qual os desenvolvedores usam objetos para chamar métodos. Por
exemplo, a consulta a seguir usa o método find para consultar a coleção de
produtos no objeto db :

JavaScriptCopiar
db.products.find({id: 123})

Os resultados desta consulta consistem em documentos JSON, semelhantes a


este:

JSONCopiar
{
"id": 123,
"name": "Hammer",
"price": 2.99
}

Azure Cosmos DB para PostgreSQL

O Azure Cosmos DB para PostgreSQL é um PostgreSQL nativo, banco de dados


relacional distribuído globalmente que fragmenta dados automaticamente para
ajudá-lo a criar aplicativos altamente escaláveis. Você pode começar a criar
aplicativos em um único grupo de servidores de nó, da mesma forma que faria
com o PostgreSQL em qualquer outro lugar. À medida que a escalabilidade e os
requisitos de desempenho da aplicação aumentam, pode dimensionar
facilmente para vários nós ao distribuir de forma transparente as tabelas. O
PostgreSQL é um sistema de gerenciamento de banco de dados relacional
(RDBMS) no qual você define tabelas relacionais de dados, por exemplo, você
pode definir uma tabela de produtos como esta:

Expandir tabela
ProductID ProductName Preço

123 Martelo 2.99

162 Aparafusadora 3.49

Em seguida, você pode consultar esta tabela para recuperar o nome e o preço
de um produto específico usando SQL da seguinte forma:

SQLCopiar
SELECT ProductName, Price
FROM Products
WHERE ProductID = 123;

Os resultados dessa consulta conteriam uma linha para o produto 123, da


seguinte forma:

Expandir tabela

ProductName Preço

Martelo 2.99

Azure Cosmos DB para Tabela

O Azure Cosmos DB for Table é usado para trabalhar com dados em tabelas de
chave-valor, semelhante ao Armazenamento de Tabela do Azure. Ele oferece
maior escalabilidade e desempenho do que o Armazenamento de Tabela do
Azure. Por exemplo, você pode definir uma tabela chamada Clientes como esta:

Expandir tabela

PartitionKey RowKey Nome E-mail

1 123 Joe Jones joe@litware.com

1 124 Samir Nadoy samir@northwind.com

Em seguida, você pode usar a API de tabela por meio de um dos SDKs
específicos do idioma para fazer chamadas para seu ponto de extremidade de
serviço para recuperar dados da tabela. Por exemplo, a solicitação a seguir
retorna a linha que contém o registro de Samir Nadoy na tabela acima:

textCopiar
https://endpoint/Customers(PartitionKey='1',RowKey='124')
Azure Cosmos DB para Apache Cassandra

O Azure Cosmos DB para Apache Cassandra é compatível com o Apache


Cassandra, que é um popular banco de dados de código aberto que usa uma
estrutura de armazenamento da família de colunas. As famílias de colunas são
tabelas, semelhantes às de um banco de dados relacional, com a exceção de
que não é obrigatório que todas as linhas tenham as mesmas colunas.

Por exemplo, você pode criar uma tabela Funcionários como esta:

Expandir tabela

ID Nome Gestor

1 Sue Soares

2 Ben Chan Sue Soares

Cassandra suporta uma sintaxe baseada em SQL, para que um aplicativo cliente
possa recuperar o registro para Ben Chan assim:

SQLCopiar
SELECT * FROM Employees WHERE ID = 2

Azure Cosmos DB para Apache Gremlin

O Azure Cosmos DB para Apache Gremlin é usado com dados em uma estrutura
de gráfico; em que as entidades são definidas como vértices que formam nós
em grafos conectados. Os nós são conectados por bordas que representam
relações, como esta:

O exemplo na imagem mostra dois tipos de vértice (funcionário e


departamento) e arestas que os conectam (o funcionário "Ben" relata ao
funcionário "Sue", e ambos os funcionários trabalham no departamento
"Hardware").

A sintaxe Gremlin inclui funções para operar em vértices e arestas, permitindo


inserir, atualizar, excluir e consultar dados no gráfico. Por exemplo, você pode
usar o código a seguir para adicionar um novo funcionário chamado Alice que
se reporta ao funcionário com ID 1 (Sue)

Copiar
g.addV('employee').property('id', '3').property('firstName', 'Alice')
g.V('3').addE('reports to').to(g.V('1'))

A consulta a seguir retorna todos os vértices do funcionário , na ordem de ID.

Copiar
g.V().hasLabel('employee').order().by('id')

Resumo
O Azure Cosmos DB fornece uma solução de banco de dados em escala global
para dados não relacionais.

Neste módulo, irá saber como:

 Descrever os principais recursos do Azure Cosmos DB


 Identificar APIs do Azure Cosmos DB
 Provisionar e usar uma instância do Azure Cosmos DB

Modulo 7: Explore os fundamentos da análise em larga escala

Introdução
Concluído100 XP

 1 minuto

As soluções de análise de dados em grande escala combinam armazenamento


de dados convencional usado para dar suporte ao business intelligence (BI)
com técnicas de data lakehouse que são usadas para integrar dados de arquivos
e fontes externas. Uma solução convencional de armazenamento de dados
normalmente envolve a cópia de dados de armazenamentos de dados
transacionais para um banco de dados relacional com um esquema otimizado
para consultar e criar modelos multidimensionais. As soluções Data Lakehouse,
por outro lado, são usadas com grandes volumes de dados em vários formatos,
que são carregados em lote ou capturados em fluxos em tempo real e
armazenados em um data lake a partir do qual mecanismos de processamento
distribuído como o Apache Spark são usados para processá-los.

Objetivos de aprendizagem

Neste módulo, você aprenderá a:


 Identificar elementos comuns de uma solução de análise de dados em
grande escala
 Descrever os principais recursos para pipelines de ingestão de dados
 Identificar tipos comuns de armazenamento de dados analíticos
 Identificar serviços de análise de plataforma como serviço (PaaS) no Azure
 Provisionar o Azure Synapse Analytics e usá-lo para ingerir, processar e
consultar dados
 Descrever os recursos do Microsoft Fabric - uma solução de software
como serviço (SaaS) para análise de dados
 Usar o Microsoft Fabric para ingerir e analisar dados

Descrever a arquitetura de
armazenamento de dados
Concluído100 XP
 3 minutos

A arquitetura de análise de dados em larga escala pode variar, assim como as


tecnologias específicas usadas para implementá-la; Mas, em geral, estão
incluídos os seguintes elementos:

1. Ingestão e processamento de dados – dados de um ou mais


armazenamentos de dados transacionais, arquivos, fluxos em
tempo real ou outras fontes são carregados em um data lake ou um
data warehouse relacional. A operação de carga geralmente envolve
um processo de extração, transformação e carga (ETL) ou extração,
carga e transformação (ELT) no qual os dados são limpos, filtrados e
reestruturados para análise. Em processos ETL, os dados são
transformados antes de serem carregados em um armazenamento
analítico, enquanto em um processo ELT os dados são copiados
para o armazenamento e, em seguida, transformados. De qualquer
forma, a estrutura de dados resultante é otimizada para consultas
analíticas. O processamento de dados é frequentemente realizado
por sistemas distribuídos que podem processar grandes volumes de
dados em paralelo usando clusters de vários nós. A ingestão de
dados inclui o processamento em lote de dados estáticos e o
processamento em tempo real de dados de streaming.
2. Armazenamento de dados analíticos – os armazenamentos de
dados para análises de grande escala incluem armazéns de dados
relacionais, data lakes baseados em sistemas de arquivos e
arquiteturas híbridas que combinam recursos de data warehouses e
data lakes (às vezes chamados de data lakehouses ou bancos de
dados lake). Discutiremos isso mais detalhadamente mais adiante.
3. Modelo de dados analíticos – embora analistas de dados e
cientistas de dados possam trabalhar com os dados diretamente no
armazenamento de dados analíticos, é comum criar um ou mais
modelos de dados que pré-agregam os dados para facilitar a
produção de relatórios, painéis e visualizações interativas. Muitas
vezes, esses modelos de dados são descritos como cubos, nos quais
os valores de dados numéricos são agregados em uma ou mais
dimensões (por exemplo, para determinar as vendas totais por
produto e região). O modelo encapsula as relações entre valores de
dados e entidades dimensionais para dar suporte à análise de "drill-
up/drill-down".
4. Visualização de dados – os analistas de dados consomem dados
de modelos analíticos e diretamente de repositórios analíticos para
criar relatórios, painéis e outras visualizações. Além disso, os
usuários em uma organização que podem não ser profissionais de
tecnologia podem executar análises e relatórios de dados de
autoatendimento. As visualizações dos dados mostram tendências,
comparações e indicadores-chave de desempenho (KPIs) para uma
empresa ou outra organização, e podem assumir a forma de
relatórios impressos, gráficos e tabelas em documentos ou
apresentações do PowerPoint, painéis baseados na Web e
ambientes interativos nos quais os usuários podem explorar dados
visualmente.

Explore pipelines de ingestão de


dados
Concluído100 XP

 5 minutos

Agora que você entende um pouco sobre a arquitetura de uma solução de


armazenamento de dados em grande escala e algumas das tecnologias de
processamento distribuído que podem ser usadas para lidar com grandes
volumes de dados, é hora de explorar como os dados são ingeridos em um
armazenamento de dados analíticos de uma ou mais fontes.
No Azure, a ingestão de dados em grande escala é melhor implementada
criando pipelines que orquestram processos ETL. Você pode criar e executar
pipelines usando o Azure Data Factory ou pode usar um mecanismo de pipeline
semelhante no Azure Synapse Analytics ou no Microsoft Fabric se quiser
gerenciar todos os componentes de sua solução de análise de dados em um
espaço de trabalho unificado.

Em ambos os casos, os pipelines consistem em uma ou mais atividades que


operam com dados. Um conjunto de dados de entrada fornece os dados de
origem, e as atividades podem ser definidas como um fluxo de dados que
manipula incrementalmente os dados até que um conjunto de dados de saída
seja produzido. Os pipelines podem se conectar a fontes de dados externas
para integração com uma ampla variedade de serviços de dados.

Explore armazenamentos de dados


analíticos
Concluído100 XP

 8 minutos

Existem dois tipos comuns de armazenamento de dados analíticos.


Armazéns de dados

Um data warehouse é um banco de dados relacional no qual os dados são


armazenados em um esquema otimizado para análise de dados em vez de
cargas de trabalho transacionais. Comumente, os dados de um repositório
transacional são transformados em um esquema no qual os valores numéricos
são armazenados em tabelas de fatos centrais, que estão relacionadas a uma ou
mais tabelas de dimensão que representam entidades pelas quais os dados
podem ser agregados. Por exemplo, uma tabela de fatos pode conter dados de
ordem de venda, que podem ser agregados por dimensões de cliente, produto,
loja e tempo (permitindo, por exemplo, encontrar facilmente a receita total
mensal de vendas por produto para cada loja). Esse tipo de esquema de tabela
de fatos e dimensões é chamado de esquema em estrela, embora muitas vezes
seja estendido em um esquema de floco de neve adicionando tabelas adicionais
relacionadas às tabelas de dimensão para representar hierarquias dimensionais
(por exemplo, o produto pode estar relacionado a categorias de produtos). Um
data warehouse é uma ótima opção quando você tem dados transacionais que
podem ser organizados em um esquema estruturado de tabelas e deseja usar
SQL para consultá-los.
Lagos de dados

Um data lake é um armazenamento de arquivos, geralmente em um sistema de


arquivos distribuído para acesso a dados de alto desempenho. Tecnologias
como Spark ou Hadoop são frequentemente usadas para processar consultas
nos arquivos armazenados e retornar dados para relatórios e análises. Esses
sistemas geralmente aplicam uma abordagem de esquema em leitura para
definir esquemas tabulares em arquivos de dados semiestruturados no ponto
em que os dados são lidos para análise, sem aplicar restrições quando são
armazenados. Os data lakes são ótimos para oferecer suporte a uma
combinação de dados estruturados, semiestruturados e até mesmo não
estruturados que você deseja analisar sem a necessidade de imposição de
esquema quando os dados são gravados no armazenamento.

Você pode usar uma abordagem híbrida que combina recursos de data lakes e
data warehouses em um banco de dados lake ou data lakehouse. Os dados
brutos são armazenados como arquivos em um data lake, e uma camada de
armazenamento relacional abstrai os arquivos subjacentes e os expõe como
tabelas, que podem ser consultadas usando SQL. Os pools SQL no Azure
Synapse Analytics incluem o PolyBase, que permite definir tabelas externas com
base em arquivos em um data lake (e outras fontes) e consultá-las usando SQL.
O Synapse Analytics também suporta uma abordagem de banco de dados Lake
na qual você pode usar modelos de banco de dados para definir o esquema
relacional do seu data warehouse, enquanto armazena os dados subjacentes no
armazenamento do data lake – separando o armazenamento e a computação
para sua solução de armazenamento de dados. Os data lakehouses são uma
abordagem relativamente nova em sistemas baseados no Spark e são
habilitados por meio de tecnologias como o Delta Lake, que adiciona recursos
de armazenamento relacional ao Spark, para que você possa definir tabelas que
imponham esquemas e consistência transacional, suportem fontes de dados
carregadas em lote e streaming e forneçam uma API SQL para consulta.
Explore soluções de plataforma como
serviço (PaaS)
Concluído100 XP

 8 minutos

No Azure, há três serviços principais de plataforma como serviço (PaaS) que você
pode usar para implementar um repositório analítico em grande escala

O Azure Synapse Analytics é uma solução unificada de ponta a


ponta para análise de dados em grande escala. Ele reúne várias tecnologias e
recursos, permitindo que você combine a integridade e a confiabilidade de
dados de um data warehouse relacional escalável e de alto desempenho
baseado no SQL Server com a flexibilidade de um data lake e Apache Spark de
código aberto. Ele também inclui suporte nativo para análise de log e telemetria
com pools do Azure Synapse Data Explorer, bem como pipelines de dados
internos para ingestão e transformação de dados. Todos os serviços do Azure
Synapse Analytics podem ser gerenciados por meio de uma interface de usuário
única e interativa chamada Azure Synapse Studio, que inclui a capacidade de
criar blocos de anotações interativos nos quais o código Spark e o conteúdo de
marcação podem ser combinados. O Synapse Analytics é uma ótima opção
quando você deseja criar uma solução de análise única e unificada no Azure.

O Azure Databricks é uma implementação do Azure da popular


plataforma Databricks . O Databricks é uma solução abrangente de análise de
dados construída no Apache Spark e oferece recursos SQL nativos, bem como
clusters Spark otimizados para carga de trabalho para análise de dados e ciência
de dados. O Databricks fornece uma interface de usuário interativa através da
qual o sistema pode ser gerenciado e os dados podem ser explorados em
notebooks interativos. Devido ao seu uso comum em várias plataformas de
nuvem, convém considerar o uso do Azure Databricks como seu repositório
analítico se quiser usar a experiência existente com a plataforma ou se precisar
operar em um ambiente multicloud ou dar suporte a uma solução portátil na
nuvem.
O Azure HDInsight é um serviço do Azure que dá suporte a vários
tipos de cluster de análise de dados de código aberto. Embora não seja tão fácil
de usar quanto o Azure Synapse Analytics e o Azure Databricks, ele pode ser
uma opção adequada se sua solução de análise depender de várias estruturas
de código aberto ou se você precisar migrar uma solução local existente
baseada em Hadoop para a nuvem.

Nota

Cada um desses serviços pode ser pensado como um armazenamento de dados


analíticos, no sentido de que eles fornecem um esquema e interface através dos
quais os dados podem ser consultados. Em muitos casos, no entanto, os dados
são realmente armazenados em um data lake e o serviço é usado
para processar os dados e executar consultas. Algumas soluções podem até
combinar o uso desses serviços. Um processo de ingestão de extrair, carregar e
transformar (ELT) pode copiar dados para o data lake e, em seguida, usar um
desses serviços para transformar os dados e outro para consultá-los. Por
exemplo, um pipeline pode usar um trabalho MapReduce em execução no
HDInsight ou um bloco de anotações em execução no Azure Databricks para
processar um grande volume de dados no data lake e, em seguida, carregá-lo
em tabelas em um pool SQL no Azure Synapse Analytics.

Explore Microsoft Fabric


Concluído100 XP

 8 minutos

A análise escalável com serviços PaaS pode ser complexa, fragmentada e cara.
Com o Microsoft Fabric, você não precisa gastar todo o seu tempo combinando
vários serviços e implementando interfaces através das quais os usuários
corporativos podem acessá-los. Em vez disso, você pode usar um único produto
que seja fácil de entender, configurar, criar e gerenciar. O Fabric é uma oferta
unificada de software como serviço (SaaS), com todos os seus dados
armazenados em um único formato aberto no OneLake.
O OneLake é a arquitetura centrada no lago da Fabric que fornece um ambiente
único e integrado para profissionais de dados e a empresa colaborarem em
projetos de dados. Pense nisso como o OneDrive para dados; O OneLake
combina locais de armazenamento em diferentes regiões e nuvens em um
único lago lógico, sem mover ou duplicar dados. Os dados podem ser
armazenados em qualquer formato de arquivo no OneLake e podem ser
estruturados ou não estruturados. Para dados tabulares, os mecanismos
analíticos no Fabric gravarão dados no formato delta ao gravar no OneLake.
Todos os mecanismos saberão como ler esse formato e tratar arquivos delta
como tabelas, não importa qual mecanismo o escreva.

Resumo
Concluído100 XP
 1 minuto

A análise de dados em larga escala é uma carga de trabalho complexa que pode
envolver muitas tecnologias diferentes. Este módulo forneceu uma visão geral
de alto nível dos principais recursos de uma solução de análise e explorou
alguns dos serviços da Microsoft que você pode usar para implementar uma.

Neste módulo, você aprendeu como:

 Identificar elementos comuns de uma solução de análise de dados


em grande escala
 Descrever os principais recursos para pipelines de ingestão de
dados
 Identificar tipos comuns de armazenamento de dados analíticos
 Identificar serviços de análise de plataforma como serviço (PaaS) no
Azure
 Provisionar o Azure Synapse Analytics e usá-lo para ingerir,
processar e consultar dados
 Descrever os recursos do Microsoft Fabric - uma solução de
software como serviço (SaaS) para análise de dados
 Usar o Microsoft Fabric para ingerir e analisar dados

Modulo 8: Explore os fundamentos da análise em tempo real

Introdução
Concluído100 XP
 1 minuto

O aumento do uso da tecnologia por indivíduos, empresas e outras


organizações, juntamente com a proliferação de dispositivos inteligentes e
acesso à Internet, levou a um crescimento maciço no volume de dados que
podem ser gerados, capturados e analisados. Muitos desses dados podem ser
processados em tempo real (ou, pelo menos, quase em tempo real) como um
fluxo perpétuo de dados, permitindo a criação de sistemas que revelam insights e
tendências instantâneas, ou tomar medidas imediatas de resposta aos eventos à
medida que eles ocorrem.

Objetivos de aprendizagem

Neste módulo, você aprenderá sobre os conceitos básicos de processamento de


fluxo e análise em tempo real, e os serviços no Microsoft Azure que você pode
usar para implementar soluções de processamento de dados em tempo real.
Especificamente, aprenderá como:

 Compare o processamento em lote e em fluxo


 Descrever elementos comuns de soluções de streaming de dados
 Descrever os recursos do Azure Stream Analytics
 Descrever os recursos do Spark Structured Streaming no Azure
 Descrever recursos e capacidades de análise em tempo real no Microsoft
Fabric

Compreender o processamento em
lote e fluxo
Concluído100 XP

 9 minutos

O processamento de dados é simplesmente a conversão de dados não


processados em informações relevantes através de um processo. Existem duas
formas gerais de processar dados:

 Processamento em lote, no qual vários registros de dados são coletados e


armazenados antes de serem processados juntos em uma única operação.
 Processamento de fluxo, no qual uma fonte de dados é constantemente
monitorada e processada em tempo real à medida que novos eventos de
dados ocorrem.
Compreender o processamento em lotes

No processamento em lote, os elementos de dados recém-chegados são


coletados e armazenados, e todo o grupo é processado em conjunto como um
lote. O momento exato em que cada grupo é processado pode ser determinado
de várias maneiras. Pode processar dados de acordo com um intervalo de
tempo agendado (por exemplo, a cada hora) ou podem ser acionados quando
chegar uma determinada quantidade de dados ou como resultado de outro
acontecimento.

Por exemplo, suponha que você queira analisar o tráfego rodoviário contando o
número de carros em um trecho da estrada. Uma abordagem de
processamento em lote para isso exigiria que você coletasse os carros em um
estacionamento e, em seguida, os contasse em uma única operação enquanto
eles estão em repouso.

Se a estrada estiver movimentada, com um grande número de carros circulando


em intervalos frequentes, essa abordagem pode ser impraticável; E note que
você não obtém nenhum resultado até ter estacionado um lote de carros e
contado.

Um exemplo real de processamento em lote é a forma como as empresas de


cartão de crédito lidam com a faturação. O cliente não recebe uma fatura para
cada compra individual com o cartão de crédito, mas sim uma fatura mensal de
todas as compras do mês.

Eis algumas vantagens do processamento em lotes:


 Podem ser processados grandes volumes de dados numa altura
conveniente.
 Pode ser agendado para ser executado quando os computadores ou os
sistemas estejam inativos, tal como durante a noite ou fora das horas de
maior utilização.

Eis algumas desvantagens do processamento em lotes:

 O atraso entre a ingestão de dados e a obtenção dos resultados.


 Todos os dados introduzidos de uma tarefa de lote têm de estar prontos
antes de um lote poder ser processado. Tal significa que os dados têm de
ser verificados com cuidado. Os problemas com os dados, erros e falhas
de programa que ocorrem durante tarefas de lote interrompem todo o
processo. Os dados introduzidos têm de ser verificados com cuidado
antes de a tarefa ser executada novamente. Mesmo pequenos erros de
dados podem impedir a execução de um trabalho em lote.

Compreender o processamento de fluxo

No processo de transmissão em fluxo, cada novo elemento de dados é


processado à chegada. Ao contrário do processamento em lote, não há espera
até o próximo intervalo de processamento em lote - os dados são processados
como unidades individuais em tempo real, em vez de serem processados um
lote de cada vez. O processamento de dados de fluxo é benéfico em cenários
em que novos dados dinâmicos são gerados continuamente.

Por exemplo, uma abordagem melhor para o nosso hipotético problema de


contagem de carros pode ser aplicar uma abordagem de streaming , contando
os carros em tempo real à medida que passam:
Nessa abordagem, você não precisa esperar até que todos os carros tenham
estacionado para começar a processá-los, e você pode agregar os dados em
intervalos de tempo; por exemplo, contando o número de carros que passam a
cada minuto.

Exemplos reais de streaming de dados incluem:

 Uma instituição financeira que monitoriza as alterações no mercado de


ações em tempo real, calcula o valor em risco e reequilibra
automaticamente os portefólios com base nos movimentos do preço das
ações.
 Uma empresa de jogos online que recolhe dados em tempo real das
interações dos jogadores com o jogo e fornece os dados à respetiva
plataforma de jogos. Em seguida, analisa os dados em tempo real, oferece
incentivos e experiências dinâmicas para cativar os jogadores.
 Um site imobiliário que rastreia um subconjunto de dados de dispositivos
móveis e faz recomendações de propriedades em tempo real para visitar
com base em sua localização geográfica.

O processamento de transmissão em fluxo é ideal para operações de


temporização crítica que requerem uma resposta instantânea em tempo real.
Por exemplo, um sistema que monitoriza fumo e calor num edifício necessita de
acionar alarmes e destrancar portas para permitir que os moradores consigam
fugir imediatamente em caso de incêndio.
Compreender as diferenças entre dados de transmissão em fluxo e em
lotes

Para além da forma como o processamento em lotes e o processamento de


transmissão em fluxo processam dados, existem outras diferenças:

 Escopo de dados: o processamento em lote pode processar todos


os dados no conjunto de dados. O processamento de transmissão
em fluxo normalmente só tem acesso aos dados recebidos mais
recentes ou dentro de um intervalo de tempo (por exemplo, nos
últimos 30 segundos).

 Tamanho dos dados: O processamento em lote é adequado para


lidar com grandes conjuntos de dados de forma eficiente. O
processamento de transmissão em fluxo destina-se a registos
individuais ou micro lotes com poucos registos.

 Desempenho: Latência é o tempo necessário para que os dados


sejam recebidos e processados. a latência do processamento em
lotes é normalmente de algumas horas. O processamento de
transmissão em fluxo geralmente ocorre no imediato, com uma
latência de segundos ou milissegundos.

 Análise: Normalmente, você usa o processamento em lote para


executar análises complexas. O processamento de transmissão em
fluxo é utilizado para funções de resposta mais simples, agregações
ou cálculos como médias móveis.

Combinar processamentos de fluxos e em lotes

Muitas soluções de análise de grande escala incluem uma combinação de


processamento em lote e fluxo, permitindo a análise de dados históricos e em
tempo real. É comum que as soluções de processamento de fluxo capturem
dados em tempo real, processem-nos filtrando-os ou agregando-os e
apresentem-nos através de painéis e visualizações em tempo real (por exemplo,
mostrando o total de carros que passaram por uma estrada dentro da hora
atual), enquanto também persistem os resultados processados em um
armazenamento de dados para análise histórica ao lado de dados processados
em lote (por exemplo, para permitir a análise dos volumes de tráfego ao longo
do último ano).

Mesmo quando a análise ou visualização de dados em tempo real não é


necessária, as tecnologias de streaming são frequentemente usadas para
capturar dados em tempo real e armazená-los em um armazenamento de
dados para processamento em lote subsequente (isso é o equivalente a
redirecionar todos os carros que viajam ao longo de uma estrada para um
estacionamento antes de contá-los).

O diagrama a seguir mostra algumas maneiras pelas quais o processamento em


lote e fluxo pode ser combinado em uma arquitetura de análise de dados em
grande escala.

1. Os eventos de dados de uma fonte de dados de streaming são


capturados em tempo real.
2. Os dados de outras fontes são ingeridos em um armazenamento de
dados (geralmente um data lake) para processamento em lote.
3. Se a análise em tempo real não for necessária, os dados de streaming
capturados serão gravados no armazenamento de dados para
processamento em lote subsequente.
4. Quando a análise em tempo real é necessária, uma tecnologia de
processamento de fluxo é usada para preparar os dados de streaming
para análise ou visualização em tempo real; muitas vezes filtrando ou
agregando os dados em janelas temporais.
5. Os dados sem streaming são periodicamente processados em lote para
prepará-los para análise, e os resultados são mantidos em um
armazenamento de dados analíticos (muitas vezes referido como um data
warehouse) para análise histórica.
6. Os resultados do processamento de fluxo também podem ser mantidos
no armazenamento de dados analíticos para dar suporte à análise
histórica.
7. Ferramentas analíticas e de visualização são usadas para apresentar e
explorar os dados históricos e em tempo real.
Nota

As arquiteturas de solução comumente usadas para processamento combinado


de dados em lote e fluxo incluem arquiteturas lambda e delta . Os detalhes
dessas arquiteturas estão além do escopo deste curso, mas incorporam
tecnologias para processamento de dados em lote em larga escala e
processamento de fluxo em tempo real para criar uma solução analítica de
ponta a ponta.

Explore elementos comuns da


arquitetura de processamento de
fluxo
Concluído100 XP

 4 minutos

Há muitas tecnologias que você pode usar para implementar uma solução de
processamento de fluxo, mas embora os detalhes específicos da implementação
possam variar, há elementos comuns para a maioria das arquiteturas de
streaming.

Uma arquitetura geral para processamento de fluxo

Em sua forma mais simples, uma arquitetura de alto nível para processamento
de fluxo tem esta aparência:

1. Um evento gera alguns dados. Pode ser um sinal emitido por um sensor,
uma mensagem de mídia social sendo postada, uma entrada de arquivo
de log sendo gravada ou qualquer outra ocorrência que resulte em alguns
dados digitais.
2. Os dados gerados são capturados em uma fonte de streaming para
processamento. Em casos simples, a fonte pode ser uma pasta em um
armazenamento de dados em nuvem ou uma tabela em um banco de
dados. Em soluções de streaming mais robustas, a origem pode ser uma
"fila" que encapsula a lógica para garantir que os dados de eventos sejam
processados em ordem e que cada evento seja processado apenas uma
vez.
3. Os dados de evento são processados, geralmente por uma consulta
perpétua que opera nos dados de evento para selecionar dados para
tipos específicos de eventos, valores de dados de projeto ou valores de
dados agregados em períodos (ou janelas) temporais (baseados no
tempo) - por exemplo, contando o número de emissões do sensor por
minuto.
4. Os resultados da operação de processamento de fluxo são gravados em
uma saída (ou coletor), que pode ser um arquivo, uma tabela de banco de
dados, um painel visual em tempo real ou outra fila para processamento
adicional por uma consulta downstream subsequente.

Análise em tempo real no Azure

O Microsoft Azure dá suporte a várias tecnologias que você pode usar para
implementar análises em tempo real de dados de streaming, incluindo:

 Azure Stream Analytics: uma solução de plataforma como serviço (PaaS)


que você pode usar para definir trabalhos de streaming que ingerem
dados de uma fonte de streaming, aplicam uma consulta perpétua e
gravam os resultados em uma saída.
 Spark Structured Streaming: uma biblioteca de código aberto que
permite desenvolver soluções de streaming complexas em serviços
baseados no Apache Spark, incluindo o Azure Synapse Analytics, o
Azure Databricks e o Azure HDInsight.
 Azure Data Explorer: um banco de dados de alto desempenho e
serviço de análise otimizado para ingerir e consultar dados em lote
ou streaming com um elemento de série temporal e que pode ser
usado como um serviço autônomo do Azure ou como um tempo de
execução do Azure Synapse Data Explorer em um espaço de trabalho
do Azure Synapse Analytics.

Fontes para processamento de fluxo

Os seguintes serviços são normalmente usados para ingerir dados para


processamento de fluxo no Azure:

 Hubs de Eventos do Azure: um serviço de ingestão de dados que você


pode usar para gerenciar filas de dados de eventos, garantindo que cada
evento seja processado em ordem, exatamente uma vez.
 Hub IoT do Azure: um serviço de ingestão de dados semelhante aos Hubs
de Eventos do Azure, mas otimizado para gerenciar dados de eventos de
dispositivos de Internet das Coisas (IoT).
 Azure Data Lake Store Gen 2: um serviço de armazenamento altamente
escalável que é frequentemente usado em cenários de processamento
emlote, mas que também pode ser usado como uma fonte de dados de
streaming.
 Apache Kafka: Uma solução de ingestão de dados de código aberto que
é comumente usada em conjunto com o Apache Spark. Você pode usar o
Azure HDInsight para criar um cluster Kafka.
Dissipadores para processamento de fluxo

A saída do processamento de fluxo é frequentemente enviada para os seguintes


serviços:

 Hubs de Eventos do Azure: usados para enfileirar os dados processados


para processamento posterior a jusante.
 Azure Data Lake Store Gen 2 ou Azure blob storage: usado para
persistir os resultados processados como um arquivo.
 Banco de Dados SQL do Azure ou Azure Synapse Analytics ou Azure
Databricks: usado para persistir os resultados processados em uma
tabela de banco de dados para consulta e análise.
 Microsoft Power BI: Usado para gerar visualizações de dados em tempo
real em relatórios e painéis.

Explore Azure Stream Analytics


Concluído100 XP

 2 minutos

O Azure Stream Analytics é um serviço para processamento de eventos


complexos e análise de dados de streaming. O Stream Analytics é usado para:

 Ingerir dados de uma entrada, como um hub de eventos do Azure, Hub


IoT do Azure ou contêiner de blob de Armazenamento do Azure.
 Processe os dados usando uma consulta para selecionar, projetar e
agregar valores de dados.
 Escreva os resultados em uma saída, como Azure Data Lake Gen 2, Banco
de Dados SQL do Azure, Azure Synapse Analytics, Azure Functions, hub de
eventos do Azure, Microsoft Power BI ou outros.
Uma vez iniciada, uma consulta do Stream Analytics será executada
perpetuamente, processando novos dados à medida que chegam na entrada e
armazenando resultados na saída.

O Azure Stream Analytics é uma ótima opção de tecnologia quando você


precisa capturar continuamente dados de uma fonte de streaming, filtrá-los ou
agregá-los e enviar os resultados para um armazenamento de dados ou
processo downstream para análise e relatórios.

Trabalhos e clusters do Azure Stream Analytics

A maneira mais fácil de usar o Azure Stream Analytics é criar um trabalho do


Stream Analytics em uma assinatura do Azure, configurar sua(s) entrada(s) e
saída(s) e definir a consulta que o trabalho usará para processar os dados. A
consulta é expressa usando sintaxe SQL (linguagem de consulta estruturada) e
pode incorporar dados de referência estáticos de várias fontes de dados para
fornecer valores de pesquisa que podem ser combinados com os dados de
streaming ingeridos de uma entrada.

Se os requisitos do processo de fluxo forem complexos ou exigirem muitos


recursos, você poderá criar um cluster do Stream Analysis, que usa o mesmo
mecanismo de processamento subjacente de um trabalho do Stream Analytics,
mas em um locatário dedicado (para que seu processamento não seja afetado
por outros clientes) e com escalabilidade configurável que permite definir o
equilíbrio certo de taxa de transferência e custo para seu cenário específico.

Explore o Apache Spark no Microsoft


Azure
Concluído100 XP

 3 minutos

O Apache Spark é uma estrutura de processamento distribuído para análise de


dados em grande escala. Você pode usar o Spark no Microsoft Azure nos
seguintes serviços:

 Azure Synapse Analytics


 Azure Databricks
 Azure HDInsight

O Spark pode ser usado para executar código (geralmente escrito em Python,
Scala ou Java) em paralelo em vários nós de cluster, permitindo que ele
processe grandes volumes de dados de forma eficiente. O Spark pode ser usado
para processamento em lote e processamento de fluxo.

Streaming estruturado do Spark

Para processar dados de streaming no Spark, você pode usar a biblioteca Spark
Structured Streaming , que fornece uma interface de programação de aplicativos
(API) para ingerir, processar e enviar resultados de fluxos perpétuos de dados.

O Spark Structured Streaming é construído em uma estrutura ubíqua no Spark


chamada dataframe, que encapsula uma tabela de dados. Você usa a API de
Streaming Estruturado do Spark para ler dados de uma fonte de dados em
tempo real, como um hub Kafka, um armazenamento de arquivos ou uma porta
de rede, em um dataframe "ilimitado" que é continuamente preenchido com
novos dados do fluxo. Em seguida, você define uma consulta no dataframe que
seleciona, projeta ou agrega os dados - geralmente em janelas temporais. Os
resultados da consulta geram outro dataframe, que pode ser persistido para
análise ou processamento posterior.
O Spark Structured Streaming é uma ótima opção para análise em tempo real
quando você precisa incorporar dados de streaming em um data lake ou
armazenamento de dados analíticos baseado no Spark.

Nota

Para obter mais informações sobre o Spark Structured Streaming, consulte o


guia de programação do Spark Structured Streaming.

Delta Lake

O Delta Lake é uma camada de armazenamento de código aberto que adiciona


suporte para consistência transacional, imposição de esquema e outros recursos
comuns de armazenamento de dados ao armazenamento de data lake. Ele
também unifica o armazenamento para streaming e dados em lote, e pode ser
usado no Spark para definir tabelas relacionais para processamento em lote e
fluxo. Quando usada para processamento de fluxo, uma tabela Delta Lake pode
ser usada como uma fonte de streaming para consultas em dados em tempo
real ou como um coletor no qual um fluxo de dados é gravado.

Os tempos de execução do Spark no Azure Synapse Analytics e no Azure


Databricks incluem suporte para Delta Lake.

O Delta Lake combinado com o Spark Structured Streaming é uma boa solução
quando você precisa abstrair dados processados em lote e streaming em um
data lake atrás de um esquema relacional para consultas e análises baseadas em
SQL.

Explore o Apache Spark no Microsoft


Azure
Concluído100 XP

 3 minutos
O Apache Spark é uma estrutura de processamento distribuído para análise de
dados em grande escala. Você pode usar o Spark no Microsoft Azure nos
seguintes serviços:

 Azure Synapse Analytics


 Azure Databricks
 Azure HDInsight

O Spark pode ser usado para executar código (geralmente escrito em Python,
Scala ou Java) em paralelo em vários nós de cluster, permitindo que ele
processe grandes volumes de dados de forma eficiente. O Spark pode ser usado
para processamento em lote e processamento de fluxo.

Streaming estruturado do Spark

Para processar dados de streaming no Spark, você pode usar a biblioteca Spark
Structured Streaming , que fornece uma interface de programação de aplicativos
(API) para ingerir, processar e enviar resultados de fluxos perpétuos de dados.

O Spark Structured Streaming é construído em uma estrutura ubíqua no Spark


chamada dataframe, que encapsula uma tabela de dados. Você usa a API de
Streaming Estruturado do Spark para ler dados de uma fonte de dados em
tempo real, como um hub Kafka, um armazenamento de arquivos ou uma porta
de rede, em um dataframe "ilimitado" que é continuamente preenchido com
novos dados do fluxo. Em seguida, você define uma consulta no dataframe que
seleciona, projeta ou agrega os dados - geralmente em janelas temporais. Os
resultados da consulta geram outro dataframe, que pode ser persistido para
análise ou processamento posterior.

O Spark Structured Streaming é uma ótima opção para análise em tempo real
quando você precisa incorporar dados de streaming em um data lake ou
armazenamento de dados analíticos baseado no Spark.

Nota

Para obter mais informações sobre o Spark Structured Streaming, consulte o


guia de programação do Spark Structured Streaming.
Delta Lake

O Delta Lake é uma camada de armazenamento de código aberto que adiciona


suporte para consistência transacional, imposição de esquema e outros recursos
comuns de armazenamento de dados ao armazenamento de data lake. Ele
também unifica o armazenamento para streaming e dados em lote, e pode ser
usado no Spark para definir tabelas relacionais para processamento em lote e
fluxo. Quando usada para processamento de fluxo, uma tabela Delta Lake pode
ser usada como uma fonte de streaming para consultas em dados em tempo
real ou como um coletor no qual um fluxo de dados é gravado.

Os tempos de execução do Spark no Azure Synapse Analytics e no Azure


Databricks incluem suporte para Delta Lake.

O Delta Lake combinado com o Spark Structured Streaming é uma boa solução
quando você precisa abstrair dados processados em lote e streaming em um
data lake atrás de um esquema relacional para consultas e análises baseadas em
SQL.

Resumo
Concluído100 XP
 1 minuto

O processamento em tempo real é um elemento comum das soluções de


análise de dados empresariais. O Microsoft Azure oferece uma variedade de
serviços que você pode usar para implementar o processamento de fluxo e a
análise em tempo real.

Neste módulo, você aprendeu como:

 Compare o processamento em lote e em fluxo


 Descrever elementos comuns de soluções de streaming de dados
 Descrever os recursos do Azure Stream Analytics
 Descrever os recursos do Spark Structured Streaming no Azure
 Descrever os recursos do Azure Synapse Data Explorer
 Descrever recursos e capacidades de análise em tempo real no
Microsoft Fabric

Modulo 9: Explorar as noções básicas da visualização de dados


Introdução
Concluído100 XP

 1 minuto

A modelagem e visualização de dados estão no centro das cargas de trabalho


de business intelligence (BI) que são suportadas por soluções de análise de
dados em larga escala. Essencialmente, a visualização de dados possibilita a
geração de relatórios e a tomada de decisões que ajudam as organizações a
terem sucesso.

Neste módulo, você aprenderá sobre os princípios fundamentais de modelagem


de dados analíticos e visualização de dados, usando o Microsoft Power BI como
uma plataforma para explorar esses princípios em ação.

Objetivos de aprendizagem

Depois de concluir este módulo, conseguirá:

 Descrever um processo de alto nível para criar soluções de relatórios com


o Microsoft Power BI
 Descrever os princípios fundamentais da modelagem de dados analíticos
 Identificar tipos comuns de visualização de dados e seus usos
 Criar um relatório interativo com o Power BI Desktop

Descrever as ferramentas e o fluxo de


trabalho do Power BI
Concluído100 XP

 3 minutos

Há muitas ferramentas de visualização de dados que os analistas de dados


podem usar para explorar dados e resumir insights visualmente; incluindo
suporte a gráficos em ferramentas de produtividade como o Microsoft Excel e
widgets de visualização de dados incorporados em blocos de notas utilizados
para explorar dados em serviços como o Azure Synapse Analytics e o Azure
Databricks. No entanto, para análises de negócios em escala empresarial, uma
solução integrada que possa oferecer suporte a modelagem de dados
complexa, relatórios interativos e compartilhamento seguro é frequentemente
necessária.
Microsoft Power BI

O Microsoft Power BI é um conjunto de ferramentas e serviços que os analistas


de dados podem usar para criar visualizações de dados interativas para os
usuários corporativos consumirem.

Um fluxo de trabalho típico para criar uma solução de visualização de dados


começa com o Power BI Desktop, um aplicativo do Microsoft Windows no qual
você pode importar dados de uma ampla variedade de fontes de dados,
combinar e organizar os dados dessas fontes em um modelo de dados de
análise e criar relatórios que contêm visualizações interativas dos dados.

Depois de criar modelos de dados e relatórios, você pode publicá-los


no serviço do Power BI, um serviço de nuvem no qual os relatórios podem ser
publicados e interagidos por usuários corporativos. Você também pode fazer
algumas modelagens básicas de dados e edição de relatórios diretamente no
serviço usando um navegador da Web, mas a funcionalidade para isso é
limitada em comparação com a ferramenta Power BI Desktop. Você pode usar o
serviço para agendar atualizações das fontes de dados nas quais seus relatórios
se baseiam e para compartilhar relatórios com outros usuários. Você também
pode definir painéis e aplicativos que combinam relatórios relacionados em um
único local fácil de consumir.

Os usuários podem consumir relatórios, painéis e aplicativos no serviço do


Power BI por meio de um navegador da Web ou em dispositivos móveis usando
o aplicativo de telefone do Power BI.
Descrever os principais conceitos de
modelagem de dados
Concluído100 XP

 5 minutos

Os modelos analíticos permitem estruturar dados para dar suporte à análise. Os


modelos são baseados em tabelas de dados relacionadas e definem os valores
numéricos que você deseja analisar ou relatar (conhecidos como medidas) e as
entidades pelas quais deseja agregá-los (conhecidos como dimensões). Por
exemplo, um modelo pode incluir uma tabela contendo medidas numéricas
para vendas (como receita ou quantidade) e dimensões para produtos, clientes
e tempo. Isso permitiria agregar medidas de venda em uma ou mais dimensões
(por exemplo, para identificar a receita total por cliente ou o total de itens
vendidos por produto por mês). Conceitualmente, o modelo forma uma
estrutura multidimensional, que é comumente referida como um cubo, na qual
qualquer ponto onde as dimensões se cruzam representa uma medida
agregada para essas dimensões.)

Nota
Embora comumente nos referimos a um modelo analítico como um cubo, pode
haver mais (ou menos) do que três dimensões – simplesmente não é fácil para
nós visualizar mais de três!

Tabelas e esquema

As tabelas de dimensão representam as entidades pelas quais você deseja


agregar medidas numéricas – por exemplo, produto ou cliente. Cada entidade é
representada por uma linha com um valor de chave exclusivo. As colunas
restantes representam atributos de uma entidade – por exemplo, os produtos
têm nomes e categorias, e os clientes têm endereços e cidades. É comum na
maioria dos modelos analíticos incluir uma dimensão de tempo para que você
possa agregar medidas numéricas associadas a eventos ao longo do tempo .

As medidas numéricas que serão agregadas pelas várias dimensões no modelo


são armazenadas em tabelas Fact . Cada linha em uma tabela de fatos
representa um evento registrado que tem medidas numéricas associadas a ela.
Por exemplo, a tabela Sales no esquema abaixo representa transações de
vendas para itens individuais e inclui valores numéricos para quantidade
vendida e receita.
Este tipo de esquema, onde uma tabela de fatos está relacionada a uma ou mais
tabelas de dimensão, é referido como um esquema de estrelas (imagine que há
cinco dimensões relacionadas a uma única tabela de fatos – o esquema formaria
uma estrela de cinco pontas!). Você também pode definir um esquema mais
complexo no qual as tabelas de dimensão estão relacionadas a tabelas
adicionais contendo mais detalhes (por exemplo, você pode representar
atributos de categorias de produtos em uma tabela Categoria
separada relacionada à tabela Produto – caso em que o design é referido
como um esquema de floco de neve. O esquema de tabelas de fatos e
dimensões é usado para criar um modelo analítico, no qual as agregações de
medidas em todas as dimensões são pré-calculadas; tornando o desempenho
das atividades de análise e relatório muito mais rápido do que calcular as
agregações de cada vez.)

Hierarquias de atributos

Uma última coisa que vale a pena considerar sobre modelos analíticos é a
criação de hierarquias de atributos que permitem que você faça drill-up ou drill-
down rapidamente para encontrar valores agregados em diferentes níveis em
uma dimensão hierárquica. Por exemplo, considere os atributos nas tabelas de
dimensão que discutimos até agora. Na tabela Produto, você pode formar uma
hierarquia na qual cada categoria pode incluir vários produtos nomeados. Da
mesma forma, na tabela Cliente , uma hierarquia pode ser formada para
representar vários clientes nomeados em cada cidade. Finalmente, na Tabela
de tempo, você pode formar uma hierarquia de ano, mês e dia. O modelo pode
ser construído com valores pré-agregados para cada nível de uma hierarquia,
permitindo que você altere rapidamente o escopo de sua análise – por exemplo,
visualizando as vendas totais por ano e, em seguida, detalhando para ver uma
divisão mais detalhada das vendas totais por mês.

Modelagem analítica no Microsoft Power BI

Você pode usar o Power BI para definir um modelo analítico de tabelas de


dados, que podem ser importados de uma ou mais fontes de dados. Em
seguida, você pode usar a interface de modelagem de dados na guia
Modelo do Power BI Desktop para definir seu modelo analítico criando relações
entre tabelas de fatos e dimensões, definindo hierarquias, definindo tipos de
dados e formatos de exibição para campos nas tabelas e gerenciando outras
propriedades de seus dados que ajudam a definir um modelo avançado para
análise.

Descrever considerações para


visualização de dados
Concluído100 XP

 5 minutos

Depois de criar um modelo, você pode usá-lo para gerar visualizações de dados
que podem ser incluídas em um relatório.

Existem muitos tipos de visualização de dados, alguns comumente usados e


outros mais especializados. O Power BI inclui um extenso conjunto de
visualizações internas, que podem ser estendidas com visualizações
personalizadas e de terceiros. O restante desta unidade discute algumas
visualizações de dados comuns, mas não é de forma alguma uma lista
completa.
Tabelas e texto

As tabelas e o texto são muitas vezes a forma mais simples de comunicar dados.
As tabelas são úteis quando vários valores relacionados devem ser exibidos, e
valores de texto individuais em cartões podem ser uma maneira útil de mostrar
figuras ou métricas importantes.

Gráficos de barras e colunas

Os gráficos de barras e colunas são uma boa maneira de comparar visualmente


valores numéricos para categorias discretas.
Gráficos de linhas

Os gráficos de linhas também podem ser usados para comparar valores


categorizados e são úteis quando você precisa examinar tendências, muitas
vezes ao longo do tempo.

Gráficos circulares

Os gráficos de pizza são frequentemente usados em relatórios de negócios para


comparar visualmente valores categorizados como proporções de um total.
Gráficos de dispersão

Os gráficos de dispersão são úteis quando você deseja comparar duas medidas
numéricas e identificar uma relação ou correlação entre elas.

Mapas

Os mapas são uma ótima maneira de comparar visualmente valores para


diferentes áreas geográficas ou locais.
Relatórios interativos no Power BI

No Power BI, os elementos visuais para dados relacionados em um relatório são


automaticamente vinculados uns aos outros e fornecem interatividade. Por
exemplo, selecionar uma categoria individual em uma visualização filtrará e
destacará automaticamente essa categoria em outras visualizações relacionadas
no relatório. Na imagem acima, a cidade de Seattle foi selecionada no gráfico
de colunas Vendas por cidade e categoria, e as outras visualizações são
filtradas para refletir valores apenas para Seattle.

Resumo
Concluído100 XP
 1 minuto

A modelagem e visualização de dados permite que as organizações extraiam


insights dos dados.

Neste módulo, ficou a saber como:

 Descrever um processo de alto nível para criar soluções de


relatórios com o Microsoft Power BI
 Descrever os princípios fundamentais da modelagem de dados
analíticos
 Identificar tipos comuns de visualização de dados e seus usos
 Criar um relatório interativo com o Power BI Desktop

Você também pode gostar