Você está na página 1de 183

Análise na Cloud com

o Microsoft Azure
Segunda Edição

Transforme o seu negócio com o poder da


análise no Azure

Has Altaiar, Jack Lee e Michael Peña


Análise na Cloud com
o Microsoft Azure,
Segunda Edição
Transforme o seu negócio com o poder da análise
no Azure

Has Altair, Jack Lee e Michael Peña


Análise na Cloud com o Microsoft Azure, Segunda Edição
Copyright © 2020 Packt Publishing
Todos os direitos reservados. Nenhuma parte deste livro pode ser reproduzida,
armazenada num sistema de recuperação ou transmitida de qualquer forma ou por
qualquer meio, sem a permissão prévia por escrito do editor, exceto no caso de breves
citações incorporadas em artigos críticos ou revisões.
Foram envidados todos os esforços na preparação deste livro para garantir a exatidão
das informações apresentadas. No entanto, as informações contidas neste livro são
vendidas sem garantia, expressa ou implícita. Nem os autores nem a Packt Publishing
e os seus revendedores e distribuidores serão responsabilizados por quaisquer danos
causados ou supostamente causados direta ou indiretamente por este livro.
A Packt Publishing esforçou-se para fornecer informações sobre marcas registadas de
todas as empresas e produtos mencionados neste livro através da utilização apropriada
de maiúsculas. No entanto, a Packt Publishing não pode garantir a precisão destas
informações.
Autores: Has Altair, Jack Lee e Michael Peña
Revisor Técnico: Aaditya Pokkunuri
Diretores Editoriais: Aditya Datar e Neha Pande
Editor de Aquisições: Ben Renow-Clarke
Editor de Produção: Deepak Chavan
Conselho Editorial: Vishal Bodwani, Ben Renow-Clarke, Arijit Sarkar, Dominic
Shakeshaft e Lucy Wan
Primeira Publicação: outubro de 2019
Referência de Produção: 2221220
ISBN: 978-1-80020-243-6
Publicado pela Packt Publishing Ltd.
Livery Place, 35 Livery Street
Birmingham B3 2PB, Reino Unido
Índice

Prefácio   i

Capítulo 1: Introdução à análise de dados no Azure   1

O poder dos dados ................................................................................................... 3


Análise de big data .................................................................................................. 4
Internet of Things (IoT) ............................................................................................ 5
Machine learning ..................................................................................................... 6
Inteligência artificial (IA) ......................................................................................... 7
DataOps .................................................................................................................... 8
Porquê o Microsoft Azure? ..................................................................................... 9
Segurança ...................................................................................................................... 11
Escala da cloud .............................................................................................................. 12
Principais motores de negócio para adotar a análise de dados na cloud ...... 14
Crescimento e dimensionamento rápidos ................................................................ 14
Reduzir custos ............................................................................................................... 15
Promover a inovação .................................................................................................... 16
Por que precisa de um data warehouse moderno? .......................................... 16
Reunir os seus dados .................................................................................................... 18
Criar um pipeline de dados .................................................................................. 21
Ingestão de dados ......................................................................................................... 22
Armazenamento de dados .......................................................................................... 22
Orquestração e monitorização do pipeline de dados .............................................. 22
Partilha de dados .......................................................................................................... 22
Preparação dos dados .................................................................................................. 23
Transformação, previsão e melhoramento dos dados ............................................ 23
Serviço dos dados ......................................................................................................... 23
Visualização de dados .................................................................................................. 24
Aplicações mais inteligentes ................................................................................ 26
Resumo ................................................................................................................... 26

Capítulo 2: Introdução à área de trabalho do Azure Synapse


Analytics e ao Synapse Studio   27

O que é o Azure Synapse Analytics? .................................................................... 28


Porque precisamos do Azure Synapse Analytics? ..................................................... 29
Desafios que o cliente enfrenta .................................................................................. 30
A solução: o Azure Synapse Analytics ................................................................. 30
Aprofundamento do Azure Synapse Analytics ................................................... 32
Apresentação da área de trabalho do Azure Synapse Analytics ..................... 33
Conta Azure gratuita .................................................................................................... 33
Guia de início rápido ..................................................................................................... 34
Apresentação do Synapse Studio ........................................................................ 41
Iniciar o Synapse Studio ............................................................................................... 41
Aprovisionar um conjunto de SQL dedicado ............................................................. 43
Explorar dados no conjunto de SQL dedicado .......................................................... 48
Criar um conjunto do Apache Spark .......................................................................... 50
Integrar com pipelines ................................................................................................. 60
O hub Monitorizar ........................................................................................................ 64
Resumo ................................................................................................................... 65
Capítulo 3: Processar e visualizar dados   67

Power BI .................................................................................................................. 68
Funcionalidades e vantagens ...................................................................................... 69
O Power BI e o Azure Synapse Analytics ............................................................. 70
Funcionalidades e vantagens ...................................................................................... 71
Guia de início rápido (Modelação e visualização de dados) .................................... 72
Machine learning no Azure ................................................................................... 89
ML.NET ........................................................................................................................... 91
Machine learning automatizado ................................................................................ 91
Serviços cognitivos ....................................................................................................... 92
Bot Framework .............................................................................................................. 92
Funcionalidades e benefícios do Azure Machine Learning ..................................... 93
Software Development Kit (SDK) ................................................................................ 94
Estruturador .................................................................................................................. 94
AutoML ........................................................................................................................... 94
Objetivos de implementação flexíveis ....................................................................... 94
Accelerated Machine Learning Operations (MLOps) ................................................ 94
Azure Machine Learning e Azure Synapse Analytics ......................................... 96
Guia de início rápido (Azure Machine Learning) ....................................................... 96
Pré-requisitos ................................................................................................................ 96
Criar um modelo de machine learning utilizando o Estruturador ......................... 99
Resumo ................................................................................................................. 103
Capítulo 4: Casos de utilização de negócios   105

Caso de utilização 1: Insights de clientes em tempo real com


o Azure Synapse Analytics .................................................................................. 106
O problema ........................................................................................................... 106
Capturar e processar novos dados .......................................................................... 107
Reunir todos os dados ............................................................................................... 107
Encontrar insights e padrões nos dados ................................................................. 108
Deteção em tempo real ............................................................................................ 108
Brainstorming do design .................................................................................... 110
Ingestão de dados ...................................................................................................... 110
Armazenamento de dados ....................................................................................... 111
Data science ............................................................................................................... 112
Dashboards e relatórios ............................................................................................ 112
A solução ............................................................................................................... 112
Fluxo de dados ........................................................................................................... 113
Serviços Azure ...................................................................................................... 114
Azure Data Lake Storage Gen2 ................................................................................. 115
Azure Synapse Analytics ........................................................................................... 117
Integração Híbrida do Azure Synapse (Pipelines) ................................................. 118
Power BI ...................................................................................................................... 124
Serviços de suporte do Azure ................................................................................... 126
Insights e ações .................................................................................................... 128
Reduzir o desperdício em 18% ................................................................................. 129
As tendências das redes sociais impulsionam vendas em 14% ........................... 130
Conclusão ............................................................................................................. 131
Caso de utilização 2: Utilizar análises avançadas no Azure para
criar um aeroporto inteligente .......................................................................... 132
O problema ........................................................................................................... 132
Desafios do negócio ................................................................................................... 132
Desafios técnicos ....................................................................................................... 134
Brainstorming do design .................................................................................... 136
Origens de dados ....................................................................................................... 136
Armazenamento de dados ....................................................................................... 137
Ingestão de dados ...................................................................................................... 137
Segurança e controlo de acessos ............................................................................. 138
Detetar padrões e insights ....................................................................................... 138
A solução ............................................................................................................... 138
Porquê o Azure para o NIA? ...................................................................................... 138
Arquitetura da solução ....................................................................................... 140
Serviços Azure ...................................................................................................... 142
Azure Synapse Analytics ........................................................................................... 142
Azure Cosmos DB ....................................................................................................... 144
Azure Machine Learning .......................................................................................... 146
Azure Container Registry .......................................................................................... 149
Azure Kubernetes Service ......................................................................................... 150
Power BI ...................................................................................................................... 152
Serviços de suporte ................................................................................................... 154
Insights e ações .................................................................................................... 154
Reduzir os atrasos nos voos em 17% utilizando análises preditivas .................. 154
Reduzir o congestionamento e melhorar o comércio através de
visualização inteligente ............................................................................................. 155
Conclusão ............................................................................................................. 156
Capítulo 5: Conclusão   157

Palavras finais ...................................................................................................... 160


Para aprendizagem adicional ............................................................................. 160

Índice remissivo   161


Prefácio
>
Acerca de

Esta secção apresenta resumidamente os autores e o revisor, os temas abordados neste


livro, as competências técnicas que irá precisar para se lançar ao trabalho e os requisitos de
hardware e software necessários para realizar todas as atividades e exercícios.
ii | Prefácio

Acerca da Análise na Cloud com o Microsoft Azure, Segunda Edição


A Análise na Cloud com o Microsoft Azure serve como um guia completo para o
processamento e a análise de big data utilizando um conjunto de funcionalidades do
Microsoft Azure. Este livro explica tudo o que precisa de saber para criar o seu próprio
data warehouse e aprender inúmeras técnicas para obter insights úteis através da
análise de big data.
O livro começa por apresentar o poder dos dados com a análise de big data, a Internet
of Things (IoT), o machine learning, a inteligência artificial e DataOps. Irá obter
informações sobre análises à escala da cloud e os serviços que o Microsoft Azure
oferece para capacitar as empresas para descobrir insights. Também ficará a conhecer
a nova experiência unificada na área de trabalho do Azure Synapse e no Synapse Studio
com um guia prático.  
Por último, irá analisar dois casos de utilização de empresas do mundo real para
ilustrar soluções de alto nível que utilizam o Microsoft Azure. O objetivo destes casos
de utilização será demonstrar como se podem analisar os dados em tempo real no
Azure para obter insights relevantes e tomar decisões de negócio. Aprenderá a criar
um pipeline de análise de ponta a ponta na cloud com conceitos de machine learning
e aprendizagem profunda.
Quando chegar ao fim do livro, dominará a técnica de análise de grandes conjuntos de
dados com o Azure e saberá utilizá-los eficazmente para benefício da sua organização.

Acerca dos autores


Has Altaiar é um consultor de profissão, mas no seu íntimo considera-se um
engenheiro de software. Has vive em Melbourne, Austrália, e é o Diretor Executivo
da vNEXT Solutions. O seu trabalho centra-se nos dados, na IoT e na IA no Microsoft
Azure, e dois dos seus mais recentes projetos de IoT ganharam vários prémios. Has é
um MVP do Microsoft Azure e um organizador e orador habitual em conferências locais
e internacionais, incluindo Microsoft Ignite, NDC e ServerlessDays. Também é membro
do conselho da Global AI Community. É possível segui-lo no Twitter em @hasaltaiar.
Jack Lee é um consultor sénior certificado do Azure e um especialista em prática
do Azure com uma paixão pelo desenvolvimento do software, a cloud e as inovações
de DevOps. É um colaborador ativo da comunidade tecnológica da Microsoft e
realizou apresentações em vários grupos de utilizadores e conferências, incluindo
o Global Azure Bootcamp na Microsoft Canada. Jack é um mentor e juiz experiente
em hackathons, sendo igualmente o presidente de um grupo de utilizadores centrado
no Azure, em DevOps e no desenvolvimento de software. É o coautor de Azure para
Arquitetos e Análise na Cloud com o Microsoft Azure, ambos publicados pela Packt
Publishing. Foi reconhecido como um MVP da Microsoft pelos seus contributos
para a comunidade tecnológica. Pode seguir Jack no Twitter em @jlee_consulting.
Acerca da Análise na Cloud com o Microsoft Azure, Segunda Edição | iii

Michael Peña é um experiente consultor técnico que reside em Sydney, Austrália. É um


MVP da Microsoft e um profissional certificado com mais de 10 anos de experiência
em dados, dispositivos móveis, cloud, Web e DevOps. Ao longo destes anos já
desempenhou vários papéis, mas o que mais lhe assenta é de programador. É também
um orador internacional e já participou em inúmeros eventos, entre os quais se incluem
o Microsoft Ignite, NDC, DDD, Cross-Platform Summit e vários encontros presenciais
e virtuais. Michael estagiou na Microsoft, sendo também um ex-aluno do Microsoft
Student Partner. Pode segui-lo no Twitter em @mjtpena.

Acerca do revisor
Aaditya Pokkunuri é um engenheiro sénior de bases de dados com um historial de
experiência de 11 anos no setor das tecnologias e serviços de informação. As suas
competências incluem ajuste do desempenho, administração de servidores MS SQL
Database, SSIS, SSRS, Power BI e desenvolvimento de SQL.
Possui sólidos conhecimentos sobre replicação, clustering, opções de alta disponibilidade
do SQL Server e processos ITIL, bem como conhecimentos especializados em tarefas de
administração do Windows, Active Directory e tecnologias do Microsoft Azure.
Também possui experiência na Cloud do AWS e é um AWS Solution Architect Associate.
Aaditya é um profissional especializado em tecnologias da informação e possui uma
Licenciatura em Tecnologia centrada em informática e engenharia da Universidade
de Sastra, Tamil Nadu.

Objetivos da aprendizagem
• Explorar os conceitos de data warehouses e pipelines de dados modernos
• Descobrir considerações de design únicas ao aplicar uma solução de análise na cloud
• Conceber um pipeline de análise de ponta a ponta na cloud
• Distinguir entre dados estruturados, semiestruturados e não estruturados
• Selecionar um serviço baseado na cloud para as suas soluções de análise de dados
• Usar os serviços Azure para ingerir, armazenar e analisar dados de qualquer escala
iv | Prefácio

Audiência
Este livro foi concebido para engenheiros de software, programadores, consultores de
cloud e qualquer pessoa que esteja interessada em aprender o processo de extração de
insights de negócios de big data através do Azure.
Embora não seja necessário, para tirar o máximo partido do livro é útil ter noções
básicas de conceitos de análise de dados tais como o streaming de dados, tipos de
dados, o ciclo de vida do machine learning e os contentores Docker.

Abordagem
A Análise na Cloud com o Microsoft Azure introduz conceitos complexos com exemplos
do mundo real para que obtenha experiência prática e, ao mesmo tempo, compreenda
os fundamentos. O livro contém inúmeros guias de início rápido que permitem
aprender com maior rapidez.

Requisitos de hardware e software


Requisitos de hardware
Para uma boa experiência de aprendizagem, recomendamos a seguinte configuração do
hardware:
• Memória: mínimo de 4 GB de RAM
• Ecrã: é recomendado 1440 x 900 ou 1600 x 900 (16:9) como mínimo
• CPU: é recomendado um processador de 86 ou 64 bits com 1 gigahertz (GHz) ou
superior
Requisitos de software
Recomendamos também que defina antecipadamente a seguinte configuração de software:
• Versão mais recente do Windows 10 ou do Windows Server
• Subscrição do Azure. Pode configurar uma conta Azure gratuita em https://azure.
microsoft.com/free/synapse-analytics/.
• Versão mais recente do Microsoft Edge
Acerca da Análise na Cloud com o Microsoft Azure, Segunda Edição | v

Convenções
As palavras de código no texto, os nomes de bases de dados, os nomes de pastas, os
nomes de ficheiros e as extensões de ficheiros são apresentados da forma seguinte.
O seguinte fragmento de código utiliza o serviço associado à Azure SQL Database para
criar um conjunto de dados que faz referência a sales_table na SQL Database da Coolies:
{
   "name": "CooliesSalesDataset",
   "properties":
   {
      "type": "AzureSqlTable",
      "linkedServiceName": {
         "referenceName": "CooliesSalesAzureSqlDbLS",
         "type": "LinkedServiceReference"
      },
      "schema": [ {optional} ],
         "typeProperties": {
            "tableName": "sales_table"
         }
   }
}

Instalação e configuração
Pode instalar o Power BI Desktop (https://packt.live/37hUTmK) e começar a criar
relatórios interativos.
Introdução à análise
1
de dados no Azure
De acordo com um inquérito realizado pela Dresner Advisory Services em 2019, um
máximo histórico de 48% das organizações diz que a business intelligence na cloud
é essencial ou muito importante para o desempenho das suas operações comerciais.
O estudo de mercado Cloud Computing and Business Intelligence também demonstrou
que as equipas de vendas e marketing tiram o máximo partido da análise.
À medida que as empresas crescem, geram enormes quantidades de dados todos os
dias. Estes dados são provenientes de diferentes origens, como telemóveis, sensores
de Internet of Things (IoT) e diversos produtos Software as a Service (SaaS), como
os sistemas de Gestão das Relações com os Clientes (CRM). As empresas e os negócios
precisam de dimensionar e modernizar a sua arquitetura e infraestrutura de dados,
para responderem à exigência de se manterem competitivos nos respetivos setores.
2 | Introdução à análise de dados no Azure

Ter capacidades de análise à escala da cloud é a estratégia de referência para alcançar


este crescimento. Em vez de gerir o seu próprio datacenter, explorar o poder da cloud
permite que as suas empresas sejam mais acessíveis aos seus utilizadores. Com a ajuda
de um fornecedor de serviços cloud, como o Microsoft Azure, pode acelerar a sua
prática de análise de dados sem as limitações da sua infraestrutura de TI. O jogo mudou
em termos de manutenção das infraestruturas de TI, uma vez que os data lakes e os
data warehouses na cloud são capazes de armazenar e manter grandes quantidades
de dados.
A mera recolha de dados não acrescenta valor ao seu negócio; é necessário extrair
insights dos mesmos e ajudar o seu negócio a crescer utilizando a análise de dados
ou será apenas uma montanha de dados inúteis. O Azure é mais do que apenas um
hub para recolha de dados; é um recurso inestimável para a análise de dados. A análise
de dados permite-lhe entender melhor o seu negócio e os seus clientes. Ao aplicar
vários conceitos de data science, tais como ML, análise de regressão, algoritmos de
classificação e previsão de séries temporais, pode testar as suas hipóteses e tomar
decisões orientadas por dados no futuro. Todavia, um dos desafios que as organizações
enfrentam continuamente é como extrair estas capacidades de modelação analítica
rapidamente ao processar milhares de milhões de linhas de dados. É aqui que ter data
warehouses e pipelines de dados modernos pode ajudar (mais informações sobre este
assunto nas secções seguintes).
Existem várias formas de a análise de dados contribuir para o desenvolvimento do seu
negócio. No caso do comércio, se compreender melhor os seus clientes, terá uma ideia
mais precisa dos produtos que deve vender, bem como onde, quando e como os vender.
No setor financeiro, a análise de dados está a ajudar as autoridades a combater o crime,
detetando transações fraudulentas e facultando avaliações de risco mais informadas
com base no histórico de informações criminais.
Este capítulo irá abordar tópicos fundamentais sobre o poder dos dados com:
• Análise de big data
• IoT
• Machine Learning (ML)
• Inteligência Artificial (IA)
• DataOps

Também irá saber por que motivo o Microsoft Azure é a plataforma de eleição para
efetuar análises na cloud. Por último, irá estudar os conceitos fundamentais de data
warehouses e pipelines de dados modernos.
O poder dos dados | 3

O poder dos dados


Como consumidor, viu como a chegada dos dados influenciou as nossas atividades
de rotina diária. As aplicações de entretenimento mais populares, como o YouTube,
agora oferecem uma experiência personalizada do utilizador com funcionalidades como
recomendações de vídeos baseadas nos nossos interesses e nas informações de registo
do histórico de pesquisa. Agora é extremamente fácil descobrir novos conteúdos
semelhantes aos nossos conteúdos preferidos, bem como encontrar tendências
de conteúdo novas e populares.
Devido à grande mudança na tecnologia wearable, tornou-se igualmente possível
acompanhar as nossas estatísticas de saúde através da monitorização das frequências
cardíacas, da pressão arterial, etc. Estes dispositivos formulam então uma recomendação
personalizada com base nas médias dessas estatísticas. Mas estas estatísticas de saúde
personalizadas são apenas uma amostra da monumental recolha de dados que acontece
todos os dias à escala global, para a qual contribuímos ativamente.
Todos os dias, milhões de pessoas em todo o mundo utilizam plataformas de redes
sociais e motores de busca. Gigantes da Internet como o Facebook, Instagram e Google
utilizam dados clickstream para descobrir inovações e melhorar os serviços. A recolha
de dados também é amplamente realizada no âmbito de projetos como The Great
Elephant Census e eBird que procuram estimular a conservação da vida selvagem. Na
Índia, foram adotadas técnicas orientadas por dados para projetos de conservação de
tigres. Inclusive, desempenha um papel inestimável nos esforços globais de compilação
de provas, causas e respostas possíveis às alterações climáticas, para entender
a temperatura da superfície do mar, analisar catástrofes naturais como inundações
costeiras e salientar padrões de aquecimento global num esforço coletivo para salvar
o ecossistema.
Organizações como a Global Open Data for Agriculture and Nutrition (GODAN),
que podem ser utilizadas por agricultores, proprietários de ranchos e consumidores,
também contribuem para esta incansável recolha de dados.
Além disso (tal como com a chegada da tecnologia wearable), a análise de dados está
a contribuir para avanços pioneiros no setor da saúde. Os conjuntos de dados dos
pacientes são analisados para identificar padrões e sintomas precoces de doenças de
modo a descobrir soluções mais adequadas para problemas conhecidos.
A escala de dados de que estamos a falar é monumental, daí ser utilizado o popular
termo big data para descrever a capacidade de aproveitar estes dados à escala.

Nota
Pode ler mais informações sobre dados abertos aqui.
4 | Introdução à análise de dados no Azure

Análise de big data


O termo “big data” é frequentemente utilizado para descrever grandes volumes de dados que
as ferramentas tradicionais não conseguem processar. Pode ser caracterizado pelos cinco Vs:
• Volume: indica a quantidade de dados que é necessário processar para a análise
de big data. Atualmente, estamos a processar conjuntos de dados maiores do que
nunca, o que se tornou possível graças à disponibilidade de produtos eletrónicos,
como dispositivos móveis e sensores IoT, que foram amplamente adotados em
todo o mundo para fins comerciais.
• Velocidade: refere-se à frequência de geração dos dados. Os dispositivos
e as plataformas, como os que acabaram de ser mencionados, produzem
constantemente dados em larga escala e a um ritmo veloz. Deste modo, torna-se
necessário recolher, processar, analisar e servir os dados com grande rapidez.
• Variedade: refere-se à estrutura dos dados que estão a ser produzidos. As origens
de dados são inconsistentes, sendo compostas por uma combinação de dados
estruturados, não estruturados e alguns dados semiestruturados (na secção
Reunir os seus dados ficará a saber mais sobre este assunto).
• Valor: refere-se ao valor dos dados a serem extraídos. Os dados que estão
acessíveis nem sempre podem ser de valor. Com as ferramentas certas,
pode extrair valor a partir dos dados de uma forma rentável e escalável.
• Veracidade: refere-se à qualidade ou fiabilidade dos dados. Um conjunto de dados não
processados geralmente contém muito ruído e distorção, e necessitará de limpeza.
Dispor de um grande conjunto de dados não é útil se a maioria dos dados não for exata.
A análise de big data constitui o processo de encontrar padrões, tendências e correlações
em dados não estruturados para extrair insights relevantes que moldam as decisões de
negócio. Estes dados não estruturados são geralmente ficheiros de grande dimensão
(por exemplo, imagens, vídeos e gráficos sociais).
O que não significa que as bases de dados relacionais não sejam relevantes para os
big data. De facto, plataformas modernas de data warehouse como o Azure Synapse
Analytics (anteriormente conhecido como o Azure SQL Data Warehouse) suportam
dados estruturados e semiestruturados (como JSON) e podem ser infinitamente
dimensionados para suportar desde terabytes a petabytes de dados. Com o Microsoft
Azure, dispõe de flexibilidade para escolher qualquer plataforma. Estas tecnologias podem
complementar-se mutuamente para produzir um sólido pipeline de análise de dados.

Eis alguns dos melhores casos de utilização de análise de big data:


• Análise nas redes sociais: através de sites de redes sociais como o Twitter,
Facebook e Instagram, as empresas podem saber o que os clientes estão a dizer
sobre os seus produtos e serviços. A análise das redes sociais ajuda as empresas
a direcionarem as suas audiências utilizando as preferências dos utilizadores
e as tendências do mercado. Os desafios aqui são a enorme quantidade de
dados e a natureza não estruturada dos tweets e das publicações.
Internet of Things (IoT) | 5

• Prevenção de fraudes: este é um dos casos de utilização de big data mais comuns.
Uma das principais funcionalidades da análise de big data quando é utilizada para
a prevenção de fraudes é a capacidade de detetar anomalias num conjunto de
dados. A validação das transações com cartões de crédito através da perceção dos
padrões de transação, tais como os dados de localização e as categorias dos artigos
adquiridos, é um exemplo disso. Neste caso, o maior desafio é assegurar que os
modelos de IA/ML estão limpos e sem distorções. Pode existir uma possibilidade
de o modelo ter sido treinado apenas para um parâmetro específico, como o país
de origem de um utilizador, pelo que o modelo irá centrar-se na determinação de
padrões apenas na localização do utilizador e poderá perder outros parâmetros.
• Otimização de preços: a utilização da análise de big data pode prever quais são
os pontos de preço que atingirão os melhores resultados com base em dados
históricos do mercado. Deste modo, as empresas asseguram que não têm preços
demasiado altos ou baixos. O desafio neste caso é que muitos fatores podem
afetar os preços. Ao centrar-se apenas num fator específico, como o preço de
um concorrente, pode acabar por levar o seu modelo a cingir-se apenas a essa
área, negligenciando outros fatores como os dados de meteorologia e tráfego.
Os big data para negócios e empresas são geralmente acompanhados pelo conceito de
possuir uma infraestrutura IoT, onde centenas, milhares ou até milhões de dispositivos
estão ligados a uma rede que envia dados constantemente para um servidor.

Internet of Things (IoT)


A IoT desempenha uma função essencial no dimensionamento da sua aplicação para
transcender as origens de dados atuais. A IoT é simplesmente uma interligação de
dispositivos que estão incorporados para servir um único propósito nos objetos que nos
rodeiam para enviar e receber dados. A IoT permite-nos reunir constantemente dados
sobre elementos sem os codificar manualmente numa base de dados.
Um smartwatch é um bom exemplo de um dispositivo IoT que mede constantemente
os sinais vitais do seu corpo. Em vez de obter um dispositivo de medição e
codificar o mesmo num sistema, o smartwatch permite-lhe registar os seus dados
automaticamente. Um outro bom exemplo é um localizador de dispositivos para
um ativo que captura informações relativas à localização, temperatura e humidade.
Assim, as empresas de logística podem monitorizar os artigos que estão em trânsito,
assegurando a qualidade e eficiência dos seus serviços.
Em termos de escala, estes dispositivos IoT geram entre gigabytes a terabytes de
dados. Estes dados são normalmente armazenados num data lake, num formato
não processado e não estruturado, sendo posteriormente analisados para extrair
insights de negócio. Um data lake é um repositório centralizado de todos os dados
estruturados, semiestruturados e não estruturados. No exemplo da empresa de logística
anteriormente mencionada, era possível gerar padrões (como as melhores rotas de
entrega). Também era possível usar os dados para compreender anomalias como
fugas de dados ou atividades eventualmente fraudulentas.
6 | Introdução à análise de dados no Azure

Machine learning
À medida que os seus dados crescem em tamanho, geram muitas oportunidades para
as empresas transcenderem a compreensão das tendências e dos padrões de negócio.
O machine learning e a inteligência artificial são exemplos de inovações que é possível
explorar com os seus dados. Agora, criar as suas capacidades de inteligência artificial
e ML é relativamente fácil devido à disponibilidade das tecnologias necessárias
e à possibilidade de dimensionar o armazenamento e a computação na cloud.
Machine learning e inteligência artificial são termos que muitas vezes são confundidos.
Em resumo, o machine learning é um subconjunto (ou uma aplicação) da inteligência
artificial. O objetivo do machine learning é permitir que os sistemas aprendam a partir
dos conjuntos de dados passados e se adaptem automaticamente sem assistência
humana, o que se torna possível graças à aplicação de uma série de algoritmos ao
conjunto de dados: o algoritmo analisa os dados quase em tempo real e, em seguida,
apresenta as possíveis ações com base na precisão ou confiança obtida a partir das
experiências anteriores.
A palavra “aprendizagem” indica que o programa está constantemente a aprender com
dados que lhe são alimentados. O machine learning procura esforçar-se pela precisão
e não pelo sucesso. Existem três categorias principais de algoritmos de machine
learning: supervisionados, não supervisionados e de reforço.
Os algoritmos de machine learning supervisionados criam uma função de mapeamento
para mapear variáveis de entrada com uma variável de saída. O algoritmo utiliza os
conjuntos de dados existentes como treino para prever o resultado. A classificação
é uma forma de ML supervisionado que pode ser utilizada em aplicações como
a categorização de imagens ou a segmentação dos clientes, que é utilizada para
campanhas de marketing direcionadas.
Por outro lado, o machine learning não supervisionado é quando se deixa um
programa encontrar o seu próprio padrão sem quaisquer etiquetas. Um bom exemplo
é compreender os padrões de compra dos clientes na aquisição de produtos. Obtém
os agrupamentos inerentes (clustering) consoante os comportamentos de compra
e o programa pode associar clientes e produtos de acordo com os padrões de compra.
Por exemplo, pode perceber que os clientes que compram o Produto A tendem
também a comprar o Produto B. Este é um exemplo de um algoritmo de recomendação
baseado no utilizador e na análise baseada no mercado. O que acabaria por significar
para o utilizador é que ao comprar um artigo específico, como um livro, é também
encorajado a comprar outros livros que pertencem à mesma série, género ou categoria.
Inteligência artificial (IA) | 7

O machine learning por reforço (RL) fornece insights e ações relevantes com base
em recompensas e castigos. A principal diferença entre este machine learning e o
supervisionado é que não precisa de entradas e saídas etiquetadas como parte do
algoritmo. Um excelente exemplo disso é a nova tendência financeira para “robots
assistentes”. Os robots assistentes utilizam agentes que são recompensados e punidos
com base no seu desempenho em ações da bolsa (ou seja, ganhos e perdas). Com o tempo,
o agente pode reconhecer se deve reter, comprar ou vender ações. Esta tendência mudou
completamente o cenário porque, no passado, os analistas tinham de tomar todas as
decisões; agora a maioria das complicadas tendências de dados já foram analisadas de
antemão e os analistas podem optar por ouvir ou não o agente. No entanto, o comércio
financeiro é muito complexo dada a natureza dos parâmetros existentes no mundo,
pelo que nem todas as previsões dos robots assistentes são exatas.

Inteligência artificial (IA)


A inteligência artificial transcende as capacidades do machine learning. Trata-se de
tomar decisões e procurar o sucesso e não a precisão. Sob uma determinada ótica
o objetivo do machine learning é ganhar conhecimentos enquanto a inteligência
artificial visa a sabedoria ou inteligência. Um exemplo de IA em ação seria o robot
Atlas da Boston Dynamic, que pode navegar livremente por terreno aberto e evitar
obstáculos sem a ajuda do controlo humano. O robot não depende exclusivamente dos
dados históricos do mapa para navegar. No entanto, para o machine learning, trata-se
de criar ou prever um padrão a partir da análise dos dados históricos. Semelhante
à navegação do robot, trata-se de compreender a melhor rota possível criando
padrões baseados em dados de tráfego históricos e fornecidos pelo público.
A configuração de um data warehouse moderno com análise de cloud é o principal fator na
preparação necessária para executar ML/IA. Sem a migração dos workloads para a cloud,
a extração dos modelos de ML/IA irá encontrar vários obstáculos ao tentar maximizar
o valor comercial destas tecnologias emergentes. Os data warehouses e pipelines
de análise modernos constituem o pilar que permite contornar esses obstáculos.
A Microsoft é líder nos domínios do machine learning e da inteligência artificial,
uma vez que têm impulsionado uma grande parte da inovação através dos seus
produtos e ferramentas, como a Cortana (a assistente digital do Windows) e as
legendas e traduções em tempo real do Office 365. Oferecem uma gama de produtos,
ferramentas e serviços como os Serviços Cognitivos da Microsoft, o estúdio do Azure
Machine Learning, o serviço Azure Machine Learning e o ML.NET.
8 | Introdução à análise de dados no Azure

A Microsoft está a dar o exemplo com a sua iniciativa AI for Good, que visa tornar
o mundo mais sustentável e acessível através da IA. Especialmente interessante
é o projeto AI for Snow Leopards, no qual a Microsoft utiliza tecnologia de IA para
detetar os leopardos-das-neves (que são quase invisíveis na neve) para proteger esta
espécie em perigo de extinção. A exploração da inteligência artificial e da aprendizagem
profunda (a capacidade de aprender sem supervisão humana), especificamente os
aspetos de data science e das fórmulas, não é o foco deste livro, mas serão abordados
alguns conceitos em capítulos posteriores (obtenha mais informações sobre este
assunto no Capítulo 3, Processar e visualizar dados).

DataOps
Para ser eficiente e ágil na implementação da análise de dados na sua empresa, precisa
da cultura e dos processos adequados. É aqui que o conceito de DataOps entra em ação.
O DataOps remove a barreira de coordenação entre os dados (analistas, engenheiros
e cientistas) e as equipas de operações (administradores e gestores de operações) de
modo a alcançar velocidade e precisão na análise de dados.
O DataOps envolve uma cultura de colaboração entre diferentes papéis e funções.
Os data scientists têm acesso a dados em tempo real para explorar, preparar e servir
resultados. Os processos e fluxos automatizados revelam-se inestimáveis para
este esforço de colaboração entre analistas e programadores, já que fornecem fácil
acesso aos dados através de ferramentas de visualização. Os dados relevantes devem
ser facultados aos utilizadores finais através de aplicações Web ou móveis; isto é
geralmente possível com uma interface de programação de aplicações (ou API). Para
os CEOs, o DataOps equivale a uma tomada de decisão mais rápida, pois permite-
lhes monitorizar os negócios a um elevado nível sem esperar que os líderes de equipa
reportem. A Figura 1.1 tenta explicar a ideia de uma cultura colaborativa de DataOps:

Figura 1.1: O processo de DataOps


Porquê o Microsoft Azure? | 9

Assim que uma equipa atinja a velocidade e precisão pretendidas no teste das suas
hipóteses (como a probabilidade de alguém comprar um produto com base nas
respetivas características e comportamento), é possível extraírem melhores insights.
A partir do momento em que existem melhores insights, existem pontos de decisão
mais exequíveis e razoáveis para os intervenientes no negócio que minimizam os
riscos e maximizam os lucros.

Porquê o Microsoft Azure?


O Microsoft O Azure é um conjunto de serviços de cloud computing criados pela
Microsoft utilizando os seus próprios datacenters geridos. O Azure é a única cloud com
uma verdadeira solução de análise de ponta a ponta. Com o Azure, os analistas podem
extrair insights em segundos a partir de todos os dados empresariais. O Azure fornece
um fluxo de dados maduro e sólido, sem limitações à simultaneidade.
O Azure suporta os serviços Infraestrutura como um Serviço (IaaS), Plataforma como
Serviço (PaaS) e SaaS. Muitas instituições governamentais de todo o mundo, bem como
95% das empresas da Fortune 500, utilizam o Azure, desde setores como os cuidados
de saúde e os serviços financeiros até ao comércio e à indústria.
A Microsoft é um conglomerado tecnológico que tem permitido a muitas pessoas
chegar mais longe com menos durante décadas, graças ao seu software, ferramentas
e plataformas. O Azure oferece flexibilidade. Ferramentas e infraestruturas familiares
da Microsoft (como o SQL Server, o Windows Server, os Serviços de Informação
Internet (IIS) e .NET) ou ferramentas como MySQL, Linux, PHP, Python, Java ou
quaisquer outras tecnologias de open source podem funcionar na cloud Azure.
Longe vão os tempos em que só se podia trabalhar num conjunto isolado de
ferramentas e tecnologias.
O Azure fornece-lhe vários produtos e serviços, consoante as suas necessidades. Agora
dispõe da opção de fazer tudo de forma personalizada, desde gerir o seu IaaS ao acionar
as virtual machines do Windows Server com o Enterprise SQL Server instalado, até
utilizar uma oferta de PaaS gerido como o Azure Synapse Analytics.
10 | Introdução à análise de dados no Azure

A Figura 1.2 mostra a ampla gama de ferramentas e serviços Azure específicos de dados
que é possível utilizar para criar pipelines de dados de ponta a ponta:

Figura 1.2: Serviços relacionados com dados do Microsoft Azure

O Azure concede-lhe a flexibilidade de escolher a melhor abordagem de resolução


de um problema por si mesmo, em vez de ser forçado a ajustar um produto menos
adaptável para executar uma função não natural. E não está apenas limitado ao SQL
Server. Também dispõe da flexibilidade de escolher outros tipos de base de dados ou
armazenamento, seja através de um serviço instalado num servidor Linux ou numa
solução contentorizada, ou através de uma plataforma gerida (como o Azure Cosmos
DB para as suas instâncias Cassandra e MongoDB). Esta flexibilidade é de extrema
importância porque, no mundo real, diferentes cenários requerem diferentes soluções,
ferramentas e produtos.

O Microsoft Azure fornece-lhe uma plataforma de ponta a ponta, a partir do Azure


Active Directory para gerir o seu acesso e identidade de utilizador às ofertas do Azure
IoT (como o IoT Hub) a fim de recolher dados de centenas e milhares de dispositivos IoT.
Também fornece serviços como ferramentas de programação e opções de alojamento
na cloud para pôr os seus programadores operacionais, bem como várias ferramentas
de análise e machine learning que permitem aos data scientists, engenheiros de dados
e analistas de dados ser mais produtivos (mais informações sobre este assunto no
Capítulo 3, Processar e visualizar dados).
A gama completa de serviços Azure é demasiado ampla para cobrir aqui. Assim,
em vez disso, este livro irá concentrar-se no principal conjunto de produtos de
data warehousing e business intelligence: Azure Data Lake, Azure Synapse Analytics,
Power BI e Azure Machine Learning.
Porquê o Microsoft Azure? | 11

Segurança
A segurança é a principal prioridade para a Microsoft. No que toca aos dados, a
privacidade e a segurança não são negociáveis; existirão sempre ameaças. O Azure
possui as mais avançadas funcionalidades de segurança e de privacidade no domínio
da análise. Os serviços Azure suportam a proteção de dados através de Redes Virtuais
(VNets) para que, apesar de estarem na cloud, não seja possível os pontos de dados
serem acedidos pela Internet pública. Apenas os utilizadores na mesma VNet podem
comunicar entre si. Para as aplicações Web, obtém uma Firewall de Aplicações Web
(WAF) fornecida pelo Azure Application Gateway, que assegura que apenas os pedidos
válidos podem entrar na sua rede.
Com o controlo de acessos baseado em funções (autorização), pode assegurar que
apenas aqueles que têm as funções adequadas, como os administradores, têm acesso
a componentes específicos e às capacidades dos diferentes recursos. Por outro lado, a
autenticação assegura que se não tiver as credenciais adequadas (como palavras-passe),
não poderá aceder a um recurso. Com a ajuda do Azure Active Directory, a autorização e a
autenticação estão incorporadas em diversos serviços e componentes do Microsoft Azure.
O Azure também fornece um serviço chamado Azure Key Vault. O Key Vault permite
armazenar e gerir com segurança os segredos e as palavras-passe, criar chaves de
encriptação e gerir certificados para que as aplicações não tenham acesso direto
a chaves privadas. Ao seguir este padrão com o Key Vault, não é necessário codificar
os segredos e as palavras-passe no código-fonte e no repositório de scripts.
O Azure Synapse Analytics utiliza o ML e a IA para proteger os seus dados.
No Azure SQL, a Microsoft fornece segurança avançada de dados para assegurar
que os seus dados são protegidos, incluindo compreender se a sua base de dados
tem vulnerabilidades, como números de porta publicamente disponíveis. Estas
capacidades também permitem uma maior conformidade com várias normas, como
o Regulamento Geral Sobre a Proteção de Dados (RGPD), assegurando que os dados
do cliente considerados confidenciais são protegidos. O Azure SQL também anunciou
recentemente as suas novas funcionalidades (a segurança ao nível da linha (RLS)
e a segurança ao nível da coluna (CLS)), para controlar o acesso às linhas e colunas
numa tabela de bases de dados com base nas características do utilizador.
Por ano, a Microsoft investe pelo menos 1 mil milhões de dólares no domínio de
cibersegurança, incluindo a plataforma Azure. O Azure detém várias credenciais
e prémios de organismos de avaliação independentes, o que significa que pode confiar
no Azure em todos os aspetos de segurança, desde a segurança física (ao ponto
de nenhuns utilizadores não autorizados poderem ter acesso físico aos datacenters)
até à segurança ao nível da aplicação.
Estas são algumas das funcionalidades de segurança que precisa de considerar se
estiver a gerir o seu próprio datacenter.
12 | Introdução à análise de dados no Azure

Escala da cloud
O Azure mudou a indústria ao tornar a análise de dados rentável. Antes da adoção em
massa do cloud computing, para planear a análise de dados com terabytes ou mesmo
petabytes de dados, era preciso planear devidamente e assegurar que tinha o capital
necessário para o fazer, resultando em custos iniciais muito elevados de infraestrutura
e serviços profissionais, apenas para começar. Mas com o Azure, pode começar a uma
escala pequena (muitos dos serviços têm níveis gratuitos). Pode aumentar ou reduzir
verticalmente os seus recursos cloud com facilidade, dentro ou fora, numa questão
de minutos. O Azure democratizou a capacidade de dimensionamento, o que o torna
economicamente viável e acessível a todos, conforme ilustra a Figura 1.3:

Figura 1.3: Regiões do Microsoft Azure

O Microsoft Azure conta atualmente com mais de 60 regiões de datacenters que


prestam suporte a mais de 140 países. Algumas empresas e setores empresariais exigem
que os seus dados sejam alojados no mesmo país em que decorrem as operações
comerciais. Com a disponibilidade de diferentes datacenters em todo o mundo, é fácil
expandir-se para outras regiões. Esta abordagem multirregião também é vantajosa em
termos de tornar as suas aplicações altamente disponíveis.
Porquê o Microsoft Azure? | 13

O verdadeiro poder da cloud é a sua elasticidade. Deste modo, não só é possível


aumentar verticalmente os recursos, mas também reduzi-los verticalmente quando
necessário. Na data science, isto é muito útil porque envolve workloads variáveis. Por
exemplo, quando os cientistas e engenheiros de dados estão a analisar um conjunto de
dados, há uma necessidade de mais computação. O Azure, através de serviços como
o Azure Machine Learning (mais sobre este assunto no Capítulo 3, Processar e visualizar
dados), permite-lhe dimensionar de acordo com a procura. Depois, durante os horários
fora do pico (como aos fins de semana e das 19:00 às 7:00 nos dias úteis), quando os
cientistas e engenheiros não precisam do poder de processamento para analisar dados,
pode reduzir verticalmente os seus recursos para que não tenha de pagar a respetiva
execução 24 horas por dia. Basicamente, o Azure oferece um serviço de pagamento
por utilização (“pay as you go” ou “pay for what you use”).
O Azure também fornece um Contrato de Nível de Serviço (SLA) para os seus serviços,
em que se compromete a assegurar o tempo de atividade e conectividade para os seus
clientes de produção. Se ocorrer algum período de inatividade ou incidente, serão
aplicados créditos de serviço (descontos) aos recursos que foram afetados. Terá maior
tranquilidade, uma vez que a aplicação estará sempre disponível com um tempo de
inatividade mínimo.
O Microsoft Azure fornece diferentes abordagens e padrões de dimensionamento:
• Dimensionamento vertical: verifica-se quando são adicionados mais recursos
à mesma instância (servidor ou serviço). Um exemplo disto é quando uma
virtual machine é aumentada verticalmente de 4 GB de RAM para 16 GB de RAM.
Esta é uma abordagem fácil e simples quando é necessário dimensionar a sua
aplicação. No entanto, existe um limite técnico máximo para o grau de aumento
vertical e esta é a abordagem de dimensionamento mais dispendiosa.
• Dimensionamento horizontal: verifica-se quando implementa a sua aplicação em
várias instâncias. Logicamente, isto significa que pode dimensionar a sua aplicação
de forma infinita porque não utiliza uma único computador para realizar as suas
operações. Esta flexibilidade introduz também algumas complexidades. Estas
complexidades são geralmente resolvidas utilizando vários padrões e diferentes
tecnologias de orquestração, tais como o Docker e Kubernetes.
• Dimensionamento geográfico: verifica-se quando dimensiona as suas aplicações
para diferentes localizações geográficas por duas razões principais: resiliência e
latência reduzida. A resiliência permite que a sua aplicação funcione livremente na
respetiva região sem que todos os recursos estejam ligados a uma região principal.
Latência reduzida significa que os utilizadores da respetiva região podem obter os
pedidos Web mais rapidamente devido à sua proximidade com o datacenter.
• Fragmentação: esta é uma das técnicas para distribuir grandes volumes de dados
estruturados relacionados por múltiplas bases de dados independentes.
14 | Introdução à análise de dados no Azure

• Desenvolvimento, Testes, Aceitação e Produção (DTAP): esta é a abordagem


em que múltiplas instâncias residem em diferentes ambientes lógicos. Em geral,
isto é feito para separar servidores de desenvolvimento e testes de servidores
de transição e produção. O Azure DevTest Labs oferece um ambiente de
desenvolvimento e testes que pode ser configurado com políticas de grupo.
Outra vantagem do seu negócio estar na cloud é a disponibilidade dos seus serviços.
Com o Azure, é mais fácil tornar a sua infraestrutura e recursos georredundantes,
ou seja, disponíveis para várias regiões e datacenters em todo o mundo. Digamos
que pretende expandir o seu negócio da Austrália para o Canadá. Pode consegui-lo
tornando o seu SQL Server georredundante para que os utilizadores canadianos não
necessitem de consultar a aplicação e a instância da base de dados na Austrália.
Apesar de ser um conjunto de produtos e ofertas de serviços, o Azure não o força a
adotar tudo desde o princípio, sendo possível começar por implementar uma arquitetura
híbrida de datacenters on-premises combinados e na cloud (Azure). Uma solução híbrida
envolve diferentes abordagens e tecnologias, como a utilização de Redes Privadas
Virtuais (VPNs) e do Azure ExpressRoute, se necessitar de acesso dedicado.
Com o Azure Synapse Analytics, através de integrações de dados, o Azure permite-lhe
obter um instantâneo das origens de dados a partir do seu SQL Server on-premises.
O mesmo conceito aplica-se quando tem outras origens de dados de outros fornecedores
de cloud ou produtos SaaS; dispõe da flexibilidade de obter uma cópia desses dados
para o seu Azure Data Lake. Esta flexibilidade é extremamente conveniente porque não
o coloca numa posição de dependência de um só fornecedor onde é necessário efetuar
uma migração completa.

Principais motores de negócio para adotar a análise de


dados na cloud
As empresas têm diferentes razões para adotar a análise de dados utilizando uma
cloud pública como o Microsoft Azure. Mas muito frequentemente, resume-se a três
grandes razões: o crescimento e o dimensionamento rápidos, a redução dos custos
e a promoção da inovação.

Crescimento e dimensionamento rápidos


As empresas e os negócios precisam de expandir rapidamente a sua pegada digital.
Com o rápido crescimento das aplicações móveis, especialmente do tipo multimédia
(como as imagens e os vídeos), os sensores IoT e os dados das redes sociais, existem
muito mais dados a capturar. Como tal, as empresas e os negócios precisam de
dimensionar a sua infraestrutura para suportar estas enormes exigências. Os tamanhos
das bases de dados da empresa crescem de forma contínua de gigabytes de dados para
terabytes ou até petabytes de dados.

Os utilizadores finais são agora mais exigentes do que nunca. Se a sua aplicação não
responder dentro de segundos, há uma maior probabilidade de o utilizador deixar
de utilizar o seu serviço ou produto.
Principais motores de negócio para adotar a análise de dados na cloud | 15

O dimensionamento não se aplica apenas aos consumidores das aplicações.


É igualmente importante para os cientistas, engenheiros e analistas de dados a fim
de analisar os dados de uma empresa. O dimensionamento de uma infraestrutura
é essencial, pois não pode esperar que os seus engenheiros de dados processem
grandes conjuntos de dados (de gigabytes a terabytes) e executem scripts para testar
os seus modelos de dados num única computador. Mesmo que se trate de uma única
instância de servidor de elevado desempenho, serão necessárias semanas ou dias para
concluir o teste, sem falar no facto de que vai causar estrangulamentos de desempenho
para os utilizadores finais que estão a utilizar a mesma base de dados.
Com um data warehouse moderno como o Azure Synapse Analytics dispõe de algumas
capacidades geridas para dimensionar, tal como uma camada dedicada de colocação
em cache. A colocação em cache irá permitir que os analistas, engenheiros e cientistas
efetuem consultas com maior rapidez.

Reduzir custos
Devido às exigências do dimensionamento, as empresas e os negócios precisam de
dispor de um mecanismo para expandir a sua infraestrutura de dados de uma forma
rentável e financeiramente viável. É demasiado dispendioso criar um data warehouse
on-premises. Seguem-se apenas algumas das considerações a nível dos custos:
• O tempo de espera para a entrega do servidor e os processos de aprovisionamento
interno associados
• Os custos das redes e outros custos da infraestrutura física, tais como
a refrigeração do hardware e o património de datacenter
• Custos dos serviços profissionais associados à configuração e manutenção
destes servidores
• Custos de licenciamento (se aplicável)
• A produtividade perdida das pessoas e equipas que não podem enviar os seus
produtos com maior rapidez
Com um data warehouse moderno, pode acionar novos servidores de elevado desempenho
com cartões gráficos de elevado desempenho on demand. E utilizando um fornecedor de
cloud como o Microsoft Azure, só terá de pagar pelo tempo de utilização destes servidores.
Poderá encerrá-los quando já não precisar deles. Não só pode desligá-los on-demand,
como caso se verifique que um determinado serviço não é adequado às suas necessidades,
pode eliminar esse recurso e simplesmente aprovisionar um serviço diferente.
O Azure também oferece um desconto para instâncias “reservadas” que se comprometa
a utilizar durante um determinado período de tempo. Estas instâncias são muito úteis
para as bases de dados, soluções de armazenamento e aplicações que precisam de estar
a funcionar 24 horas por dia, com o mínimo de tempo de inatividade.
16 | Introdução à análise de dados no Azure

Promover a inovação
Neste mercado extremamente competitivo, as empresas precisam de inovar constantemente,
caso contrário, uma outra empresa irá surgir e ocupar a quota do mercado. Mas é claro que
ninguém pode prever o futuro com 100% de rigor. Assim, as empresas precisam de ter um
mecanismo para explorar coisas novas em função dos seus conhecimentos.
Um bom exemplo disto é o outsourcing dos processos de negócio (BPO) e os setores de
telecomunicações (telco), onde existem petabytes de dados que podem ainda não ter
sido explorados. Com um data warehouse moderno do Microsoft Azure, os intervenientes
destes setores podem dispor da infraestrutura para explorar os dados. Graças ao Azure
Synapse Analytics, Power BI e Azure Machine Learning, podem explorar os seus dados
para impulsionar as decisões de negócio. Talvez possam criar um modelo de dados
que consegue detetar ações fraudulentas ou compreender melhor as preferências
e expectativas dos clientes para aumentar as classificações de satisfação. Com análises
avançadas, estas empresas podem chegar a decisões que são relevantes no presente
(e possivelmente no futuro) e não se restringem apenas a analisar dados históricos.
E se pretender criar um veículo autónomo? Irá precisar de um data warehouse robusto para
armazenar os seus conjuntos de dados e de uma enorme quantidade de processamento de
dados. Será necessário capturar enormes quantidades de dados, seja através de imagens ou
de vídeos que o automóvel capture continuamente, e obter uma resposta de forma quase
instantânea com base no seu conjunto de dados e nos seus algoritmos.
A utilização de um fornecedor de cloud como o Microsoft Azure iria permitir-lhe testar
e validar as suas ideias desde o início, sem um investimento maciço. Com vários serviços
Azure e ferramentas associadas como o GitHub e Visual Studio, pode rapidamente criar
um protótipo das suas ideias e explorar possibilidades. O que acontece se o produto ou
serviço em que você ou a sua equipa está a trabalhar acabar por não ganhar tração? Se
fizer isto on-premises, continuará a ter elevados custos de responsabilidade e operações,
uma vez que é o proprietário físico da infraestrutura, além de quaisquer custos de
licenciamento e serviços associados.

Por que precisa de um data warehouse moderno?


Um data warehouse é um repositório centralizado que agrega origens dados diferentes
(muitas vezes sem qualquer relação). A principal diferença entre um data warehouse
e uma base de dados é que os data warehouses destinam-se ao Online Analytical
Processing (OLAP) e as bases de dados, por outro lado, destinam-se ao Processamento
de Transações Online (OLTP). OLAP significa que os data warehouses são utilizados
principalmente para gerar análises, business intelligence e até modelos de machine
learning. OLTP significa que as bases de dados são utilizadas essencialmente
para transações. Estas transações são as operações diárias das aplicações,
que simultaneamente leem e escrevem dados nas bases de dados.
Por que precisa de um data warehouse moderno? | 17

Um data warehouse é essencial se pretender analisar os big data, uma vez que também
contém dados históricos (frequentemente chamados dados a frio). A maioria dos dados
que estão armazenados inclui informações legadas, como os dados armazenados há 5,
10 ou até mesmo 15 anos. Provavelmente não pretende que os seus utilizadores finais
façam consultas na mesma instância da base de dados que também contém esses dados
históricos, uma vez que isso pode afetar o seu desempenho à escala.
Aqui estão algumas das vantagens de ter um data warehouse moderno:
• Suporta qualquer origem de dados
• Altamente escalável e disponível
• Fornece insights a partir de dashboards analíticos em tempo real
• Suporta um ambiente de machine learning

A Microsoft oferece as seguintes ferramentas e serviços que, em conjunto, criam um


data warehouse moderno:

Figura 1.4: Data warehouse moderno utilizando o Azure Synapse Analytics

Existem muitos padrões e arquiteturas emergentes para data warehousing, mas os


mais populares são os que facilitam a separação de deveres e responsabilidades nas
diferentes fases do pipeline de dados (mais informações sobre este assunto na secção
Criar um pipeline de dados).
18 | Introdução à análise de dados no Azure

Para compreender o que se entende por um data warehouse moderno, primeiro tem
de compreender como se cria e gere um data warehouse tradicional. Resume-se a dois
conceitos principais:
• Computação: refere-se à capacidade de processar os dados e de lhes dar
sentido. Pode assumir a forma de uma consulta de base de dados para tornar
os resultados acessíveis a uma outra interface, como aplicações Web.
• Armazenamento: refere-se à capacidade de manter os dados para que
permaneçam acessíveis a qualquer altura no futuro.

Um data warehouse moderno separa a computação e o armazenamento de formas


rentáveis. Ao contrário do que acontece tradicionalmente com o SQL Server e o SQL
Server Integration Services (SSIS), o modelo de preços envolve tanto a capacidade de
armazenamento como a capacidade de computação para analisar dados. O Azure é o
primeiro fornecedor de cloud a oferecer um data warehouse que separa a computação
e o armazenamento.
Outra mudança no padrão é que o modelo Extract-Transform-Load (ETL) tradicional
de data warehousing passou agora a Extract-Load-Transform (ELT). No modelo ETL
tradicional, os analistas estão habituados a esperar que primeiro os dados sejam
transformados, dado que não têm acesso direto a todas as origens de dados. Num data
warehouse moderno, podem ser armazenadas grandes quantidades de dados num data
lake ou data warehouse e os analistas podem transformá-los em qualquer altura sem a
necessidade de esperar que os engenheiros de dados ou os administradores das bases
de dados sirvam os dados.
Claro que há mais fatores a ter em conta para modernizar o seu data warehouse, como
a extensibilidade, a recuperação após desastre e a disponibilidade. No entanto, por
enquanto, esta secção irá concentrar-se na computação.

Reunir os seus dados


Anteriormente, as bases de dados eram muitas vezes a única origem de dados para as
suas aplicações. Mas hoje em dia, temos centenas e milhares de diferentes origens de
dados. Os dados provenientes destas diferentes origens pertencem a diferentes tipos
de dados: alguns estruturados, outros não estruturados e outros semiestruturados.
Dados estruturados: a palavra “estruturado” sugere que existe um padrão que pode
ser facilmente interpretado. Normalmente, trata-se de um conjunto predefinido de
modelos e de um esquema. Um sistema de gestão de bases de dados relacionais
(RDBMS), como o Microsoft SQL Server, é um exemplo comum de uma solução de
armazenamento de dados estruturada, porque é fornecido com um esquema de
base de dados e colunas de tabela que definem os dados que está a armazenar.
Por que precisa de um data warehouse moderno? | 19

Aqui estão alguns exemplos de tipos de dados estruturados:


• Nomes de clientes
• Endereços
• Geolocalização
• Data e hora
• Números de telemóvel e telefone
• Números de cartão de crédito
• Nomes de produtos e Stock Keeping Units (SKUs)
• Informações gerais de transação, como “De” e “Até” com carimbos temporais
e valores de montante
Um bom exemplo de dados estruturados são as informações que os utilizadores fornecem
quando se inscrevem numa aplicação pela primeira vez. É-lhes apresentado um formulário
que devem preencher. Assim que uma pessoa clica no botão Submeter, envia os dados para
uma base de dados e insere-os numa tabela de utilizadores com colunas predefinidas: nomes,
endereços e outros detalhes. O utilizador poderá iniciar sessão na aplicação, uma vez que o
sistema pode agora procurar o registo existente para o utilizador registado na base de dados.
A partir daqui, o utilizador poderá aceder à aplicação e efetuar transações, como
a transferência de dinheiro e ativos. Com o tempo, os utilizadores irão produzir uma
série de transações que acabarão por tornar a base de dados maior. O esquema da
base de dados também irá expandir para suportar diferentes requisitos de negócio.

Uma vez que tenha dados suficientes, poderá explorá-los. É nesta altura que começa
a procurar padrões nos dados. Pode identificar transações fraudulentas e testar hipóteses
analisando os montantes de transações volumosas e repetidas do mesmo utilizador.

A sua exploração de dados é limitada porque só pode baseá-la num conjunto de dados
estruturado e com uma forma semântica. E se também pretender considerar outras
origens de dados que não estão estruturadas, como texto em forma livre? Um exemplo
é uma descrição da transação, a qual pode indicar a natureza ou o destinatário da
transação. A intenção não é ler manualmente cada descrição da transação e introduzi-la
na coluna correta de uma tabela de bases de dados. Provavelmente pretende apenas
extrair as informações relevantes e convertê-las num formato estruturado. É aqui que
entram os dados não estruturados.
Dados não estruturados: este tipo de dados corresponde mais ou menos ao resto dos
dados, ou seja, a tudo o que não sejam dados estruturados, o que se deve principalmente
ao facto de não estar limitado a qualquer tipo de armazenamento e dados.

Normalmente, os tipos de dados não estruturados não têm um modelo de dados predefinido
que possa encaixar diretamente numa base de dados. Os dados não estruturados podem ser
pesados em termos de texto e normalmente são lidos por linha ou separados por espaços.
20 | Introdução à análise de dados no Azure

Aqui estão alguns exemplos de origens de dados não estruturadas:


• Ficheiros de imagem
• Vídeos
• Mensagens e documentos de e-mail
• Ficheiros de registo
• Sensores e dispositivos IoT
• Bases de dados NoSQL como a MongoDB
• Redes sociais e o Microsoft Graph
Devido à sua natureza dinâmica, os ficheiros de imagem e os vídeos são classificados
como dados não estruturados. Embora seja possível considerar os seus metadados
como estruturados (tais como título, intérprete, nome de ficheiro, etc.), o conteúdo
em si não está estruturado. Com ferramentas modernas e a tecnologia de análise
de dados, agora pode examinar estes dados e dar-lhes sentido. O exemplo comum
é o reconhecimento facial nas imagens ou nos vídeos.
Todos os e-mails, documentos e ficheiros de registo têm metadados, mas na verdade
é no conteúdo desses ficheiros que reside o maior interesse. Geralmente, em e-mails,
documentos e ficheiros de registo, os dados são separados por linhas e as mensagens
não são estruturadas. O objetivo seria descrever o conteúdo sem ter de ler tudo
manualmente (podemos estar a falar de centenas ou mesmo milhões de ficheiros).
Um exemplo seria fazer uma análise de sentimentos do conteúdo para determinar
se a emoção prevalecente é alegria, tristeza ou raiva. No caso dos ficheiros de registo,
provavelmente pretende separar as mensagens de erro, os carimbos de data/hora
(datas) e as medições (traços) entre as mensagens.

Os dispositivos e sensores de IoT, de forma semelhante aos ficheiros de registo, são


utilizados para capturar medições e erros sobre um determinado item. A principal diferença
é que estes dispositivos geralmente funcionam num grande número de clusters (centenas a
milhares de dispositivos) e transmitem dados de forma contínua. Os dados gerados a partir
destes dispositivos são semiestruturados ou não estruturados, dado que se encontram em
formato JSON ou XML. As tecnologias modernas, como os serviços Azure IoT, já resolvem
estas complexidades com serviços como o Azure IoT Hub, que agrega todos estes dados
provenientes de vários sensores e os exporta continuamente para uma origem de dados.
Por vezes, pode classificar estes dados como semiestruturados, uma vez que estes vestígios
e registos são elementos que um sistema pode facilmente compreender.

As plataformas de redes sociais e o Microsoft Graph fornecem dados semiestruturados.


São classificados desta forma porque simplesmente consultar todos os tweets do
Twitter sobre um tópico não é suficiente. Os resultados não fazem muito sentido
até efetuar algumas análises. O foco principal é determinar padrões e anomalias. Por
exemplo, pode pretender identificar tendências sobre notícias e tópicos, mas também
remover dados irrelevantes, como tweets provenientes de contas falsas.
Criar um pipeline de dados | 21

Curiosamente, algumas aplicações de linha de negócio (LOB) fornecem dados estruturados


e não estruturados. Por exemplo, tanto o Microsoft Dynamics CRM como o Salesforce
facultam dados estruturados que podem ser facilmente interpretados e exportados para
as tabelas de bases de dados SQL, como dados de produtos, quantidades e montantes.
Contudo, também suportam dados não estruturados, tais como imagens, vídeos e notas
de texto. Tenha em atenção que, embora as notas de texto sejam consideradas um tipo
de dados de cadeia, ainda podem ser consideradas dados não estruturados porque foram
concebidas para serem texto livre. Não têm um formato adequado para seguimento, mas
ainda vale a pena explorá-las. Um cenário comum é os dados não estruturados serem
utilizados para entender por que motivo as vendas não tiveram sucesso.

Criar um pipeline de dados


Assim que tenha identificado as suas origens de dados, o passo seguinte é criar um
pipeline de dados (por vezes, também chamado de fluxo de dados). Em linhas gerais,
os passos envolvidos são os seguintes: ingestão, armazenamento, preparação, formação,
modelação, serviço e visualização dos dados.
Com esta abordagem, irá desenhar uma arquitetura altamente escalável que serve
todos os utilizadores do sistema: desde os utilizadores finais, engenheiros de dados
e cientistas que estão a realizar a exploração dos dados, passando pelos analistas que
interpretam os dados do negócio, até mesmo o CEO, se este pretender ver o que está
acontecer com o negócio em tempo real:

Figura 1.5: Pipeline de dados moderno


22 | Introdução à análise de dados no Azure

Ingestão de dados
Ingestão de dados significa transferir os dados (estruturados, semiestruturados ou não
estruturados) da origem para o seu armazém, data lake ou data warehouse.

Este processo pressupõe algo semelhante ao Azure Synapse Analytics utilizar


a integração de dados para transferir dados de várias origens, como a partir de bases
de dados on-premises e produtos SaaS para um data lake. Este passo permite-lhe gerir
os workflows de ETL e ELT sem necessidade de uma reconciliação manual.

Este não é um processo único. Idealmente, isto é um algo que programa ou define para
ser acionado de modo a que o seu data lake obtenha um instantâneo histórico de vez
em quando. Um exemplo disto é uma ligação das suas ferramentas de CRM, como
o Microsoft Dynamics CRM, ao Azure Data Lake através do Azure Synapse Analytics
com a integração de dados. Deste modo, os cientistas e os engenheiros de dados
podem explorar estes dados em alturas diferentes sem interromper a aplicação de CRM.

Armazenamento de dados
Assim que os dados sejam ingeridos a partir das várias origens de dados, são todos
armazenados num data lake. Os dados que residem no data lake continuarão a estar em
formato não processado e incluem formatos de dados estruturados e não estruturados.
Nesta altura, os dados não acrescentam muito valor para gerar insights do negócio.

Orquestração e monitorização do pipeline de dados


Num cenário moderno de data warehouse, é muito importante que as origens
e os serviços de dados transfiram os dados de origem para o destino de forma
eficiente. O Azure Synapse Analytics com integração de dados é um orquestrador
que permite que os serviços efetuem migrações ou transferências de dados. Não
executa efetivamente a transferência, mas sim indica a um serviço que a execute:
por exemplo, pode instruir um cluster do Hadoop para realizar uma consulta do Hive.
O Azure Synapse Analytics com integração de dados também permite criar alertas
e métricas para o notificar quando a orquestração do serviço estiver a funcionar.
Pode criar um alerta por e-mail para quando uma transferência de dados da origem
para o destino não foi bem-sucedida.

Partilha de dados
Num padrão moderno de data warehouse, a partilha de dados deve ser fluida e segura.
Muitas vezes, pode ser efetuada por File Transport Protocol (protocolo FTP), e-mails
ou APIs, só para citar alguns exemplos. Há uma grande sobrecarga de gestão se pretender
partilhar dados à escala. O Azure Data Share permite-lhe gerir e partilhar os seus big data
com outras entidades e organizações. O fornecedor de dados terá o controlo total do
acesso aos conjuntos de dados e às permissões que cada um pode efetuar. Deste modo,
é mais fácil para as empresas dependentes extrair insights e explorar cenários de IA.
Criar um pipeline de dados | 23

Preparação dos dados


Assim que os dados sejam ingeridos, o passo seguinte é a sua preparação. Esta é uma
fase em que os dados de diferentes origens são previamente processados para efeitos
de análise de dados. Um exemplo é consultar dados de uma API e inseri-los numa
tabela de bases de dados. O Azure Synapse Analytics com integração de dados permite-
lhe orquestrar esta preparação de dados. O Azure Synapse Analytics, através de uma
instância do Apache Spark alojada, também pode ajudar na preparação dos dados,
uma vez que pode executar clusters de forma simultânea para processar grandes
quantidades de dados em apenas uma questão de segundos ou minutos.

Transformação, previsão e melhoramento dos dados


Por vezes, a preparação dos dados requer alterações adicionais além de um simples
cenário de cópia e colagem. É aqui que entra a transformação dos dados. Existem
instâncias em que pretende aplicar a lógica personalizada nos dados não processados
primeiro (por exemplo, aplicando filtros), antes de decidir transferi-los para um data
warehouse. O Azure Synapse Analytics (através da integração de dados), Apache Spark
e SQL Analytics também podem ajudar neste cenário. Se os dados de um data lake não
forem corretamente transformados em insights relevantes, acabarão por se tornar
numa montanha de dados inúteis.
Além disso, pode melhorar os dados batch à escala invocando o Azure Machine
Learning, que faz previsões em tempo real sobre os dados. Esta pode ser uma
funcionalidade adicional do seu pipeline de dados no Azure Synapse Analytics.
Para obter mais informações sobre o Azure Machine Learning, consulte o Capítulo 3,
Processar e visualizar dados.

Serviço dos dados


Depois da preparação e treino dos dados, estará pronto para modelá-los e servi-los
aos consumidores. Nesta fase, basicamente realiza a modelação dos dados para que
os sistemas os entendam facilmente. Normalmente, isto implica realizar as consultas
complexas que gerou a partir da fase de preparação e formação dos dados, e a inserção
destes registos numa base de dados para que os dados sejam estruturados numa tabela
e esquema definidos.
Todos os dados analíticos da sua empresa são armazenados num data warehouse.
Pode dispor de centenas a milhares de utilizadores, relatórios e dashboards
simultâneos que são executados a partir de um único data warehouse.

Em geral, realiza as integrações de serviços e a modelação de dados com uma plataforma


de data warehouse como o Azure Synapse Analytics. A execução de consultas complexas
pode demorar horas ou dias. Mas com o poder da cloud, pode dimensionar o seu Azure
Synapse Analytics para efetuar estas consultas com mais rapidez, tornando dias em horas
e horas em minutos.
24 | Introdução à análise de dados no Azure

Visualização de dados
A visualização de dados é uma forma eficiente de analisar o desempenho através de
gráficos e diagramas. A isto chama-se business intelligence. Ferramentas como o Power
BI ajudam os analistas a aproveitar os dados ao máximo. Ao trabalhar com o Azure, não
está exclusivamente limitado ao Power BI, mas também pode utilizar outros serviços
de visualização, como o Tableau. A visualização de dados oferece uma representação
avançada e relevante dos seus dados que acrescenta valor de negócio para si e os seus
clientes. A equipa pode ver tendências, valores atípicos e padrões que ajudam a tomar
decisões orientadas por dados.
Diversos intervenientes da organização podem colaborar após analisarem os diferentes
parâmetros de desempenho. A sua empresa está a vender bem os produtos? Em que
regiões realiza a maior parte das suas vendas? Com dados avançados a apoiar as suas
suposições, os intervenientes do negócio, como os CEOs, podem tomar decisões
razoáveis orientadas por dados para minimizar os riscos. Que linhas de produtos
deve expandir? Onde deve expandir mais? Estas são algumas das perguntas comuns
que pode responder quando dispõe de uma análise de dados mais avançada.
Os analistas podem utilizar ferramentas de ambiente de trabalho ou de aplicações
Web para criar representações relevantes dos seus dados. Segue-se um exemplo de
uma vista do ambiente de trabalho do Power BI onde um utilizador pode efetuar uma
análise dos dados da sua empresa e visualizá-los em gráficos:

Figura 1.6: Dashboard do Power BI Desktop


Criar um pipeline de dados | 25

Assim que os relatórios sejam gerados podem ser exportados para uma área de trabalho
onde as pessoas podem colaborar para melhorar os relatórios. Aqui está uma vista de
exemplo do mesmo relatório numa aplicação móvel. Os utilizadores podem adicionar
comentários e anotações ao relatório, permitindo um ciclo de feedback mais rápido
para os analistas:

Figura 1.7: Dashboard do Power BI para dispositivo móvel

O Power BI permite-lhe criar os dashboards personalizados avançados mais adequados


às suas necessidades e marca. Relativamente às apresentações com um instantâneo
de um gráfico da semana ou do mês passado, este mecanismo permite-lhe atualizar
o mesmo relatório inúmeras vezes.
26 | Introdução à análise de dados no Azure

Aplicações mais inteligentes


O machine learning tem ajudado as empresas a criar aplicações e produtos como os
chatbots que executam tarefas específicas para os utilizadores finais sem necessidade
de intervenção humana. Alguns exemplos comuns são os assistentes de voz, como
a Cortana, que aprendem ativamente a contribuir para uma maior produtividade nas
nossas tarefas diárias.
Outros exemplos são os jogos online nos quais pode facilmente seguir o seu
desempenho relativamente a qualquer pessoa do mundo. Pode ver como se classifica
em relação a outros jogadores, em que áreas se destaca e como pode melhorar.
A quantidade de tarefas que pode executar com dados avançados é praticamente
ilimitada, mas para as executar, é necessário ter a abordagem e infraestrutura
corretas para processar com um elevado nível de dimensionamento.

Resumo
Este capítulo estabeleceu a importância da análise de dados. Também destacou várias
razões pelas quais o Microsoft Azure é a plataforma ideal para alcançar capacidades de
business intelligence na cloud. Abordou alguns conceitos fundamentais à volta de big
data, ML e DataOps. Também ficou a conhecer alguns dos motores do negócio para
adotar a análise de dados na cloud. Por fim, adquiriu uma visão de alto nível do que
é necessário para ter um data warehouse moderno.
No capítulo seguinte, verá como deve começar a criar um data warehouse moderno
com o Azure Synapse Analytics e as tecnologias relacionadas.
Introdução à área de
2
trabalho do Azure
Synapse Analytics
e ao Synapse Studio
No capítulo anterior, apresentámos o Azure e os tipos de plataformas, ferramentas
e recursos oferecidos pelo Azure para facilitar a criação de soluções de data warehouse.
Neste capítulo, vamos centrarmo-nos na nova experiência unificada na área de trabalho
do Azure Synapse Analytics e no Synapse Studio. Iremos abordar os seguintes tópicos:
• O Azure Synapse Analytics e porque precisamos desta solução
• Aprofundamento do Azure Synapse Analytics
• Introdução à área de trabalho do Azure Synapse Analytics e guia de início rápido
passo a passo
28 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

• Introdução ao Synapse Studio


• Duas formas de iniciar o Synapse Studio
• Aprovisionar um conjunto de SQL, ingerir dados e analisar dados no
conjunto de SQL
• Criar um conjunto do Apache Spark, ingerir dados e explorar os dados
utilizando o Spark
• Copiar dados de/para conjuntos de SQL e conjuntos do Spark
• Origens de dados associadas
• Analisar dados utilizando conjuntos de SQL sem servidor
• Integrar com pipelines

O que é o Azure Synapse Analytics?


O Azure Synapse Analytics é um serviço de análise ilimitado que alia o data
warehousing empresarial e a análise de big data a uma experiência unificada para
ingerir, preparar, gerir e servir dados com vista a atender às necessidades imediatas de
business intelligence e machine learning. Resumidamente: o Azure Synapse Analytics é
a evolução lógica do Azure SQL Data Warehouse. A Microsoft elevou o data warehouse
líder do setor a um novo nível de desempenho e capacidade.
Com o Azure Synapse Analytics, tem a liberdade de escolher entre recursos dedicados
ou sem servidor para explorar e analisar os seus dados à escala com base nos requisitos
do seu negócio. As empresas podem rentabilizar os seus dados com muito maior
rapidez, de forma produtiva e segura, reunindo insights de inúmeras origens de
dados, data warehouses e sistemas de análise de big data.
Com o Azure Synapse Analytics, profissionais de dados de todos os tipos podem
colaborar, gerir e analisar eficientemente os seus dados mais importantes, tudo
dentro do mesmo serviço. Desde a integração do Apache Spark ao potente e fidedigno
motor SQL, passando pela integração e gestão de dados sem código, o Azure Synapse
Analytics foi concebido para todos os profissionais de dados.
Além disso, ativar o BI e o machine learning através do Azure Synapse Analytics é um
instante. O Azure Synapse Analytics está profundamente integrado com o Power BI
e o Azure Machine Learning para ampliar fortemente a deteção de insights a partir de
todos os seus dados e permitir que os profissionais apliquem facilmente modelos de
machine learning a aplicações inteligentes sem qualquer movimento de dados. O tempo
de desenvolvimento para projetos de BI e machine learning é, assim, significativamente
reduzido. Com o Azure Synapse Analytics, pode aplicar de forma fluida funções de
intelligence a todos os seus dados mais importantes, quer se trate do Dynamics 365,
do Office 365 ou dos serviços Software como Serviço (SaaS) que suportam a Open Data
Initiative, e depois partilhar esses dados facilmente com apenas alguns cliques.
O que é o Azure Synapse Analytics? | 29

Na secção seguinte, iremos explicar porque precisamos do Azure Synapse Analytics e os


desafios empresariais que vem resolver.

Porque precisamos do Azure Synapse Analytics?


Um dos inúmeros desafios que as empresas enfrentam hoje em dia é a necessidade de
gerir dois tipos de sistemas de análise:
• Data warehouse, que fornece insights essenciais sobre o negócio
• Data lakes, que fornecem insights relevantes sobre clientes, produtos,
colaboradores e processos mediante várias metodologias de análise

Ambos estes sistemas de análise são essenciais para as empresas e funcionam de forma
independente. Daqui podem resultar decisões mal informadas. Simultaneamente, as
empresas precisam de libertar os insights de todos os seus dados para se manterem
competitivas e inovarem processos para obterem melhores resultados.
Os clientes que pretendem criar o seu próprio pipeline de dados de ponta a ponta
devem executar os seguintes passos:
1. Ingerir dados provenientes de várias origens de dados.
2. Carregar todas estas origens de dados num data lake para processamento adicionar.
3. Limpar os dados num conjunto de diferentes estruturas e tipos de dados.
4. Preparar, transformar e modelar os dados.
5. Servir os dados limpos a milhares de utilizadores utilizando ferramentas
e aplicações de BI.

Até agora, cada um destes passos exigia uma ferramenta diferente, e com a quantidade
de ferramentas, serviços e aplicações disponíveis, escolher a ferramenta certa pode ser
intimidante.
Existem muitos serviços que ingerem, carregam, preparam e servem os dados. Também
existem múltiplos serviços para a limpeza de dados, consoante a linguagem de eleição
do programador. Alguns programadores preferem utilizar o Spark e outros o SQL,
enquanto outros pretendem ambientes sem código para transformar os dados.
Mesmo depois de ter escolhido o conjunto certo de ferramentas, a curva de
aprendizagem para as dominar é acentuada, bem como as dificuldades logísticas
subjacentes à manutenção de pipeline de dados em diferentes plataformas e linguagem.
Tendo em conta esta série de problemas, a implementação e manutenção de uma
plataforma de análise na cloud pode ser uma tarefa difícil.
30 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

Desafios que o cliente enfrenta


Pode considerar que o maior desafio suscitado por um data warehouse eficiente
é aprender a criar o pipeline para trazer os dados ou otimizar o warehouse para
obter um melhor desempenho. Contudo, num estudo de clientes conduzido pela
Microsoft, concluiu-se que os maiores desafios para o cliente eram gerir as diferentes
capacidades, monitorizar centenas de pipelines que se estendem por vários motores de
computação, proteger os diferentes recursos (computação, armazenamento, artefactos)
e implementar código sem alterações significativas. Entre silos organizacionais,
de dados e de ferramentas, torna-se quase impossível implementar e manter uma
plataforma de análise na cloud.

Por exemplo, imagine que a sua empresa precisava de criar um único modelo de
segurança para proteger todos os seus serviços para cumprir as mais recentes
diretrizes de conformidade interna. Uma tarefa como esta pode, à primeira vista,
parecer simples, mas, na verdade, é bastante complexa. Precisa de identificar
rapidamente qual é esse “modelo de segurança única” e, posteriormente, descobrir qual
é o modelo de implementação de todos os seus serviços. Precisa de perceber como
implementar elevada disponibilidade e recuperação após desastre para cada um destes
serviços. E, por fim, preciso de ter em atenção todas as responsabilidades relacionadas
com a gestão do ciclo de vida, incluindo monitorizar estes serviços para assegurar
um bom desempenho. Reunir todos estes serviços não é de algum modo uma tarefa
pequena e, no passado, exigiu um planeamento complexo.

A solução: o Azure Synapse Analytics


O Azure Synapse Analytics resolve os problemas mencionados. Conforme é ilustrado na
Figura 2.1, o Azure Synapse Analytics permite aos clientes criar soluções de análise de ponta
a ponta e realizar a ingestão de dados, a exploração de dados, data warehousing, a análise
de big data e tarefas de machine learning a partir de um ambiente único e unificado:

Figura 2.1: Azure Synapse Analytics


A solução: o Azure Synapse Analytics | 31

Algumas das principais funcionalidades disponibilizadas pelo Azure Synapse Analytics


são indicadas na Tabela 2.1:

Tabela 2.1: Funcionalidades e benefícios do Azure Synapse Analytics

O Azure Synapse Analytics pode extrair e fornecer insights de todos os dados que
residem no seu data warehouse e nos seus sistemas de análise de big data a velocidades
de relâmpago. Permite que os profissionais de dados utilizem a familiar linguagem
SQL para consultar tanto bases de dados relacionais como não relacionais à escala
do petabyte. As funcionalidades avançadas como a gestão inteligente de workloads,
o isolamento do workload e a simultaneidade ilimitada ajudam a otimizar o desempenho
de todas as consultas para os workloads críticos.
O Azure Synapse Analytics tira o máximo partido do Azure SQL Data Warehouse
e moderniza-o facultando mais funcionalidades para os programadores de SQL,
como a adição de consultas com conjuntos de SQL sem servidor, a adição do suporte de
machine learning, a incorporação nativa do Apache Spark, o fornecimento de blocos de
notas colaborativos e disponibilização da integração de dados num único serviço. Suporta
diferentes linguagens (como C#, SQL, Scala e Python), tudo através de diversos motores.
32 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

Com o Azure Synapse Analytics, os clientes podem executar projetos de business


intelligence e machine learning com facilidade. O Azure Synapse Analytics está
profundamente integrado com o Power BI e o Azure Machine Learning para expandir
fortemente a deteção de insights a partir de todos os seus dados e aplicar modelos
de machine learning em todas as suas aplicações inteligentes. O utilizador pode
reduzir o tempo de desenvolvimento dos projetos de BI e machine learning de forma
significativa com um serviço de análise ilimitado que lhe permite aplicar de forma
fluida funções de intelligence em todos os seus dados mais importantes, desde
o Dynamics 365 e Office 365 às implementações de SaaS que suportam a Open Data
Initiative, e depois partilhar esses dados facilmente com apenas alguns cliques.
Tudo isto é proporcionado numa única experiência que inclui editores de consultas
e blocos de notas para partilha e colaboração de dados, assim como ativos e código
para programadores de SQL e Spark.
Em suma: o Azure Synapse Analytics faz tudo por si.

Aprofundamento do Azure Synapse Analytics


Agora que já percebeu porque é que o Azure Synapse Analytics foi criado, vamos
analisar com maior profundidade os serviços que oferece.
O Azure Synapse Analytics é um serviço de análise de dados totalmente gerido
e integrado que combina o data warehousing, a integração de dados e o processamento
de big data com tempo acelerado para insights num único serviço.
A vantagem de ter um único serviço de dados integrado é que, para as empresas,
acelera a entrega de BI, IA, machine learning, Internet of Things e aplicações
inteligentes.
A Figura 2.2 ilustra como um pipeline de dados moderno pode ser criado com o Azure
Synapse Analytics. Neste exemplo, o processo de ingestão começa por uma origem do
Armazenamento de Blobs até ao Azure Data Lake Storage Gen2 na área de trabalho
do Azure Synapse Analytics. Utilizando um conjunto do Spark, pode ler a partir de
várias origens de dados através do Azure Data Lake Storage Gen2 e da Azure SQL
Database e realizar quaisquer transformações e limpeza de dados necessárias. Por fim,
os resultados organizados são escritos no conjunto de SQL, que pode ser utilizado
para servir ferramentas e aplicações de BI:
Apresentação da área de trabalho do Azure Synapse Analytics | 33

Figura 2.2: Pipeline de dados moderno utilizando o Azure Synapse Analytics

Para apreciar totalmente as vantagens do Azure Synapse Analytics, vamos levá-lo numa
visita à área de trabalho do Azure Synapse Analytics e apresentaremos os serviços
principais que se encontram dentro do Synapse Studio.

Apresentação da área de trabalho do Azure Synapse Analytics


No centro do Azure Synapse Analytics está a sua área de trabalho. Uma área de trabalho
é o recurso de nível superior e inclui a sua solução de análise no data warehouse. A área
de trabalho do Azure Synapse Analytics pode ser utilizada num ambiente colaborativo
e suporta o processamento tanto de dados relacionais como de big data. No fundo,
a área de trabalho do Azure Synapse Analytics é o combustível que inicia toda a sua
experiência do Azure Synapse Analytics.
Na secção seguinte, iremos fornecer-lhe um guia de início rápido sobre como
aprovisionar a sua primeira área de trabalho do Azure Synapse Analytics. Acompanhe-
nos no processo.

Conta Azure gratuita


Se pretender experimentar alguma das técnicas ilustradas neste livro, basta criar a sua
conta Azure gratuita e começar.
34 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

Guia de início rápido


1. Num browser, inicie sessão no portal do Azure.
2. Na caixa de pesquisa, escreva synapse. Em seguida, a partir dos resultados da
pesquisa, selecione Azure Synapse Analytics sob Serviços:

Figura 2.3: Navegar para o Azure Synapse Analytics através do portal do Azure

Clique em Adicionar para criar uma nova área de trabalho do Azure Synapse
Analytics, conforme ilustrado na Figura 2.4:

Figura 2.4: Criar uma nova área de trabalho do Azure Synapse Analytics
Apresentação da área de trabalho do Azure Synapse Analytics | 35

3. No separador Noções Básicas tab, crie um novo grupo de recursos e indique um


nome exclusivo para a área de trabalho, conforme ilustrado na Figura 2.5. No nosso
exemplo, iremos chamar ao grupo de recursos my-synapse-rg e à área de trabalho
mysynws001. Também escolhemos E.U.A. Leste como a nossa região:

Nota
Se vir uma mensagem que indica O fornecedor de recursos do Synapse tem de ser
registado nesta subscrição sob Subscrição na página Criar área de trabalho do
Synapse, basta clicar na ligação para se registar conforme instruído:

Figura 2.5: Criar uma área de trabalho do Synapse


36 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

4. Em seguida, necessita de uma conta Azure Data Lake Storage Gen2


(mydatalakestorageg2) para criar uma área de trabalho do Azure Synapse Analytics.
Neste guia de início rápido, iremos criar uma nova conta mydatalakestorageg2,
conforme é ilustrado na Figura 2.6:

Figura 2.6: Criar uma nova conta Azure Data Lake Storage Gen2

5. Para o Nome do sistema de ficheiros, clique em Criar novo e dê-lha um nome


conforme ilustrado na Figura 2.7. No nosso exemplo, vamos chamar-lhe users:

Figura 2.7: Indicar um nome de sistema de ficheiros


Apresentação da área de trabalho do Azure Synapse Analytics | 37

6. O formulário preenchido deve assemelhar-se à Figura 2.8. Certifique-se de que


marca a caixa de verificação Atribuir a mim próprio a função de Contribuidor do
Storage Blob na conta Data Lake Storage Gen2. Clique em Seguinte: Segurança >
para continuar:

Figura 2.8: Criar área de trabalho do Synapse – Separador Noções Básicas


38 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

7. No separador Segurança, pode indicar opcionalmente credenciais que podem


ser utilizadas para o acesso do administrador aos conjuntos de SQL da área de
trabalho. Se não indicar uma palavra-passe, será gerada uma automaticamente.
Pode alterá-la mais tarde. Por agora, vamos aceitar a palavra-passe predefinida
e clicar em Seguinte: Redes >:

Figura 2.9: Criar área de trabalho do Synapse – Separador Segurança


Apresentação da área de trabalho do Azure Synapse Analytics | 39

8. No separador Redes, aceite a predefinição e clique em Rever + criar:

Figura 2.10: Criar área de trabalho do Synapse – Separador Redes


40 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

9. No separador Resumo, faça uma revisão final das suas configurações, em seguida,
e clique em Criar:

Figura 2.11: O separador Resumo


Apresentação do Synapse Studio | 41

Em questão de minutos, a sua nova área de trabalho do Azure Synapse Analytics


estará pronta.

Nesta secção, ensinámos-lhe a dar os primeiros passos com o Azure Synapse Analytics
ao criar a sua área de trabalho do Azure Synapse Analytics. Em seguida, prosseguimos
com a nossa apresentação visitando o Synapse Studio.

Apresentação do Synapse Studio


O Synapse Studio dispõe de uma interface baseada na Web de utilização fácil que fornece
uma área de trabalho integrada e uma experiência de desenvolvimento. Isto permite
que os engenheiros de dados criam soluções de análise de ponta a ponta (para ingerir,
explorar, preparar, orquestrar e visualizar) realizando todas as operações necessárias
num único ambiente. Além disso, os engenheiros de dados podem escrever e depurar
código no SQL ou Spark. O Synapse Studio também se integra com os processos CI/CD
da empresa. O Synapse Studio é um ambiente ideal para os engenheiros de dados e data
scientists partilharem e colaborarem nas suas soluções de análise.
Para continuar a nossa apresentação, utilizaremos a área de trabalho do Azure Synapse
Analytics que criámos na secção anterior para iniciar o Synapse Studio.

Iniciar o Synapse Studio


Com a área de trabalho do Azure Synapse Analytics criada na secção anterior, estamos
agora prontos para explorá-lo ao máximo no Synapse Studio. Pode iniciar o Synapse
Studio de duas formas:

Método 1: Iniciar o Synapse Studio através do portal do Azure


1. No portal do Azure, aceda ao grupo de recursos que contém a área de trabalho do
Azure Synapse Analytics. No nosso exemplo, o grupo de recursos é my-synapse-rg
e a área de trabalho do Azure Synapse Analytics é mysynws001.
2. Clique na área de trabalho do Azure Synapse Analytics conforme ilustrado:

Figura 2.12: O grupo de recursos my-synapse-rg


42 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

3. Na área de trabalho do Azure Synapse Analytics, clique em Abrir para iniciar


o Synapse Studio:

Figura 2.13: Iniciar o Synapse Studio

Neste ponto, será iniciado o Synapse Studio (consulte a Figura 2.13).


Método 2: Iniciar o Synapse Studio através do respetivo URL
Também pode iniciar o Synapse Studio através de https://web.azuresynapse.net/ e, em
seguida, iniciar sessão na sua área de trabalho do Azure Synapse Analytics, conforme
ilustrado mostrado na Figura 2.14:

Figura 2.14: Selecionar a área de trabalho do Azure Synapse Analytics para continuar

A home page do Synapse Studio é ilustrada na Figura 2.15:

Figura 2.15: Home page do Synapse Studio


Apresentação do Synapse Studio | 43

Nas secções seguintes, vamos mostrar-lhe como é fácil aprovisionar um conjunto


de SQL dedicado, ingerir dados e começar a explorar os dados no conjunto de SQL.

Aprovisionar um conjunto de SQL dedicado


Nesta secção, vamos mostrar-lhe como pode aprovisionar um conjunto de SQL
dedicado na área de trabalho do Azure Synapse Analytics recentemente criada
através do Synapse Studio:
1. No Synapse Studio, selecione o hub Gerir no painel esquerdo, Conjuntos de SQL
e, em seguida, clique em + Novo:

Figura 2.16: Criar um novo conjunto de SQL


44 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

2. Introduza os detalhes do conjunto de SQL conforme ilustrado. Em seguida, clique


em Rever + criar:

Figura 2.17: Criar conjunto de SQL dedicado – Separador Noções Básicas

3. No separador Rever + criar, clique em Criar.


Em questão de minutos, o novo conjunto de SQL dedicado estará pronto a ser
usado. No nosso exemplo, o conjunto de SQL dedicado está associado a uma base
de dados do conjunto de SQL que também é chamada sqlpool001.

Sugestão
Enquanto permanecer ativo, um conjunto de SQL irá consumir recursos faturáveis.
Para minimizar os custos, pode fazer uma pausa no conjunto quando não o estiver
a utilizar.

Em seguida, vamos ingerir os dados do NYC Taxi no conjunto de SQL dedicado


e explorar as suas capacidades.
Apresentação do Synapse Studio | 45

4. No Synapse Studio, selecione o hub Desenvolver no painel esquerdo e, em seguida,


+ e Script SQL:

Figura 2.18: Desenvolver um novo script SQL

5. Estabeleça ligação a sqlpool001 conforme ilustrado:

Figura 2.19: Ligar a sqlpool001


46 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

6. No painel de scripts SQL, introduza o nome completo do script SQL (conforme


mostrado na Figura 2.20) e, em seguida, clique em Executar:

Figura 2.20: Executar o script SQL

O seguinte script SQL cria uma tabela denominada dbo.TaxiTrip no nosso conjunto
de SQL dedicado e ingere mais de 2,8 milhões de linhas dos dados de NYC Taxi para
a tabela dbo.TaxiTrip:
CREATE TABLE [dbo].[TaxiTrip]
(
   [DateID] int NOT NULL,
   [MedallionID] int NOT NULL,
   [HackneyLicenseID] int NOT NULL,
   [PickupTimeID] int NOT NULL,
   [DropoffTimeID] int NOT NULL,
   [PickupGeographyID] int NULL,
   [DropoffGeographyID] int NULL,
[PickupLatitude] float NULL,
[PickupLongitude] float NULL,
   [PickupLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DropoffLatitude] float NULL,
[DropoffLongitude] float NULL,
   [DropoffLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
   [PassengerCount] int NULL,
Apresentação do Synapse Studio | 47

   [TripDurationSeconds] int NULL,


[TripDistanceMiles] float NULL,
   [PaymentType] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
   [FareAmount] money NULL,
   [SurchargeAmount] money NULL,
   [TaxAmount] money NULL,
   [TipAmount] money NULL,
   [TollsAmount] money NULL,
   [TotalAmount] money NULL
)
WITH
(
   DISTRIBUTION = ROUND_ROBIN,
   CLUSTERED COLUMNSTORE INDEX
);

COPY INTO [dbo].[TaxiTrip]


FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013/
QID6392_20171107_05910_0.txt.gz'
WITH
(
   FILE_TYPE = 'CSV',
   FIELDTERMINATOR = '|',
   FIELDQUOTE = '',
   ROWTERMINATOR='0X0A',
   COMPRESSION = 'GZIP'
)
OPTION (LABEL = 'COPY: Load taxi dataset');
Neste script SQL, utilizamos a instrução flexível COPY para carregar dados em massa
a partir uma localização de origem do Azure Blob Storage para o conjunto de SQL
dedicado.
Agora que temos os dados ingeridos na conjunto de SQL dedicado, vamos explorá-los.
48 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

Explorar dados no conjunto de SQL dedicado


Siga os passos abaixo para explorar os dados no conjunto de SQL dedicado:
1. No Synapse Studio, selecione o hub Dados no painel esquerdo.
2. Selecione sqlpool001 (SQL) e, em seguida, expanda Tabelas.
3. Clique com o botão direito do rato na tabela dbo.TaxiTrip.
4. Selecione Novo script SQL | Selecionar as 100 primeiras linhas:

Figura 2.21: Gerar um novo script SQL

5. Verá a saída ilustrada na Figura 2.22:

Figura 2.22: Resultado da consulta


Apresentação do Synapse Studio | 49

6. Tente substituir a consulta pelo seguinte e executá-la. Esta consulta mostra


como o número de passageiros está relacionado com a distância total da viagem
e a distância média da viagem:
SELECT PassengerCount,
   SUM(TripDistanceMiles) as TotalTripDistance,
   AVG(TripDistanceMiles) as AverageTripDistance
FROM dbo.TaxiTrip
WHERE PassengerCount > 0 AND TripDistanceMiles > 0
GROUP BY PassengerCount
ORDER BY PassengerCount

Figura 2.23: Resultado da consulta


50 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

7. Pode alterar rapidamente a vista para Gráfico para ver os resultados como um
gráfico de linhas:

Figura 2.24: Visualização do gráfico de linhas

Agora que lhe mostrámos como é fácil aprovisionar um conjunto de SQL dedicado,
ingerir os dados e explorá-los, vamos voltar a nossa atenção para outra capacidade
essencial do Azure Synapse Analytics: o conjunto do Apache Spark.
Nas secções seguintes, vamos mostrar-lhe como criar um conjunto do Apache Spark
no Azure Synapse Analytics, carregar os dados de NYC Taxi na base de dados do Spark
e analisar esses mesmos dados utilizando o Spark e os blocos de notas.

Criar um conjunto do Apache Spark


Em seguida, iremos criar um conjunto do Apache Spark sem servidor:
1. No Synapse Studio, selecione o hub Gerir no painel esquerdo e, em seguida, clique
em Conjuntos do Apache Spark em Conjuntos de análise e clique em + Novo:
Apresentação do Synapse Studio | 51

Figura 2.25: Criar um novo conjunto do Apache Spark

2. Introduza os detalhes do Conjunto do Apache Spark conforme ilustrado.


Em seguida, clique em Rever + criar:

Figura 2.26: Criar conjunto do Apache Spark - Separador Básico


52 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

3. Sob o separador Rever + criar, clique em Criar.

Em questão de minutos, o seu novo conjunto do Apache Spark estará pronto.


Vamos analisar as origens de dados associadas a seguir.
Origens de dados associadas
1. No Synapse Studio, selecione o hub Dados no painel esquerdo e, em seguida,
clique em + e Procurar na galeria:

Figura 2.27: A opção “Procurar na galeria”

2. Selecione NYC Taxi & Limousine Commission – yellow taxi trip records e clique
em Continuar:

Figura 2.28: Selecionar um conjunto de dados da galeria


Apresentação do Synapse Studio | 53

3. Clique em Adicionar conjunto de dados:

Figura 2.29: Adicionar um conjunto de dados

4. No hub Dados, em Associados, clique com o botão direito do rato em nyc_tlc_


yellow e selecione Novo bloco de notas e, em seguida, Carregar para o DataFrame:

Figura 2.30: Criar um novo bloco de notas


54 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

5. É criado um novo bloco de notas com o código seguinte gerado automaticamente.


Clique em Executar tudo:

Figura 2.31: Executar o bloco de notas

Experimente à vontade associando outros conjuntos de dados e modificando o código


para obter resultados diferentes. Na secção seguinte, aprenderá a ingerir dados de um
conjunto de SQL e a colocá-los numa base de dados do Spark.

Ingerir dados de um conjunto de SQL e colocá-los numa base de dados do Spark


No início deste capítulo, carregámos os dados de NYC Taxi para o conjunto de SQL
chamado sqlpool001. Vamos utilizá-lo para demonstrar como podemos ingerir dados
do conjunto de SQL e colocá-los na nossa base de dados do Spark chamada sparknyc:

1. No Synapse Studio, selecione o hub Desenvolver no painel esquerdo e, em seguida,


+ e Bloco de Notas:

Figura 2.32: Criar um novo bloco de notas


Apresentação do Synapse Studio | 55

2. Clique em Adicionar código:

Figura 2.33: Adicionar código na célula do bloco de notas

3. Introduza o código seguinte na célula de código do novo bloco de notas. Em seguida,


clique no botão Executar:
%%spark
spark.sql(“CREATE DATABASE IF NOT EXISTS sparknyc”)
val df = spark.read.sqlanalytics(“sqlpool001.dbo.TaxiTrip”)
df.write.mode(“overwrite”).saveAsTable(“sparknyc.taxitrip”)

Figura 2.34: Executar o código do Spark (Scala) para ingerir os dados do conjunto de SQL
e colocá los na base de dados do Spark

Nota
A linguagem padrão para o bloco de notas é PySpark (Python). Ao utilizar
o comando mágico %%spark na linha 1 do código, conseguimos rapidamente
mudar a linguagem desta célula para Spark (Scala).
56 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

4. Se aceder ao hub Dados e atualizar as bases de dados, verá a nova base de dados
sparknyc (Spark) recentemente criada:

Figura 2.35: A base de dados do Spark recentemente criada

Agora que ingerimos com êxito os dados do conjunto de SQL e os colocámos na nossa
tabela do Spark, veremos como analisar os dados utilizando o Spark e o bloco de notas
na secção seguinte.
Analisar dados utilizando o Spark e o blocode notas
Agora que ingerimos dados e os colocámos na nossa nova base de dados do Spark sparknyc,
vamos utilizar o Spark e o bloco de notas para efetuar algumas análises de dados:
1. No Synapse Studio, selecione o hub Desenvolver no painel esquerdo e, em seguida,
+ e Bloco de Notas.
2. Agora, vamos efetuar a mesma análise no Spark como fizemos no nosso exemplo
anterior do conjunto de SQL. Guardaremos os resultados para uma nova tabela
do Spark passengerstats. Introduza o código seguinte na célula de código do novo
bloco de notas. Em seguida, clique no botão Executar para executar o código na
linguagem predefinida do bloco de notas de PySpark (Python):
df = spark.sql("""SELECT PassengerCount,
        SUM(TripDistanceMiles) as TotalTripDistance,
        AVG(TripDistanceMiles) as AverageTripDistance
   FROM sparknyc.taxitrip
   WHERE PassengerCount > 0 AND TripDistanceMiles > 0
   GROUP BY PassengerCount
   ORDER BY PassengerCount""")

display(df)
df.write.saveAsTable(“sparknyc.passengerstats”)
Apresentação do Synapse Studio | 57

Figura 2.36: Resultados do código

3. À semelhança do nosso exemplo de conjunto de SQL, podemos rapidamente mudar


a vista para Gráfico para visualizar os resultados:

Figura 2.37: Visualização do gráfico de linhas

Anteriormente, mostrámos-lhe como ingerir dados de um conjunto de SQL e colocá-


los numa tabela do Spark. Agora, para concluir o círculo, vamos mostrar-lhe como pode
ingerir dados de uma tabela do Spark e colocá-los de volta num conjunto de SQL.
58 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

Ingerir dados de uma tabela do Spark e colocá-los numa tabela do conjunto de SQL
Para concluir a nossa introdução aos conjuntos de SQL e ao Spark, iremos agora
demonstrar como carregar dados a partir da tabela do Spark passengerstats para uma
tabela do conjunto de SQL chamada sqlpool001.dbo.PassengerStats:
1. No Synapse Studio, selecione o hub Desenvolver no painel esquerdo e, em seguida,
clique em + e Bloco de Notas.
2. Adicione o código seguinte numa célula de código do novo bloco de notas:
%%spark
val df = spark.sql(“SELECT * FROM sparknyc.passengerstats”)
df.write.sqlanalytics(“sqlpool001.dbo.PassengerStats”,Constants.INTERNAL)

Figura 2.38: Adicionar código numa célula de código do bloco de notas

Nota
A linguagem padrão para o bloco de notas é PySpark (Python). Ao utilizar
o comando mágico %%spark na linha 1 do código, conseguimos rapidamente
mudar a linguagem desta célula para Spark (Scala).
Apresentação do Synapse Studio | 59

3. E deste modo, a nova tabela dbo.PassengerStats é criada no conjunto de


SQL juntamente com os dados da tabela do Spark:

Figura 2.39: Nova tabela criada no conjunto de SQL

Agora que ingerimos com êxito os dados da nossa tabela do Spark e os colocámos numa
tabela do conjunto de SQL, vamos analisar como analisar dados utilizando conjuntos de
SQL sem servidor.
Analisar dados utilizando conjuntos de SQL sem servidor
Outra potente capacidade do Azure Synapse Analytics é a capacidade de analisar
dados com conjuntos de SQL sem servidor. Os conjuntos de SQL sem servidor
permitem executar consultas SQL sem aprovisionar os recursos. Isto facilita
a exploração e análise de dados no Azure Data Lake Storage Gen2 sem necessidade
de qualquer configuração ou manutenção da infraestrutura.
60 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

Iremos agora demonstrar como utilizar conjuntos de SQL sem servidor para analisar
dados no Azure Blob Storage:
1. No Synapse Studio, selecione o hub Dados no painel esquerdo.
2. Em Ligado, clique com o botão direito do rato em nyc_tlc_yellow | Novo script
SQL | Selecionar as 100 primeiras linhas:

Figura 2.40: Utilizar o SQL sem servidor para analisar dados no Azure Blob Storage

3. Clique em Executar para ver os resultados.

A partir desta demonstração, pode ver que o conjunto de SQL sem servidor permite
executar consultas de forma instantânea sem ter de aprovisionar quaisquer recursos.
Em seguida, vamos analisar como criar pipelines de dados e efetuar transformações
de dados sem código.

Integrar com pipelines


O hub Integrar permite-lhe criar pipelines de dados e efetuar transformações de dados
sem código. Uma atividade define as ações a executar nos dados, tais como copiar
dados, executar um bloco de notas ou executar um script SQL. Um pipeline é um
agrupamento lógico de atividades que efetuam uma tarefa em conjunto. Nesta secção,
vamos demonstrar como integrar pipelines e atividades utilizando o Synapse Studio:
Apresentação do Synapse Studio | 61

1. No Synapse Studio, selecione o hub Integrar no painel esquerdo.


2. Clique em + e Pipeline para criar um novo pipeline:

Figura 2.41: Criar um novo pipeline

3. Aceda ao hub Desenvolver e arraste um bloco de notas existente para o pipeline:

Figura 2.42: Arrastar um bloco de notas existente para o pipeline


62 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

4. Clique em Adicionar acionador e Novo/Editar:

Figura 2.43: Adicionar um acionador

5. Em Escolher acionador..., selecione Novo:

Figura 2.44: Escolher um acionador


Apresentação do Synapse Studio | 63

6. Configure o acionador conforme ilustrado e, em seguida, clique em OK:

Figura 2.45: Configurar o acionador


64 | Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse Studio

7. Consolide as alterações e ative o acionador clicando em Publicar Tudo.


8. Para executar o pipeline imediatamente, basta aceder a Adicionar acionador
e Acionar agora:

Figura 2.46: Escolher a opção “Acionar agora”

Como pode ver, pode criar um pipeline no Azure Synapse Analytics com grande
facilidade e efetuar poderosas transformações de dados sem escrever uma única
linha de código.

O hub Monitorizar
A última funcionalidade que iremos analisar é o hub Monitorizar. É aqui que podemos
monitorizar as tarefas atualmente em execução. A melhor forma de compreender como
funciona é vê-lo em ação:
1. Execute o pipeline que criámos na secção anterior utilizando Acionar agora.
2. No Synapse Studio, selecione o hub Monitorizar no painel esquerdo e, em seguida,
clique em Execuções de pipelines:

Figura 2.47: Hub Monitorizar

Na secção Execuções de pipelines, pode monitorizar o progresso da execução do


pipeline. Além disso, se obtiver um erro ao executar o pipeline, pode utilizar hub
Monitorizar para resolver o problema.
Resumo | 65

Além da monitorização de pipelines, também pode monitorizar os acionadores,


os runtimes de integração, as aplicações do Apache Spark, os pedidos de SQL
e a depuração do fluxo de dados.
Esperamos que tenha gostado da nossa visita introdutória à área de trabalho do Azure
Synapse Analytics e do Synapse Studio. Antes de concluirmos este capítulo, gostaríamos
de salientar algumas das funcionalidades avançadas do Azure Synapse Analytics que
pode explorar por conta própria:
• Otimização utilizando vistas materializadas e a colocação em cache de conjuntos
de resultados
• Importância e isolamento do workload
• Segurança ao nível da linha
• Máscara de dados dinâmicos
• Integração com o AutoML
• SQL Predict
• Integração com CI/CD

Resumo
O Azure Synapse Analytics é uma evolução inovadora do Azure SQL Data Warehouse.
Esta solução tira o máximo partido do Azure SQL Data Warehouse e moderniza-o
facultando mais funcionalidades para os programadores de SQL, como a adição
de consultas com conjuntos de SQL sem servidor, o suporte de machine learning,
a incorporação nativa do Spark, os blocos de notas colaborativos e a integração
de dados, tudo num único serviço.
Conforme aprendeu neste capítulo, os engenheiros de dados podem aprovisionar uma
área de trabalho do Azure Synapse Analytics em questão de minutos e começar a criar
as suas soluções de análise de ponta a ponta utilizando uma abordagem unificada,
simplificada e racionalizada dentro do Synapse Studio. Este notável e inovador
ambiente tudo-em-um é um sonho tornado realidade para muitos profissionais
de dados.
No capítulo seguinte, irá analisar o Power BI e o Azure Machine Learning.
Posteriormente, veremos casos de utilização reais de como todas estas tecnologias
se integram para fornecer as soluções completas de data warehouse de ponta a ponta
que os decisores empresariais podem utilizar para extrair insights relevantes partir
de dados em tempo real.
Processar
3
e visualizar dados
Nos capítulos anteriores, ficou a conhecer o Azure Synapse Analytics e o Synapse
Studio. O Azure Synapse Analytics oferece muitas funcionalidades que são flexíveis e
extremamente dimensionáveis. Algumas das funcionalidades de extensibilidade do Azure
Synapse Analytics são a capacidade de utilizar a abordagem moderna do data warehouse
para servir relatórios relevantes e uma origem de dados para o machine learning.
Existem muitas formas de processar e visualizar dados utilizando o Azure e o conjunto
mais amplo de ferramentas disponibilizadas pela Microsoft. Este livro centra-se na
utilização do Power BI como um ferramenta para criar relatórios e dashboards. O Power
BI oferece um amplo leque de produtos e serviços. Este capítulo irá analisar a utilização
do Power BI Desktop no Windows para criar dashboards relevantes, bem como utilizar
áreas de trabalho do Power BI para alojar e partilhar relatórios publicados.
Este livro também lhe dará uma introdução ao ecossistema da inteligência artificial e do
machine learning dentro do Azure e da Microsoft. Iremos abordar uma plataforma específica
de machine learning nas secções posteriores utilizando o Azure Machine Learning.

Estas tecnologias funcionam perfeitamente com o Azure Synapse Analytics como uma
abordagem predefinida para visualizar e obter insights de um data warehouse unificado.
68 | Processar e visualizar dados

Power BI
O Power BI é um conjunto de ferramentas que permite aos utilizadores visualizar dados
e partilhar insights entre equipas e organizações, ou incorporar análises de dashboard
nos seus sites ou aplicações. Suporta diferentes origens de dados (tipos de dados
estruturados e não estruturados) e ajuda os analistas e utilizadores finais a criarem
dashboards dinâmicos e relatórios sobre dados de negócio on-demand. Um exemplo
disto seria visualizar as vendas da empresa correspondentes aos últimos meses
e determinar a cidade que mais artigos vendeu.
O que torna o Power BI diferente do software da folha de cálculo, como o Microsoft
Excel, é que foi concebido para ser uma interface de utilizador alojada, muitas vezes um
dashboard dinâmico, onde os utilizadores não precisam de armazenar frequentemente
um ficheiro na sua máquina local e abri-lo. Com o Power BI, pode tirar partido do
poder da cloud para explorar dados complexos e apresentá-los através de gráficos
ou diagramas avançados, permitindo que o servidor execute todos os cálculos em
vez do seu próprio computador. Imagine um cenário em que o seu tamanho de dados
aumenta de 500 megabytes para vários gigabytes. A maioria das máquinas de utilização
genérica, como os computadores pessoais com uma quantidade limitada de memória,
iriam debater-se para carregar um ficheiro do Excel dessa dimensão; no entanto, com
o Power BI, é como abrir uma página Web, uma vez que é um serviço alojado:

Figura 3.1: Arquitetura do Power BI

Conforme pode ver na Figura 3.1, o Power BI é constituído por diferentes componentes
que podem desempenhar diferentes funções:

• Power BI Desktop: trata-se de uma aplicação baseada no ambiente de trabalho


do Windows, sendo frequentemente denominada uma ferramenta de criação,
onde essencialmente se concebem e publicam relatórios no serviço.
• Serviço Power BI: esta é uma plataforma gerida que permite implementar os
seus relatórios na Web para que fiquem acessíveis para a sua organização. É uma
aplicação de Software como Serviço (SaaS) e evoluiu de Power BI para Office 365
para simplesmente Power BI.
Power BI | 69

• Power BI Mobile Apps: estas são aplicações móveis nativas que podem aceder
a relatórios a partir de uma área de trabalho que está alojada no Power BI.
Estão disponíveis na Apple iOS App Store e na Google Play Store.
• Power BI Gateways: um gateway é um mecanismo para sincronizar dados externos
no Power BI. Para os cenários empresariais com armazenamento on-premises, um
Power BI Gateway funciona como um mecanismo de consulta relativamente à origem
de dados sem a necessidade de transferir bases de dados para a cloud. No entanto,
os dados que estão alojados em relatórios do Power BI residem na Cloud do Azure.
• Power BI Report Server: num cenário on-premises, o Power BI Report Server
permite-lhe alojar relatórios do Power BI dentro do seu próprio datacenter. Estes
relatórios ainda são passíveis de partilha entre os diferentes membros, desde que
estes disponham do acesso adequado à rede.
• Power BI Embedded: permite-lhe aplicar uma marca branca do Power BI nas
suas próprias aplicações personalizadas. É frequentemente integrado de forma
estratégica nos dashboards e nos sistemas de back-office existentes, onde
apenas um conjunto de utilizadores pode ter acesso aos relatórios.

Funcionalidades e vantagens
A um alto nível, o Power BI oferece as seguintes vantagens:
• Dashboards personalizados que permitem aos analistas aplicar uma marca
ao aspeto e à funcionalidade dos gráficos, dos diagramas e das tabelas.
• Colaboração entre diferentes utilizadores.
• Governação e segurança que assegura que só os utilizadores autorizados podem
aceder aos dashboards.
• Sem restrições de memória ou velocidade, dado vez que é um serviço alojado na
cloud. É como se o utilizador estivesse simplesmente a carregar uma página Web.
• Integração fluida com as aplicações existentes para criar análises de dashboards
avançadas e personalizadas.
• Não é necessário qualquer suporte técnico especializado, dado que os relatórios
foram concebidos para proporcionar uma interação fácil.
• Suporte para serviços de dados avançados, como a funcionalidade “Fazer uma
Pergunta”, integração com R, segmentação e análise de coortes.
O Power BI é uma ferramenta intuitiva que, frequentemente, apenas exige que clique ou
arraste e largue um item para aceder e visualizar os dados com rapidez. A ferramenta de
criação, Power BI Desktop, está equipada com inúmeras funcionalidades incorporadas
para extrair análises. É suficientemente inteligente para sugerir um modelo de
visualização baseado nos campos que selecione.
70 | Processar e visualizar dados

Os dashboards e relatórios do Power BI são extremamente personalizáveis e permitem


adaptar a sua experiência consoante a sua marca. Pode selecionar temas, utilizar
gráficos personalizados, criar etiquetas, inserir desenhos e imagens, e muito mais.

Se compararmos com o envio de um e-mail com um ficheiro do PowerPoint anexado,


o Power BI permite uma colaboração aberta entre os analistas e outros membros
da empresa simplesmente através da partilha de um dashboard centralizado. Pode
aceder a relatórios utilizando os principais browsers ou através de aplicações móveis
cujo download pode ser efetuado a partir da Apple App Store e da Google Play Store.
As pessoas podem enviar comentários e anotações sobre os relatórios, o que cria um
ciclo de feedback mais rápido com a utilização de alertas e notificações.
O Power BI é seguro em diferentes aspetos e áreas. Por um lado, ao criar um relatório,
é assegurado que só pode aceder a origens de dados às quais lhe foi concedido
acesso. Isto é salvaguardado pela Segurança ao Nível da Linha (RLS). Por exemplo,
os analistas só podem aceder aos dados locais da respetiva região, sendo assegurado
que não têm acesso a dados de outra cidade ou país. Assim que estiver pronto para
partilhar o relatório, pode guardá-lo rapidamente na sua área de trabalho pessoal.
Pode selecionar com quem pretende partilhar o relatório na sua organização ou
convidar utilizadores provenientes de inquilinos externos.
Se pretender começar a familiarizar-se devagar com o Power BI, pode começar por
utilizar apenas ficheiros do Excel como a origem de dados. Em determinados cenários,
os analistas recebem um ficheiro CSV de engenheiros de dados porque o tamanho do
conjunto de dados não é demasiado grande.

Num cenário empresarial, os engenheiros e os analistas têm de lidar com diversas


origens e plataformas de dados para criar um dashboard unificado. Isto é frequentemente
um desafio, especialmente quando os dados não estão disponíveis para os analistas
realizarem a sua exploração. É aqui que uma combinação do Power BI e do Azure Synapse
Analytics pode revelar-se muito útil.

O Power BI e o Azure Synapse Analytics


O Power BI é uma plataforma extremamente flexível que pode funcionar com múltiplas
origens de dados. Pode ser uma origem tão simples como um ficheiro do Excel, uma base de
dados on-premises ou na cloud, ou um data warehouse. Quando possui um data warehouse
moderno, uma das melhores práticas consiste em separar o dever de processamento dos
dados da visualização dos dados. É aí que entra em jogo o Azure Synapse Analytics.
O Azure Synapse Analytics, com a utilização de um Conjunto de SQL dedicado,
pode efetuar consultas complexas para todas as origens de dados e criar um modelo
semântico para o Power BI. Um modelo de dados semântico é um formato de dados
estruturado que o Power BI pode interpretar facilmente para a visualização de dados.
Esta abordagem é dimensionável e atenua muitas das complexidades de gestão de
dados de várias equipas.
O Power BI e o Azure Synapse Analytics | 71

Funcionalidades e vantagens
Existem muitas vantagens em aliar o Power BI e o Azure Synapse Analytics. Embora não
exista uma solução universal, nem uma ferramenta que permita resolver todos os seus
problemas de dados, a combinação do Azure Synapse Analytics e Power BI pode facilitar
operações e ciclos de vida de dados robustos, elásticos e mais fáceis de manter para
a sua equipa:

• Modelo de dados unificado: ao tratar o Azure Synapse Analytics como a única


fonte de informação facilitará um modelo de dados unificado para todos os
serviços de dados do consumidor, incluindo o Power BI. Com esta abordagem,
todos estarão seguros de que os dados armazenados no data warehouse (a área
de trabalho do Synapse) já foram validados e pré-processados. Esta funcionalidade
é muito útil, especialmente para os programadores e analistas do Power BI, dado
que significa que podem concentrar-se na geração de relatórios relevantes em
vez de se debaterem com o processamento de origens de dados diferentes.
• Transformações de dados e consultas dimensionáveis: o Power BI oferece
capacidades de consulta de dados através do DirectQuery. Esta funcionalidade
é de grande utilidade para pequenos conjuntos de dados. No entanto, quando os
conjuntos de dados se tornarem muito grandes, irá deparar-se com alguns problemas
de escalabilidade e isso irá afetar o desempenho dos relatórios se realizar essas
operações diretamente no Power BI. O Azure Synapse Analytics ajuda neste cenário
ao realizar otimizações de desempenho em consultas de grande escala através de
vistas materializadas e da colocação em cache de conjuntos de resultados. Estes
conjuntos de operações que consomem muitos recursos decorrem num cluster
elástico de Conjuntos de SQL para atender à exigência de dimensionamento. Com
esta abordagem, o Power BI pode concentrar-se na execução das funções associadas
à visualização dos dados e não à preparação dos dados destinados aos relatórios.
• Segurança e governação centralizadas: o Power BI é fornecido com
funcionalidades de segurança para proteger os ficheiros e relatórios gerados,
como a utilização do Azure Active Directory (Azure AD) para assegurar que apenas
áreas de trabalho e relatórios específicos são partilhados com um grupo ou
utilizadores. Com a ajuda do Azure Synapse Analytics, o acesso aos dados pode
ser mais protegido através da implementação de segurança ao nível da linha e da
coluna numa camada de dados, em vez de em modelos de dados. Num cenário
prático, a equipa de operações de base de dados pode aprovisionar e restringir
facilmente o acesso a várias origens de dados para o consumo do Power BI.
• Área de trabalho colaborativa: um dos desafios na gestão da capacidade de
business intelligence, em particular numa grande empresa, é a disparidade
entre as ferramentas, equipas e políticas. Num cenário tradicional, estas equipas
têm uma barreira de comunicação, mas pretendem alcançar o mesmo objetivo,
que é tirar partido do poder dos dados. O Azure Synapse Analytics cria uma
experiência colaborativa para estas equipas, onde todas acedem ao mesmo
72 | Processar e visualizar dados

portal Web: o Azure Synapse Studio. Numa grande organização, algumas equipas
podem apenas necessitar de acesso à secção Desenvolver do Synapse Studio,
enquanto outras apenas dispõem de acesso à secção Monitorizar. O Synapse
Studio oferece um aspeto e uma funcionalidade unificados a todos os membros
da organização, sejam quais forem as funções e responsabilidades.
Neste livro, iremos usar o Power BI para gerar relatórios das consultas efetuadas pelo
Conjunto de SQL numa área de trabalho do Synapse. Este capítulo irá centrar-se na
forma como pode tirar partido dos conjuntos de dados do Power BI no Synapse Studio.

Existem diferentes abordagens para realizar uma visualização robusta de dados, mas
a principal razão para utilizar esta abordagem (o Power BI e Azure Synapse Analytics)
é a elasticidade e a separação de deveres. Esta combinação facilita uma capacidade
simplificada de geração de relatórios à escala, mesmo que tenha mil milhões de linhas
nas suas bases de dados.
Para compreender melhor como o Azure Synapse Analytics e Power BI trabalham em
conjunto, vamos começar com um simples guia de início rápido.

Guia de início rápido (Modelação e visualização de dados)


Neste guia de início rápido, vamos explorar como podemos utilizar o Azure Synapse
Analytics com um Conjunto de SQL para capturar dados da COVID-19 do Bing
e apresentar relatórios relevantes para o Power BI.

Pré-requisitos
Para realizar esta atividade, necessita do seguinte:
• Uma subscrição ativa do Azure
• Power BI Desktop (apenas Windows)
• Power BI Pro License
• Uma área de trabalho do Azure Synapse Analytics
Vamos começar.
Integrar o Power BI com o Azure Synapse Analytics
Esta atividade funcionará como um guia passo a passo da integração do Azure Synapse
Analytics com o Power BI. Utilizaremos o poder do Azure Synapse Analytics para
efetuar consultas que permitirão ao Power BI visualizar dados sem a necessidade
de efetuar transformações complexas dentro do seu ambiente do Power BI:
1. A primeira coisa que vamos fazer é estabelecer uma ligação entre a sua área de
trabalho do Azure Synapse Analytics e a sua área de trabalho do Power BI. Para
tal, aceda ao Synapse Studio e à secção Gerir. Clique em Serviços ligados e, em
seguida, clique no botão + Novo. Procure pelo Power BI conforme é ilustrado na
Figura 3.2. Clique na opção Power BI e clique em Continuar:
O Power BI e o Azure Synapse Analytics | 73

Figura 3.2: Integrar o Power BI com o Azure Synapse Analytics

2. Preencha o Nome, a Descrição, o Inquilino e o Nome da área de trabalho para este


serviço associado. Clique em Criar:

Figura 3.3: Criar um serviço associado


74 | Processar e visualizar dados

Criar uma base de dados


Siga estes passos para criar uma base de dados para armazenar dados:
1. Depois de configurar o serviço associado com o Power BI, chegou a altura de criar
uma base de dados para armazenar os dados de exemplo que iremos capturar na
secção seguinte. Aceda à secção Dados do Synapse Studio e escolha o separador
Área de trabalho. Clique no botão + e, em seguida, escolha Base de dados SQL:

Figura 3.4: Criar uma base de dados SQL no Synapse Studio

2. Escolha a opção Sem servidor e introduza um nome da base de dados. Clique em Criar:

Figura 3.5: Escolher um tipo de conjunto de SQL

Nota
Ao configurar a área de trabalho do Azure Synapse Analytics, esta incorpora um
conjunto de SQL sem servidor para si.
O Power BI e o Azure Synapse Analytics | 75

Após a criação bem-sucedida da base de dados, deve agora constar na lista de bases
de dados da sua área de trabalho.

Figura 3.6: Lista de bases de dados criadas na área de trabalho do Synapse

Ligar o conjunto de dados


Siga estes passos para ligar um conjunto de dados:
1. O passo seguinte é capturar os dados da COVID-19 do Bing. Na mesma página
(no painel Dados) onde criou uma base de dados, clique novamente em + e escolha
Procurar na galeria.
2. Escolha Bing COVID-19 Data no separador Conjuntos de dados e clique em Continuar:

Figura 3.7: Galeria de conjuntos de dados


76 | Processar e visualizar dados

Em seguida, será encaminhado para a página de termos e condições. Leia os


acordos de licenciamento para assegurar que faz a utilização legítima destes
conjuntos de dados. Também lhe irá apresentar uma pré-visualização de algumas
das linhas desse ficheiro. Clique em Adicionar conjunto de dados.
O conjunto de dados deve agora ser apresentado no separador de dados
Ligados em Azure Blob Storage | Conjuntos de Dados de Exemplo.

Figura 3.8: Adicionar o conjunto de dados ao Azure Synapse Analytics utilizando o Azure Blob Storage

Transferir dados para a sua base de dados e executar uma consulta


Depois de obter o conjunto de dados de exemplo, é a altura de transferir esses dados
para a base de dados SQL que criou anteriormente:
1. Clique com o botão direito do rato na pasta bing-covid-19-data seguido de
Novo script SQL e, em seguida, escolha Selecionar as 100 primeiras linhas:

Figura 3.9: Criar uma nova consulta para selecionar as 100 primeiras linhas
O Power BI e o Azure Synapse Analytics | 77

Será encaminhado para uma área de trabalho de desenvolvimento de scripts SQL


previamente preenchida. Há alguns elementos nesta consulta que vamos modificar.
2. Certifique-se de que um conjunto de SQL é selecionado como Incorporado e de
que a base de dados adequada é escolhida no menu pendente Utilizar base de
dados. A área de trabalho do Azure Synapse Analytics é fornecida com um conjunto
de SQL incorporado após a criação de recursos:

Figura 3.10: Escolher um conjunto de SQL e uma base de dados

Iremos modificar a consulta para criar uma vista com base numa instrução select do
conjunto de dados COVID-19 do Bing:
-- Drop existing “Covid19View”
DROP VIEW IF EXISTS Covid19View;
GO

-- Create a View named “Covid19View”


CREATE VIEW Covid19View
  AS
-- Select ALL data from the dataset however for this specific report.
-- we only want country level reports and excluding “Worldwide” and
country regions.
SELECT
    *
FROM
    OPENROWSET(
        BULK     'https://pandemicdatalake.blob.core.windows.net/public/
curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet',
        FORMAT = 'parquet'
    )  
    AS [result]
WHERE [country_region] != 'Worldwide'  
    And ( [admin_region_1] is NULL
        Or [admin_region_1] = '' )

Nota
No relatório real, posteriormente no Power BI, poderá ver que faltam outros
países. Pretendeu-se, deste modo, simplificar o exercício.
78 | Processar e visualizar dados

3. Na secção Propriedades, escolha um bom nome de consulta e, opcionalmente, pode


acrescentar uma descrição. É importante que escolha a opção Todas as linhas:

Figura 3.11: Propriedades do script SQL

4. Guarde o seu script clicando no botão Publicar. No Windows, também é possível


guardar premindo Ctrl + S.
5. Agora, pode executar a sua consulta. Clique em Executar.
O Power BI e o Azure Synapse Analytics | 79

Assim que a consulta esteja concluída, deve apresentar a seguinte mensagem:

Figura 3.12: Estado de execução de consultas

Verificar a vista
Vamos verificar se a vista foi criada na base de dados:
1. Aceda a separador Área de Trabalho da secção Dados do Synapse Studio.
Aprofunde o nível da base de dados e as vistas e verifique se a vista foi criada:

Figura 3.13: Vista criada para o conjunto de dados COVID-19


80 | Processar e visualizar dados

2. Clique com o botão direito na vista que foi criada, clique em Novo script SQL
e clique em Selecionar as 100 primeiras linhas:

Figura 3.14: Consultar a vista das 100 primeiras linhas de “Covid19View”


O Power BI e o Azure Synapse Analytics | 81

3. Deste modo, deve abrir uma nova janela. Clique em Executar para executar
a consulta select. Deve apresentar linhas de dados no separador Resultados:

Figura 3.15: Executar a consulta para obter as 100 primeiras linhas


82 | Processar e visualizar dados

Criar e publicar o relatório do Power BI


Agora que já povoámos a base de dados do Azure Synapse Analytics com dados, chegou
a altura de criar um relatório no Power BI:
1. Aceda à secção Desenvolver do Synapse Studio e aprofunde o nível até Power BI
| A sua Área de Trabalho | Conjuntos de dados do Power BI. Clique em + Novo
conjunto de dados do Power BI:

Figura 3.16: Adicionar um novo conjunto de dados do Power BI

2. Deste modo, irá abrir um assistente que permitirá escolher uma base de dados.
Clique em Continuar:

Figura 3.17: Selecionar uma origem de dados para o conjunto de dados do Power BI
O Power BI e o Azure Synapse Analytics | 83

3. Após escolher uma base de dados, a secção seguinte do assistente permite fazer
download do ficheiro do Power BI Desktop. Clique em Fazer download:

Figura 3.18: Fazer download de um conjunto de dados do Power BI ligado

Depois de fazer download do ficheiro, abra o ficheiro .pbids. O ficheiro deve abrir
o Power BI Desktop no seu computador Windows. Se ainda não estiver autenticado,
ser-lhe-á pedido-lhe que escolha um método de ligação à base de dados:

Figura 3.19: Adicionar uma base de dados do SQL Azure Synapse Analytics como uma origem
de dados no Power BI
84 | Processar e visualizar dados

Quando estiver autenticado, irá apresentar o ecrã Navegador para selecionar


as origens de dados que pretende capturar. Certifique-se de que a vista onde
armazenou os dados está marcada. Em seguida, prima Carregar:

Figura 3.20: Carregar o conjunto de dados COVID-19 para o Power BI

Em seguida, ser-lhe-á pedido que opte entre Importar ou DirectQuery:

Figura 3.21: Selecionar as definições de ligação do Power BI


O Power BI e o Azure Synapse Analytics | 85

Ao escolher a opção Importar, os dados serão armazenados no Power BI Desktop.


Terá de efetuar uma atualização para obter uma atualização desses dados. Importar
é a abordagem preferida se o tamanho dos dados não for muito grande e se o seu
computador tiver memória suficiente (RAM).
Se escolher DirectQuery, nenhuns dados serão armazenados no Power BI Desktop.
O DirectQuery apenas criará uma referência a partir da origem de dados e irá
consultar esses dados sempre que atualizar a sua área de trabalho. O DirectQuery
é a abordagem preferida se tiver origens de dados externas complexas.
Após selecionar uma opção, irá então carregar os dados a adicionar como os
campos do Power BI.
4. Para começar a criar um relatório, arraste o campo atualizado a partir do separador
Campos (à direita do Power BI) para a área de trabalho. Em seguida, no separador
Visualizações, escolha Matriz:

Figura 3.22: O separador Visualizações


86 | Processar e visualizar dados

5. Na secção Formato, aceda a Subtotais e desative Subtotais de linha.


Irá resultar um seletor de datas como o aqui apresentado:

Figura 3.23: Power BI Desktop com uma matriz de data

6. Chegou o momento de apresentar insights muito mais relevantes. Aceda à secção


Visualizações e clique em Mapa Preenchido. Deste modo, irá criar um mapa vazio
na área de trabalho. Expanda-o para capturar o resto da área de trabalho.
Arraste e largue os seguintes campos no mapa:
• country_region
• confirmed
• recovered
• deaths
Deste modo, irá criar um mapa do mundo preenchido.
O Power BI e o Azure Synapse Analytics | 87

7. Aceda a Seleção de data à esquerda e escolha um dia aprofundando de nível a partir


da matriz. Por exemplo, 21 de outubro.
8. Aceda à secção mapa e paire com o rato sobre um país. Deve mostrar-lhe o número
de casos confirmados, recuperados e mortes para o respetivo país nessa data:

Figura 3.24: Apresentar as estatísticas da COVID-19 por país

Convidamo-lo a explorar as personalizações que pode pretender implementar.

Após personalização adicional, vamos publicar o relatório para que outras pessoas
possam vê-lo.
1. Clique no botão Publicar na parte superior do friso Base. Escolha um destino para
este relatório:

Figura 3.25: Escolher um destino para o relatório


88 | Processar e visualizar dados

2. Assim que esteja publicado, irá fornecer-lhe uma ligação para abrir o relatório no
PowerBI.com. Abra a ligação:

Figura 3.26: Abrir o relatório publicado no Power BI

Assim que esteja publicado, ficará disponível para a sua área de trabalho do Power
BI. Na área de trabalho, pode partilhar este relatório com qualquer dos membros
da equipa no seu inquilino clicando no botão Partilhar:

Figura 3.27: Visualizar um relatório na área de trabalho do Power BI


Machine learning no Azure | 89

Também é possível ver este relatório em tablets e dispositivos móveis:

Figura 3.28: Visualizar o relatório do Power BI num tablet/dispositivo móvel

Parabéns por criar o seu dashboard do Power BI! Nesta atividade, abordámos como
utilizar o Synapse Studio para transformar dados num modelo semântico relevante que
o Power BI pode visualizar. Na secção seguinte, vamos explorar como podemos utilizar
o machine learning com o Azure Synapse Analytics.

Machine learning no Azure


Existem várias formas de realizar machine learning no Azure. A Microsoft permite
que a data science seja mais acessível a todos os tipos de utilizadores e dá condições
aos data scientists para serem mais produtivos. A Microsoft fornece um conjunto de
tecnologias para os programadores, engenheiros de bases de dados e data scientists
criarem algoritmos de machine learning. Seja qual for o seu nível de conhecimentos
e experiência em data science, existe um serviço, uma ferramenta ou uma arquitetura
da Microsoft útil que pode acelerar o seu percurso de machine learning.
A Figura 3.29 ilustra um cenário de machine learning dentro do ecossistema do Microsoft
Azure. Pode utilizar modelos previamente treinados com os Serviços Cognitivos do Azure
e integrá-los diretamente com as suas aplicações sem a necessidade de configurar um
pipeline de dados. Pode utilizar arquiteturas populares como TensorFlow e Keras no Azure,
seja instalando-as numa virtual machine ou utilizando uma área de trabalho de machine
learning. Pode escolher diferentes plataformas, tais como o Azure Machine Learning ou o
Azure Databricks, para preparar e executar as suas experimentações de machine learning:
90 | Processar e visualizar dados

Figura 3.29: Funcionalidades e serviços do Microsoft Azure para machine learning

Quando utiliza o Azure para conduzir a computação para análise de machine learning,
é-lhe fornecido hardware especializado que pode acelerar as suas experimentações.
Com hardware acelerado, como unidades de processamento gráfico (GPUs) rápidas
e matrizes de porta programável no terreno (FPGAs), pode ler milhares de milhões
de entradas de linha de uma tabela de base de dados e experimentar vários modelos
em simultâneo para obter resultados mais rápidos para as suas experimentações de
machine learning.
As secções seguintes fornecerão uma visão geral das principais tecnologias
e plataformas que implementam o machine learning e a inteligência artificial
dentro do ecossistema do Microsoft Azure.
Machine learning no Azure | 91

ML.NET
O ML.NET é uma arquitetura multiplataforma de open source para programadores
de .NET. Ao utilizar o ML.NET, o utilizador e a sua equipa podem aproveitar as
competências, bibliotecas e arquiteturas que já estão presentes no ecossistema
.NET. Pode criar aplicações Web utilizando o ASP.NET, aplicações móveis utilizando
o Xamarin, aplicações de ambiente de trabalho utilizando o WPF e até mesmo
a Internet of Things (IoT) utilizando a Windows IoT. Também pode expandir a sua
capacidade de criação do modelo de machine learning utilizando o TensorFlow
e o ONNX. O ML.NET fornece suporte “out of the box” para algoritmos que permitem
a análise de sentimentos, a recomendação de produtos, a deteção de objetos, a previsão
de vendas e muitos mais cenários de negócios no mundo real.
Para tarefas como a regressão e classificação, tanto a formação como o consumo
podem ser realizados com ML.NET. Para além disso, também suporta tipos de dados
básicos, pipelines extensíveis, estruturas de dados, suporte de ferramentas, matemática
de desempenho avançada e muito mais.
O ML.NET pode ser instalado a partir de nuget.org. nuget.org é um repositório público
de pacotes, bibliotecas e arquiteturas .NET que pode fazer download e adicionar
facilmente ao seu projeto .NET.

Machine learning automatizado


O Machine Learning automatizado (ML Automatizado ou AutoML) permite que os
profissionais de dados criem modelos sem código dentro do Azure Synapse Analytics
alimentado pelo Azure Machine Learning. O AutoML foi concebido para detetar
automaticamente os melhores modelos de machine learning para si, selecionando
o algoritmo certo e ajudando a sintonizar hiperparâmetros para previsão, classificação
e regressão. Esta capacidade é muito útil se não tiver um data scientist na sua equipa.
O AutoML ajuda os utilizadores (programadores, analistas e até data scientists)
a implementar o machine learning sem uma barreira elevada de entrada relacionada
com linguagens de programação, bibliotecas, arquiteturas e conceitos de data science.
Permite que as empresas inovem, ao acelerar o tempo de comercialização através de
um processo iterativo e ao tirar partido das melhores práticas de data science durante
a realização de experimentações.
As execuções de AutoML são efetuadas em conjuntos do Apache Spark sem servidor
do Azure Synapse Analytics e são monitorizadas no serviço Azure Machine Learning.
92 | Processar e visualizar dados

Serviços cognitivos
Os Serviços Cognitivos do Azure são um conjunto de modelos e APIs com um fim genérico,
previamente treinados e baseados na cloud que podem ser consumidos e expandidos
com vista a formação adicional para casos de utilização específicos. Se, por exemplo,
quiser criar uma IA de deteção de objetos que percebe o que é uma banana, poderá ter
de alimentar mais dados para ajudar a IA a perceber que uma imagem contém uma banana.
O consumo de serviços cognitivos é realizado por HTTP e é independente da plataforma,
o que significa que pode utilizar qualquer linguagem de programação e sistema operativo.
São cinco as categorias principais de serviços cognitivos: decisão, visão, fala, pesquisa
e linguagem. Pode integrar facilmente a IA e o ML com as suas aplicações móveis, Web,
de secretária ou até mesmo IoT utilizando os Serviços Cognitivos.

As capacidades de conversão de voz em texto e reconhecimento de orador da API dos


Serviços de Voz são bons exemplos de serviços cognitivos. Estas capacidades permitem
transformar dados de fala em texto, traduzi-los para outros idiomas e reconhecer
a identidade do orador sem configurar uma área de trabalho de machine learning que
envolva milhões de conjuntos de dados e uma série de experimentações de modelos
de machine learning.
A utilização de Serviços Cognitivos é a melhor abordagem para quem pretende integrar
facilmente a IA e o machine learning nas suas aplicações com conhecimentos mínimos
de data science. A Microsoft oferece opções de preços muito flexíveis onde só paga
pelo que usa e a maioria dos serviços têm níveis gratuitos para explorar. Existem
atualmente modelos treinados previamente disponíveis para análise de texto (análise de
sentimentos) e deteção de anomalias, mas estarão disponíveis mais modelos no futuro.
Pode obter mais informações sobre os Serviços Cognitivos aqui.

Bot Framework
O Microsoft Bot Framework permite que as aplicações criem bots inteligentes
(muitas vezes utilizados para chatbots) para automatizar os workflows. O Bot
Framework está estreitamente associado aos Serviços Cognitivos como o Language
Understanding Intelligence Service (LUIS) e o QnA Maker. O QnA Maker é um serviço
de processamento de linguagem natural (NLP) que acelera a criação de IA baseado
em conversação, por exemplo, os chatbots. Com o Bot Framework, os programadores
podem facilmente criar uma IA de conversação que aprende através do treino a partir
de expressões e intenções. Esta arquitetura também permite que os programadores
publiquem facilmente bots em canais como Microsoft Teams, Cortana e Slack.

Hoje em dia, o Bot Framework é amplamente adotado por grandes empresas, como
bancos e conglomerados de comércio, para o seu suporte de primeiro nível. Por
exemplo, o Banco de Beirute utilizou o Bot Framework para criar o chatbot Digi Bob,
que ajuda os utilizadores a pedirem empréstimos e a recorrerem a outros serviços
bancários. Para saber mais, leia este caso de utilização aqui.
Machine learning no Azure | 93

Utilizando o Bot Framework, os programadores podem implementar bots inteligentes


de nível empresarial que podem facilmente traduzir inquéritos e mensagens (intenções)
dos utilizadores e responder com ações significativas. Estas ações podem incluir
a consulta a uma origem de dados ou orquestração de um comando a um sistema.
Pode obter mais informações sobre o Bot Framework aqui.

Existem mais ferramentas e produtos de machine learning dentro do ecossistema da


Microsoft, tais como:
• SQL Server Machine Learning Services
• Microsoft Machine Learning Server
• Azure Data Science Virtual Machine
• Windows ML
• Apache Spark MLlib
• Azure Notebooks
• Azure Batch
• Serviços de ML em HDInsight
• ML em Power BI
• Azure Machine Learning para Visual Studio Code
• Executar as suas próprias arquitetura de ML para uma imagem de servidor ou
um contentor Linux
Não é possível abranger todas as tecnologias aqui mencionadas neste livro, por isso,
em vez disso, centrámo-nos no Azure Machine Learning. Para obter mais informações
sobre estes serviços, visite esta ligação.

Funcionalidades e benefícios do Azure Machine Learning


O Azure Machine Learning oferece diversas funcionalidades e muita flexibilidade para
os utilizadores com várias origens e conhecimentos. O Azure Machine Learning pode
integrar-se no seu pipeline de dados existente para realizar tarefas como explorar os
dados do Azure Data Lake ou Azure Synapse Analytics e servir os modelos diretamente
para o Power BI. Também pode utilizar o Azure Databricks para automatizar ainda mais
os clusters de hardware onde está a realizar as suas experimentações de machine learning.
O Azure Machine Learning fornece uma área de trabalho de ponta a ponta para
executar as suas operações de machine learning. Com o Azure Machine Learning,
pode criar experimentações utilizando o AutoML, uma interface visual ou o Software
Development Kit (SDK) no seu bloco de notas de machine learning. Também pode criar
um modelo de dados portátil que pode ser executado num contentor. Este modelo pode
posteriormente ser publicado em Azure Container Instances (ACI).
94 | Processar e visualizar dados

Software Development Kit (SDK)


O Azure Machine Learning serve um Python SDK que suporta completamente
arquiteturas maduras como MXNet, TensorFlow, PyTorch e scikit-learn. Pode importar
o SDK para as suas experimentações usando Jupyter Notebooks, Azure Notebooks ou
até o Visual Studio Code.

Estruturador
Também pode utilizar uma interface visual (sendo necessária codificação mínima) dentro
do Azure Machine Learning chamada Estruturador para criar e realizar experimentações.
A experiência utiliza uma abordagem de pouco código/sem código com ferramentas de
arrastar e largar para criar e ligar entidades. Esta é uma forma intuitiva de ligar origens
de dados e criar um modelo de machine learning para treinar e servir.

AutoML
Conforme explicado antes, o AutoML é um mecanismo que sugere o melhor algoritmo
a utilizar nas suas experimentações. É uma funcionalidade integrada do Azure Machine
Learning. Pode automatizar tarefas que consomem muito tempo, como a limpeza de
dados e a escolha dos algoritmos adequados para o seu modelo. O AutoML permite
iterar inúmeras combinações de algoritmos e hiperparâmetros para encontrar
o melhor modelo em função do resultado pretendido.

Objetivos de implementação flexíveis


O Microsoft e Azure não restringem as opções de implementação do seu modelo.
Mesmo que esteja a gerir a sua área de trabalho e a realizar a sua análise na cloud,
não está restringindo apenas à implementação do resultado das suas experimentações
para o Azure. Tem a opção de as implementar on-premises e em ambientes periféricos
utilizando contentores.

Accelerated Machine Learning Operations (MLOps)


Num data warehouse moderno, a combinação do Azure Databricks e do Azure Machine
Learning pode acelerar as suas operações de machine learning. O Azure Machine
Learning pode fornecer-lhe uma área de trabalho de ponta a ponta onde pode ligar
dados de várias origens com o Azure Synapse Analytics, preparar e treinar modelos de
dados, implementá-los para consumidores como o Power BI e, em seguida, monitorizá-
los e retreiná-los para melhorar a precisão:
Machine learning no Azure | 95

Figura 3.30: Preparação, experimentação e implementação no Azure Machine Learning

Com o Azure Machine Learning pode usar o Azure Databricks para preparar os dados
para as suas experimentações. Em seguida, pode utilizar os Jupyter Notebooks ou o
Visual Studio Code para criar as suas experimentações; em alternativa, também pode
usar a funcionalidade Azure Notebooks incorporada no Azure Machine Learning.
Em seguida, executará as suas experimentações para treinar e testar o seu modelo
de machine learning, tirando partido dos computadores para executar algoritmos
complexos de data science. O Azure Machine Learning criará um modelo de machine
learning com o formato ONNX, que é altamente portátil e pode ser facilmente
implementado num contentor como o Azure Container Instance. Também dispõe
da opção de o executar no Azure Kubernetes Services (AKS) ou até em dispositivos
periféricos que suportam o Docker.

Nota
O formato do modelo ONNX permite que profissionais de dados que trabalham
no Azure Synapse Analytics levem uma diversidade de modelos para o Synapse
de forma segura sem a necessidade de movimento de dados fora dos limites de
segurança do Azure Synapse Analytics.

Este livro não abrangerá a utilização do Azure Databricks como o cluster de cálculo do
Azure Machine Learning, mas existem vantagens em ter esta combinação. Se já estiver
a utilizar o Azure Databricks para obter análises em tempo real no seu data warehouse
moderno, também poderá considerar utilizá-lo para executar as suas experiências de
machine learning no Azure Machine Learning. Pode obter mais informações sobre este
assunto aqui.
96 | Processar e visualizar dados

Azure Machine Learning e Azure Synapse Analytics


O Azure Machine Learning e o Azure Synapse Analytics podem trabalhar em conjunto
à medida que resolvem diferentes problemas. O Azure Synapse Analytics é utilizado
para o seu data warehouse moderno com vista a criar um pipeline de dados unificado
para as suas diferentes origens de dados e, por fim, modelar e servir esses dados para
um consumidor cliente. Por outro lado, o Azure Machine Learning é usado para criar
um modelo de machine learning que pode acabar por ser usado para as suas aplicações
para criar inferências significativas (suposições).
Um exemplo prático da utilização conjunta do Azure Machine Learning e Azure Synapse
Analytics poderia ser uma loja de comércio física. O Azure Synapse Analytics pode
agregar várias origens de dados, tais como dados de beacon e CCTV (não estruturados),
bases de dados NoSQL e bases de dados SQL, e, posteriormente, consultar todas para
servir relatórios relevantes para o Power BI, como o “número de produtos vendidos
versus tráfego de audiência”. Por outro lado, ao utilizar o Azure Machine Learning
pode executar experimentações de várias origens de dados, incluindo as geradas
pelo Azure Synapse Analytics, para criar um motor de recomendação para as pessoas
que visitam a loja com base nas suas atividades anteriores e na correlação entre os
restantes clientes.
Também é possível combinar o Azure Synapse Analytics e as áreas de trabalho do Azure
Machine Learning como um serviço associado. É possível criar um serviço associado ao
Azure Machine Learning a partir de uma área de trabalho do Azure Synapse Analytics
e permite uma colaboração muito mais simples entre as duas tecnologias.

Guia de início rápido (Azure Machine Learning)


Neste guia de início rápido sobre o Azure Machine Learning, vamos ver como começar
a utilizar a plataforma sem necessidade de qualquer codificação. Iremos utilizar um
exemplo chamado Image Classification using DenseNet utilizando a funcionalidade
Estruturador do Azure Machine Learning para criar um pipeline para o seu modelo de
machine learning.

Pré-requisitos
Para realizar esta atividade, necessita do seguinte:
• Uma subscrição ativa do Azure
• Criar uma área de trabalho do Azure Machine Learning
Azure Machine Learning e Azure Synapse Analytics | 97

1. No portal do Azure, procure Machine Learning e clique em Criar:

Figura 3.31: Criar uma área de trabalho do Azure Machine Learning

2. Preencha os detalhes da subscrição e da área de trabalho.

Nota
Para este exercício específico, pode criar uma nova instância ou utilizar uma
existente para:

• Azure Storage
• Azure Key Vault
• Application Insights
• Azure Container Registry
98 | Processar e visualizar dados

3. Crie o recurso clicando em Rever + criar:

Figura 3.32: Detalhes da área de trabalho do Azure Machine Learning

4. Uma vez aprovisionado o recurso do Azure Machine Learning, aceda à secção


Descrição geral e clique em Iniciar estúdio:

Figura 3.33: Gerir o modelo de machine learning através da opção Iniciar estúdio
Azure Machine Learning e Azure Synapse Analytics | 99

Deste modo, será redirecionado para o estúdio do Azure Machine Learning, onde
iremos criar o nosso modelo de machine learning.

Criar um modelo de machine learning utilizando o Estruturador


1. No estúdio do Azure Machine Learning, clique no painel Estruturador. Iremos
utilizar um pipeline de exemplo chamado Image Classification using DenseNet.
Clique no ícone de Image Classification using DenseNet para começar:

Figura 3.34: Criar um pipeline de machine learning utilizando o Estruturador


100 | Processar e visualizar dados

Este exemplo irá criar uma série de passos no pipeline, tal como indicado na
Figura 3.35:

Figura 3.35: Pipeline de classificação de imagem

Em resumo, este pipeline utiliza um conjunto de imagens do repositório Animal


images Dataset para treinar o modelo. Em seguida, aplica uma série de passos
e técnicas (consulte o fluxograma) para treinar o modelo até estar pronto para
ser pontuado.
Pontuar o modelo significa criar uma medição do grau de precisão do modelo se for
alimentado com uma nova imagem. A última parte é a avaliação do modelo, em que
o desempenho do modelo é avaliado. Este exercício é o que distingue o seu modelo
de outros modelos em termos de precisão e fiabilidade.
2. Clique no botão Submeter na parte superior direita da página. Ser-lhe-á pedido que
especifique o destino de computação que vai utilizar para esta experimentação, ou
seja, qual a virtual machine que vai utilizar.
Para este exercício, crie um novo destino de computação assinalando o botão
de opção Criar novo e atribuindo-lhe um nome. Clique em Guardar. Será criado
o destino de computação:
Azure Machine Learning e Azure Synapse Analytics | 101

Figura 3.36: Definir um destino de computação

Nota
No Azure Machine Learning, também pode adicionar e configurar as virtual
machine existentes como um destino de computação.

Assim que o destino de computação seja criado, estará pronto para executar a
experimentação. Tente clicar no botão Submeter de novo para acionar a experimentação.
3. Será solicitado que selecione ou crie um nome de experimentação conforme
ilustrado na Figura 3.37. Adicione o nome da experimentação na opção
Criar nova e quando estiver pronto, clique no botão Submeter:

Figura 3.37: Criar uma nova experimentação


102 | Processar e visualizar dados

Agora, irá executar a experimentação e esta operação vai demorar algum tempo.
Pode ver o progresso da experimentação visualmente consoante o estado de cada
passo: na fila, não iniciada ou concluída.
Quando a experimentação estiver concluída, todas as caixas devem estar realçadas
em verde, conforme ilustrado aqui:

Figura 3.38: Pipeline de experimentação de imagens de animais

4. Clique no passo Modelo de Imagem Pontuado. Clique com o botão direito do rato
e escolha a opção Visualizar. Em seguida, clique em Conjunto de dados pontuado:

Figura 3.39: Visualizar o modelo pontuado


Resumo | 103

A visualização do resultado ilustra a probabilidade de uma imagem ser um gato,


cão ou sapo. Conforme pode ver, este modelo é melhor na deteção de gatos, onde
obtém 99,57% de precisão, em comparação com o reconhecimento de cães, onde
obtém apenas 70,01%:

Figura 3.40: Resultado da visualização do modelo pontuado

Este exercício deu-lhe uma ideia de como é fácil começar a utilizar o Azure Machine
Learning. Pode optar por implementar este modelo no ACI ou AKS para obter uma
inferência em tempo real numa imagem que pretende testar, mas isso está fora do
âmbito deste livro. Não se esqueça de limpar ou eliminar os seus recursos se já não
precisar deles.

Resumo
Neste capítulo, explicámos como o Azure Synapse Analytics pode servir um modelo de
dados unificado ao Power BI. Em seguida, explorámos a utilização do Power BI Desktop
para criar relatórios. O Power BI permite-lhe criar gráficos avançados e relevantes
que extraem insights de negócio. Em seguida, publicámos um relatório para colaborar
no mesmo através de diferentes suportes e redes.
Também ficámos a saber que existem muitas ferramentas e tecnologias disponíveis
para implementar o machine learning e a inteligência artificial no Azure. Explorámos o
Azure Machine Learning, incluindo as suas funcionalidades e benefícios, e executámos
machine learning no Azure para criar um modelo que classifica animais. No capítulo
seguinte, iremos explorar diferentes casos de utilização de negócio para o Azure
Synapse Analytics e tecnologias relacionadas.
Casos de utilização
4
de negócios

Nos capítulos anteriores, ficou a conhecer a análise à escala da cloud e os serviços


oferecidos pelo Microsoft Azure que permitem às empresas descobrir insights. Também
lhe foram apresentadas as novas características e funcionalidades que foram adicionadas
ao data warehouse moderno. Neste capítulo, irá analisar dois casos de utilização de
empresas do mundo real para ilustrar soluções de alto nível que utilizam o Microsoft
Azure. O objetivo destes casos de utilização é ilustrar como se podem analisar os dados
em tempo real no Azure para extrair insights relevantes e tomar decisões de negócio.
Os nomes da empresa que usámos são fictícios e, para as demonstrações de implementação,
usámos conjuntos de dados de exemplo. No entanto, os casos de utilização de negócio, os
desafios apresentados e os problemas abordados são reais. Ilustram os tipos de problemas
a nível dos dados com que se pode deparar no seu quotidiano.
106 | Casos de utilização de negócios

O primeiro caso prático centra-se em ajudar uma empresa a extrair insights úteis
a partir dos seus dados quase em tempo real. O segundo caso fala sobre a utilização
de análises de dados sobre o Azure para resolver problemas operacionais e prestar
melhores serviços aos passageiros, ao melhorar a utilização das infraestruturas
do aeroporto mais movimentado do Egito. Para cada um dos casos de utilização,
iremos primeiro explicar brevemente o problema e os desafios, e depois procurar
um potencial plano de solução e os serviços Azure que facilitam essas soluções.

Caso de utilização 1: Insights de clientes em tempo real com


o Azure Synapse Analytics
Imagine uma grande multinacional de comércio que tem lojas na Austrália, na Nova
Zelândia e no Japão. Vamos dar-lhe o nome de Coolies. A empresa vende bens de
consumo, componentes eletrónicos e artigos de cuidados pessoais através das suas
lojas físicas e de canais online digitais (aplicações móveis e Web).

A Coolies nomeou uma nova CEO que é apaixonada por dados e ela criou uma nova
equipa de análise de dados e encarregou-a de criar e efetuar a manutenção de insights
de clientes quase em tempo real para fomentar decisões de negócio.

O problema
A Coolies, à semelhança de muitas outras organizações, está a tentar reinventar-se como
uma empresa orientada por dados. Inúmeros indicadores indicam que esta é a estratégia
certa. No entanto, para que a Coolies tenha êxito, tem de resolver muitos problemas. Alguns
destes problemas são de natureza técnica, enquanto outros são culturais e organizacionais.

A CEO da Coolies quer que a nova equipa de análise de dados ajude a empresa
a responder a pergunta que orientam decisões operacionais. A equipa executiva
espera obter respostas a muitas perguntas através dos dados. No entanto, para uma
melhor articulação do âmbito deste projeto, a equipa de dados da Coolies (em consulta
com a CEO) concordou em centrar-se na seguinte pergunta:
Como é que a Coolies pode aumentar os lucros?
Mais especificamente, a equipa de dados da Coolies recebeu um desafio de 20 dias para
executar um programa piloto de análise de dados com a vista modelar formas de ajudar
a empresa a aumentar a sua margem de lucro em 10%.

A equipa começará por se concentrar em duas áreas principais:


• Entender os comportamentos de compra dos clientes para prever as vendas de
produtos. Isto inclui a otimização das operações logísticas, a utilização do espaço
das prateleiras e a redução do desperdício dos produtos expirados.
• Utilizar os dados dos clientes, das vendas e do marketing para otimizar os gastos
da Coolies em promoções e marketing a fim de chegar aos clientes certos com
a promoção certa.
O problema | 107

Entusiasmada com a realização desta tarefa, a equipa de dados da Coolies começou


por fazer um workshop para refinar os requisitos e desafios técnicos. À semelhança
da maioria das empresas, as práticas de dados atuais da Coolies estão orientadas para
a geração de relatórios do que aconteceu no passado. Os relatórios atuais respondem
a perguntas como “Quantos produtos foram vendidos?” e “Qual foi a receita gerada pelo
produto A?”. No entanto, isto é muito diferente do que a Coolies está a tentar alcançar,
que é descobrir padrões que permitam prever que produtos deve vender e em que
quantidades devem ser vendidos e fazê-lo tempo em quase real. Para que isso aconteça,
a equipa de dados da Coolies concluiu que precisa de confrontar os desafios seguintes.

Capturar e processar novos dados


A Coolies interage com os seus clientes através de diversos canais físicos e digitais.
Cada uma destas interações produz dados que podem ser valiosos para a Coolies.
Pense em todas as transações na finalização da compra na loja, as respostas dos
clientes a diversos anúncios e os ajustes no corredor no piso da loja, bem como
quaisquer pontos do cartão de fidelização que possam ter ganho. Cada interação
do cliente gera uma variedade de dados que é necessário a Coolies capturar.
Além disso, a loja online da Coolies tem monitorizadores e beacons para registar
as atividades dos clientes e as suas respostas aos produtos que estão em promoção.
A aplicação móvel da Coolies tem uma funcionalidade semelhante que permite
à Coolies criar uma ótima vista do que os clientes gostam e não gostam. A Coolies
utiliza uma combinação do Azure Application Insights e Splunk, bem como ferramentas
internas para registar os cliques dos utilizadores, a navegação, o tempo gasto em cada
página, que produtos são adicionados ao carrinho de compras e quantas encomendas
são finalizadas. A agregação destes dados com registos de aplicações, eventos de
monitorização da rede e o que a Coolies já sabe sobre os seus clientes cria uma
poderosa ferramenta para prever tendências e padrões de utilização.
A Coolies não só precisa de capturar e armazenar todos estes dados provenientes
de interações físicas e digitais do cliente, mas também precisa de os limpar, validar,
preparar e agregar. Esta é uma tarefa gigantesca com a qual a equipa nunca teve
experiência antes. A equipa costumava analisar processar dados em batch carregando
dados históricos no data warehouse para gerar relatórios diários e semanais. Isto é
bastante desafiador para a equipa, sendo uma tarefa estimulante, mas também colossal.

Reunir todos os dados


Normalmente, os dados surgem em vários formatos e formas. Por exemplo, as transações
de compra são dados tabulares altamente estruturados fáceis de trabalhar. Os registos de
aplicações, por outro lado, são ficheiros semiestruturados que listam milhões de eventos
e rastreiam mensagens do que acontece nos servidores da aplicação. A Coolies precisa de
ingerir ambos os tipos de dados: estruturados e não estruturados.
108 | Casos de utilização de negócios

Para tornar o processo ainda mais interessante, os feeds das redes sociais são não
estruturados e encontram-se numa linguagem natural que os clientes usam para
escrever na Web. Estes feeds podem ser de grande valor para a Coolies, uma vez
que informam a empresa do feedback real fornecido pela sua base de clientes. No
entanto, para os profissionais de dados, é difícil capturar e organizar estes feeds
soltos de publicações de linguagem natural no mesmo formato e forma que os
dados de transação altamente estruturados.
A equipa de dados da Coolies precisa de enfrentar os desafios não só da captura
de dados em todas as suas diversas formas (estruturadas, semiestruturadas e não
estruturadas), mas também encontrar uma maneira de limpar e armazenar todos
estes dados num só local para que possam ser reunidos e correlacionados com
outras formas de dados de outras origens para descobrir novos insights.

Encontrar insights e padrões nos dados


Assim que todos os dados tenham sido capturados, limpos, validados e armazenados,
a equipa de dados da Coolies precisa de iniciar a tarefa desafiante de encontrar insights
e padrões relevantes nos dados. No entanto, este pode ser um problema difícil de
resolver. Quando estamos a falar de gigabytes (ou potencialmente terabytes) de
conjuntos de dados variáveis, como é que encontra estes padrões? Por onde começar?
Os relatórios tradicionais e as técnicas estatísticas não serão dimensionais e não podem
ser utilizados isoladamente para resolver este problema. As formas convencionais
de programação não são muito úteis, uma vez que os programadores e os próprios
profissionais de dados não sabem o que estão à procura ou como encontrar esses insights.

Deteção em tempo real


A Coolies precisa de descobrir insights relevantes com rapidez e agir em conformidade
assim que esses insights são descobertos. Os dados geralmente perdem o seu valor com
o tempo e alguns dados perdem o seu valor diretamente após a ingestão. Por exemplo,
imagine um cenário em que a Coolies está a oferecer uma grande promoção num
determinado produto, digamos, um refrigerante da marca ABC. Esta bebida está a vender
muito rápido hoje nas lojas X, Y e Z. Não teria grande valor se a Coolies descobrisse
esta tendência amanhã porque, nessa altura, as lojas X, Y e Z terão as prateleiras vazias
e os clientes ficarão desiludidos por não terem conseguido o produto pretendido, o que
significa que a Coolies terá perdido uma boa oportunidade de vender mais.
O problema | 109

Como resultado, o objetivo da Coolies é descobrir insights e tendências em tempo


real ou quase em tempo real. A Coolies define quase em tempo real, com um atraso
de 5 a 10 segundos em relação ao tempo real. Deste modo, os pipelines de dados
dispõe de tempo suficiente para processar e analisar dados em direto à medida
que são gerados na Coolies.
A CEO da Coolies deixou claro à equipa que a organização precisa de saber em tempo
real como estão a decorrer as suas operações e como os clientes se sentem sobre a sua
marca e serviços. Ela mencionou um cenário em que a Coolies tinha acabado de optar
por descontinuar a venda do produto A. Após esta decisão, os clientes começaram a ter
muitas conversas nas plataformas das redes sociais. Depois, a CEO da Coolies colocou
a seguinte pergunta: E se um grande número de clientes da Coolies falasse online sobre
a possibilidade de mudar para a concorrência só por causa dessa decisão? A resposta a
esta pergunta é um dado é essencial para a Coolies e que ter impacto no seu sucesso.
O argumento da CEO é que ter a capacidade de encontrar, analisar e depois atuar com
base em insights em tempo real pode ser uma enorme vantagem competitiva para
a Coolies.
Resumindo: a Coolies enfrenta os seguintes desafios:
• A Coolies pretende capturar e armazenar grandes conjuntos de dados
provenientes de origens de dados com um débito potencialmente elevado. Estas
origens de dados incluem arquivos de dados transacionais, sensores da Internet
of Things (IoT), lojas online da Coolies e ficheiros de registo de aplicações.
• A empresa também pretende combinar dados estruturados, semiestruturados
e não estruturados para criar um único conjunto de dados através da reunião
e correlação de dados de múltiplas origens.
• A Coolies tem de lidar com os diferentes níveis de granularidade e qualidade dos
diferentes pontos de dados. A equipa precisa de limpar, preparar, transformar
e reunir estes múltiplos conjuntos de dados.
• A Coolies pretende extrair insights e padrões relevantes dos dados em quase
tempo real.
• Por último, a empresa pretende dimensionar este processo de deteção de dados
para atender às exigências do negócio.
110 | Casos de utilização de negócios

Brainstorming do design
As secções seguintes tentarão articular melhor os requisitos e chegar a uma solução
técnica que possa satisfazê-los.

Ingestão de dados
A primeira tarefa para qualquer profissional de dados é procurar dados, recolhê-los,
limpá-los, validá-los e, em seguida, iniciar a parte estimulação da deteção e exploração
de dados. Para o cenário atual, é necessário definir as origens de dados das quais
necessita de extrair dados. Também precisa de ver como pode carregar dados de
diferentes origens para criar um único conjunto de dados que pode ser explorado
e consultado facilmente pelos analistas de dados. Alguns dos sistemas de origem
necessários para este caso de utilização incluem:
• Transações de venda: as transações de venda não só podem indicar o quê
e quantos produtos foram vendidos numa determinada loja, mas também podem
indicar quais foram os clientes que compraram determinados produtos. Isto
porque a Coolies já dispõe de um programa de fidelização onde os clientes
digitalizam o seu cartão de fidelização como parte do procedimento de finalização
da compra. A Coolies tem dois arquivos de dados diferentes para as transações de
vendas: um arquivo de dados para as lojas físicas e um outro para as lojas online.
• Dados de cliente: a Coolies tem um sistema de Gestão das Relações com os
Clientes (CRM) que contém dados de cliente. Os dados de cliente incluem
(entre outros) detalhes do perfil (nome, idade, endereço, número de telefone),
última data de compra, favoritos e outros históricos de compras.
• Dados do programa de fidelização: os dados do programa de fidelização são
armazenados num sistema de origem diferente e ajudam a Coolies a associar
os dados dos clientes às transações de vendas.
• Dados de utilização e clickstreams de aplicações digitais: indica como os clientes
da Coolies estão a responder à estrutura e ao conteúdo das suas aplicações.
• Sensores e dados de IoT: algumas das lojas da Coolies estão equipadas com
sensores digitais para compreender o comportamento dos clientes na loja.
Alguns arquivos têm sensores de IoT instalados para contar quantos clientes
passam por cada corredor e a que horas. Existem também sensores que medem
a temperatura e a humidade nas lojas da Coolies. A Coolies utiliza estes sensores
para assegurar que produtos frescos como o leite são conservados nas condições
adequadas. Além disso, a Coolies também tem sensores para contar o número
e clientes quase em tempo real. Isto ajuda a Coolies a designar mais pessoal
durante as horas de ponta para assegurar um serviço mais rápido, para que
os clientes não tenham de esperar em longas filas.
Brainstorming do design | 111

• Outros conjuntos de dados: para melhorar os dados da Coolies e dar-lhes


outra dimensão, a equipa de dados da Coolies está a considerar extrair outros
dados, tais como dados meteorológicos, dados de mapas ou de Sistemas de
Informação Geográfica (GIS), dados de perfis de bairros suburbanos e citadinos,
e outros dados semelhantes de conjuntos de dados públicos. Estes conjuntos de
dados podem melhorar os dados da Coolies e acrescentar um maior contexto
às tendências e aos padrões de comportamento dos clientes e dos números
de vendas. Por exemplo, considere o tempo. A Coolies pode descobrir que as
vendas de determinados produtos podem estar relacionadas com determinadas
condições meteorológicas, por exemplo, um aumento na venda de gelados
durante a temporada estival. Da mesma forma, um perfil citadino com
determinadas faixas etárias e atributos de rendimento médio pode ter uma forte
correlação com os números de vendas de determinados produtos. Por exemplo,
os subúrbios onde a idade média é de 25 anos podem ter vendas mais elevadas de
produtos para o cabelo, enquanto as lojas nos subúrbios com uma idade média
de 45 anos podem vender muito menos unidades dos mesmos produtos.

Armazenamento de dados
Conforme explicado anteriormente, a Coolies precisa de ingerir dados de diversas
origens. Também estima que o tamanho dos seus conjuntos de dados atuais ultrapasse
os 400 TB com um crescimento médio de 10 a 15 GB por dia. O formato destes
conjuntos de dados também difere bastante. Alguns são altamente estruturados,
enquanto outros estão totalmente desestruturados. Um elemento comum entre
todos estes conjuntos de dados diferentes é que todos estão a aumentar rapidamente
e chegam com uma taxa de débito elevada. Para servir as necessidades da Coolies,
precisamos de um arquivo de dados que:
• Seja dimensional e elástico para crescer com as exigências da equipa de dados
da Coolies
• Seja uma plataforma segura e controlada para garantir que os ativos
e a propriedade intelectual da Coolies estão bem protegidos
• Seja compatível com outros sistemas e ferramentas existentes
• Tenha um preço razoável
• Apresente uma elevada disponibilidade
• Suporte operações de elevado débito e processamento paralelo
112 | Casos de utilização de negócios

Data science
Uma vez que todos os dados são recolhidos e armazenados num arquivo de dados
central, a equipa de dados da Coolies deverá ter uma plataforma para:
• Limpar, transformar e explorar os conjuntos de dados
• Colaborar com outros intervenientes empresariais e técnicos para detetar
padrões e tendências
• Integrar com arquitetura de inteligência artificial e runtimes para aplicar algoritmos
de machine learning nos conjuntos de dados e revelar quaisquer padrões
• Treinar e operacionalizar os novos modelos de machine learning que possam
resultar do trabalho da integração anterior
• Permitir que a equipa agende, execute e monitorize os pipelines de dados para
permitir a transformação, limpeza e integração dos dados

Dashboards e relatórios
O desenvolvimento de soluções de análise de dados pode ser visto como uma
conversação contínua entre os profissionais de dados, os intervenientes no negócio
e os próprios dados. Requer um aperfeiçoamento contínuo e o teste de hipóteses.
Como tal, é imperativo que a equipa de dados da Coolies desenvolva e mantenha
relatórios e dashboards interativos para comunicar o seu trabalho e os resultados
dos seus processos de deteção de dados à empresa.
O primeiro passo para a criação de tais relatórios e dashboards é arranjar um modelo
de dados consistente e comum que facilite um entendimento comum em toda
a organização.

A solução
A equipa de dados da Coolies decidiu utilizar o Microsoft Azure para implementar
a sua solução de análise. Entre outros aspetos, a equipa da Coolies mencionou
a escalabilidade, a conformidade e a disponibilidade regional do Azure nas regiões
da Coolies (Austrália e Japão) como os principais fatores para a tomada desta decisão.
A equipa também explicou as razões pelas quais cada um dos serviços Azure escolhidos
é adequado para o seu propósito, como veremos nas secções seguintes.
A Coolies utilizou os requisitos depurados e as ideias de brainstorming (das secções
anteriores) para criar uma estrutura para a arquitetura da solução. A equipa de dados
da Coolies criou a seguinte arquitetura (conforme ilustrado na Figura 4.1):
A solução | 113

Figura 4.1: Arquitetura da solução da Coolies

Fluxo de dados
O design na Figura 4.1 ilustra a arquitetura da solução e o fluxo de dados entre os
seus componentes individuais. Aqui, explicamos cada um dos segmentos do workflow
conforme assinalado (numerado) no diagrama anterior:
1. A Coolies precisa de ingerir muitos conjuntos de dados diversificados. Alguns deles
contêm dados estruturados e outros contêm dados não estruturados. A Coolies
irá utilizar a Capacidade do Azure Synapse Analytics para uma integração de
dados híbrida. Deste modo, a Coolies pode ingerir dados estruturados utilizando
atividades batch periódicas (5 minutos) e enviar estes dados para o Azure Data
Lake Storage Gen2.
2. Para os dados não estruturados, a Coolies irá utilizar os Azure Event Hubs para
capturar estes dados quase em tempo real e enviá-los para o Azure Data Lake
Storage Gen2. Assim, os novos dados serão disponibilizados para processamento
pela solução de análise da Coolies e permite à Coolies acionar qualquer ação
relacionada com os dados quase em tempo real (a cada 1 minuto). Os dados não
estruturados incluem dados provenientes de análises clickstream (relatórios sobre
o comportamento dos utilizadores nos canais digitais da Coolies), feeds de redes
sociais (do Twitter, do Facebook, etc.), registos e informações de rastreio dos
servidores da Coolies, e todos os dados provenientes de sensores da IoT.
114 | Casos de utilização de negócios

3. Todos os dados ingeridos irão confluir para o Azure Data Lake Storage Gen2, que
servirá de hub central para todos os dados da organização.
4. Assim que os dados não estruturados sejam ingeridos nos Azure Event Hubs, serão
enviados para o Azure Data Lake para armazenamento permanente. Esta operação
é efetuada utilizando a funcionalidade de captura de dados dos Azure Event Hubs,
que nos permitem armazenar dados de streaming no Azure Data Lake Storage Gen2
com rapidez e facilidade.
5. Os dados da Coolies ficarão alojados no Azure Data Lake Storage Gen2. Estes dados
são provenientes de diferentes origens, tendo vários níveis de qualidade e diversas
granularidades. Assim, a equipa de dados da Coolies terá de limpar, preparar,
validar e melhorar estes conjuntos de dados. Este trabalho será realizado utilizando
o conjunto do Spark do Azure Synapse Analytics. O Azure Synapse Analytics
fornece um cluster gerido do Spark para que os engenheiros de dados da Coolies
possam facilmente ligar e explorar os dados no Azure Data Lake Storage sem
terem de mover os dados para qualquer outro sistema.
6. Enquanto a equipa da Coolies está a limpar e a preparar dados no conjunto do
Spark do Azure Synapse, todos os dados (frescos/novos e históricos) precisam
de ser combinados num modelo padrão que seja fácil de consultar e servir aos
utilizadores empresariais. Para este efeito, a equipa da Coolies tenciona utilizar
o data warehouse (conjunto de SQL) do Azure Synapse Analytics. Isto permite à
equipa de dados da Coolies unir, modelar e preparar todos os dados para consumo
por utilizadores da empresa. Não só permite que os sistemas de utilizadores da
Coolies executem consultas e respondam a perguntas sobre os dados recentemente
chegados, como também combinem estes novos dados com os dados históricos
que já se encontram no data warehouse para chegar a um consenso sobre
o desempenho do negócio e os comportamentos dos clientes.
7. Graças ao Power BI, a Coolies pode não só publicar relatórios e dashboards
para utilizadores da Coolies, como também permite que cada utilizador seja um
analista de dados no respetivo domínio utilizando uma abordagem de self-service
e explorando os modelos de dados publicados. A Coolies pode utilizar modelos
de dados compostos para grandes conjuntos de dados, que se trata de uma
funcionalidade do Power BI Premium.
8. A Coolies investiu em modelos complexos utilizando o Microsoft Excel. Alguns dos
analistas de dados da Coolies gostariam de utilizar o Microsoft Excel para aceder
aos dados do Azure Synapse Analytics. Tanto no caso do Microsoft Excel como do
Azure Synapse Analytics, isto é suportado “out of the box”.

Serviços Azure
As secções seguintes irão descrever cada um dos serviços Azure que são ilustrados no
design da solução da Figura 4.1. Para cada serviço, primeiro irá explicar por que este
componente é necessário, posteriormente, por que os serviços Azure são adequados
para a Coolies e, por fim, irá mostrar um breve exemplo prático da parte principal da
implementação.
Serviços Azure | 115

Azure Data Lake Storage Gen2


Função na estrutura
O Azure Data Lake Storage Gen2 funciona como o arquivo de dados central da Coolies.
Permite que a Coolies reúna enormes quantidades de dados de diferentes origens. Além
disso, o tipo e o formato dos conjuntos de dados da Coolies variam significativamente
(estruturados, semiestruturados e não estruturados), o que requer um arquivo de dados
que não se restrinja ao mero armazenamento tabular, que é onde entra o Azure Data Lake
Storage Gen2. O Azure Data Lake Storage Gen2 pode armazenar dados sem esquemas
como blobs e pode processar diversos formatos (por exemplo, ficheiros de texto,
imagens, vídeos, feeds de redes sociais e ficheiros zipados). A capacidade de processar
formatos de dados sem esquemas permite que a Coolies ingira dados no seu formato não
processado, o que é essencial para análises avançadas, uma vez que a análise pode ser
realizada nos dados originais sem qualquer distorção de qualquer agregação de dados.
Além disso, a equipa da Coolies precisa de armazenamento elástico para um ambiente
de sandbox a fim de explorar e transformar os dados. O Azure Data Lake Storage Gen2
também pode ser usado para esse fim.
Porquê o Azure Data Lake Storage Gen2?
• A Coolies utiliza o Azure Active Directory para a gestão de acessos. O Azure
Data Lake Storage Gen2 oferece integração nativa e “out of the box” com
o Azure Active Directory para gerir o acesso aos dados, utilizando o Azure Active
Directory como um mecanismo de controlo da empresa. Deste modo, reduz
a complexidade da estrutura e melhora a segurança e a conformidade.
• Estudos existentes sugerem que o Azure Synapse Analytics é muito mais rápido
e económico do que outros fornecedores de cloud.
• Além de o custo ser baixo, o Azure Data Lake Storage Gen2 não impõe limites
à quantidade de dados que é possível armazenar. Isto significa que a equipa da
Coolies pode começar aos poucos com uma escala e a custos muito reduzidos
conforme seja necessário, sem se preocupar com quaisquer limites máximos.
• O Azure Data Lake Storage Gen2 integra-se de forma nativa com o Azure
Synapse Analytics, o Power BI e muitos outros serviços do Microsoft Azure.
Isto constitui um argumento convincente para a equipa da Coolies, uma vez
que já estão a utilizar o Power BI.
• Além de se integrar com o Azure Active Directory, o Azure Data Lake Storage Gen2
oferece as funcionalidades de segurança requeridas pela equipa de segurança da
Coolies. Entre elas, incluem-se encriptação de dados (em repouso e em trânsito),
início de sessão único, autenticação multifator, controlo de acessos detalhado
para utilizadores e grupos, e conformidade de auditoria completa através da
monitorização de cada mudança de acesso e configuração no data lake.
116 | Casos de utilização de negócios

Exemplo de implementação
Durante a ingestão de dados no Azure Data Lake Storage Gen2, é considerada uma
boa prática utilizar espaços de nome e contentores para organizar os dados no data
lake. Isto não só facilita a localização dos dados, como também ajuda na gestão do
controlo de acessos. A Figura 4.2 ilustra um exemplo da distribuição de zonas do data
lake onde um data lake é dividido em quatro zonas: Zona de Destino (ingestão), Zona
de Transição, Zona Segura e Sandbox de Análise:
• Zona de Destino: é aqui para que todos os dados (exceto os dados confidenciais)
que chegam ao data lake convergem antes de serem processados, limpos,
agregados, e assim por diante.
• Zona de Transição: é aqui que os dados serão limpos/ficarão transitoriamente
antes de serem preparados para consumo.
• Sandbox de Análise: esta zona é utilizada por cientistas e engenheiros de dados
como a sua sandbox para armazenar dados enquanto estão a processar e explorar.
• Zona Segura: é aqui que são armazenados e processados os dados altamente
sensíveis. Separar a zona de segurança das outras zonas pode melhorar a gestão
do controlo de acessos. Esta zona inclui dados confidenciais, tais como dados de
fusões e aquisições, dados financeiros e outros dados dos clientes que podem ser
difíceis de ocultar, tais como dados de sexo, idade e etnia, se conhecidos:

Figura 4.2: Exemplo da distribuição de zonas do data lake


Serviços Azure | 117

Azure Synapse Analytics


Função na estrutura
A produtividade e o tempo acelerado para a obtenção de insights que o Azure Synapse
pode trazer à Coolies é incrível. A equipa da Coolies entende o valor da experiência
unificada que reúne a ingestão de dados, a análise de big data e data warehousing —
à escala de nuvem. Esta unificação destes mundos divididos pode permitir à equipa
reduzir drasticamente o tempo de desenvolvimento dos projetos. Em vez de tentar
combinar múltiplos de serviços ou criar uma solução pontual isolada para apenas uma
destas três áreas centrais, o Azure Synapse unifica os dados, as tarefas de dados e as
equipas de dados com um serviço de análise ilimitado que faz tudo.
A equipa da Coolies considerou a adoção de outros serviços e plataformas equiparáveis.
No entanto, ao estudar as funcionalidades do Azure Synapse Analytics, a equipa da
Coolies começou a apreciar a singularidade do Azure Synapse Analytics, uma vez que
é a única plataforma no mercado que unifica a análise de big data, data warehouse
e a ingestão e visualização de dados numa única plataforma.

Porquê o Azure Synapse Analytics?


• O Azure Synapse Analytics é uma plataforma de análise de escala ilimitada que
unifica a análise de big data e data warehousing. É um serviço totalmente gerido
e dimensionável de forma dinâmica. Isto torna-o muito atrativo para a Coolies
porque significa menos infraestrutura para gerir, menos despesas gerais e um
serviço dimensionável que pode crescer com o negócio.
• Estudos existentes sugerem que o Azure Synapse Analytics é muito mais rápido
e económico do que outros fornecedores de cloud.
• O Azure Synapse Analytics oferece um runtime do Apache Spark “out of the box”
e unifica-o perfeitamente com o seu motor de SQL. Esta característica é muito
importante para a Coolies porque não só significa consultas mais simples porque
os runtimes estão integrados, mas igualmente uma melhor colaboração, uma vez
que todos os profissionais de dados (analistas, data scientists, engenheiros de
dados, etc.) podem consultar os dados com a simples e antiga SQL.
• A equipa de segurança da Coolies tem um requisito claro que especifica a
necessidade de proteger os seus ativos de dados. Uma exigência da equipa
de segurança da Coolies é o data warehouse não ser acessível ao público na
Web. Isto é suportado de forma nativa pelo Azure Synapse Analytics através
da integração do Azure Virtual Network, onde o Azure Synapse Analytics
é implementado como parte da rede da Coolies (uma rede privada virtual).
• Coolies também gostou de outras funcionalidades de segurança do Azure Synapse
Analytics. Estes incluem a integração com o Azure Active Directory, auditoria de
atividades, segurança baseada em linhas e colunas nativa, integração do ExpressRoute
e capacidades de deteção de ameaças e de encriptação de dados “out of the box”.
118 | Casos de utilização de negócios

• Algumas partes da Coolies utilizam outras ferramentas de BI, como o Power BI,
Tableau e Qlik, e queriam ter a certeza de que o novo data warehouse suporta
esta integração. O Azure Synapse Analytics é compatível com muitas ferramentas
de BI, incluindo as ferramentas de BI existentes da Coolies.
• O Azure Synapse Analytics também pode acionar o Apache Spark on demand.
Isto pode ser extremamente útil para a equipa de dados da Coolies, já que lhes
permite utilizar a mesma ferramenta de open source para trabalhar com os
seus dados dentro do Azure Synapse Analytics. Deste modo, facilita uma melhor
produtividade, uma vez que os clusters do Spark suportam várias linguagens
e arquiteturas “out of the box” (Python, R, Scala, etc.). Assim, os membros da
equipa da Coolies podem ser produtivos e permanecer satisfeitos utilizando
as ferramentas com as quais estão mais confortáveis.
• Desenvolver, implementar e gerir um data warehouse pode ser um exercício muito
complexo. O Azure Synapse Analytics brilha nesta área, uma vez que se baseia na
grande experiência da Microsoft como empresa de desenvolvimento. Parte da
razão pela qual a Coolies está tão interessada no Azure Synapse Analytics é a sua
gestão simplificada dos workloads e a excelente produtividade dos programadores.
O Azure Synapse Analytics é o único data warehouse na cloud que oferece suporte
SSMS e SSDT nativo, incluindo projetos do Visual Studio para gestão de códigos e
esquemas, que são essenciais para assegurar um ciclo de vida de desenvolvimento
simplificado e reduzir o custo total de propriedade.
• Além disso, o Azure Synapse Analytics fornece um ambiente de colaboração avançado
onde os diversos intervenientes do Coolies podem trabalhar no mesmo bloco de
notas ao mesmo tempo. Isto melhora significativamente a produtividade e fomenta
uma maior inovação, reunindo os conhecimentos de todos os membros da equipa.
• A diversidade é boa para a inovação, pelo que o Azure Synapse Analytics
suporta múltiplas linguagens e arquiteturas de programação. Os cientistas e os
engenheiros de dados da Coolies podem utilizar R, Python, SQL, Scala, Java e C#
para escrever código em Blocos de Motas graças ao suporte do Azure Synapse
para o Apache Spark. Isto é particularmente importante para a Coolies, já que
tem sido difícil recrutar e reter talento nesta área.
Integração Híbrida do Azure Synapse (Pipelines)
A função na estrutura: a Coolies, à semelhança da maioria das outras empresas,
tem muitas origens de dados. Algumas destas origens de dados residem on-premises,
enquanto outras estão na cloud. Conforme foi explicado anteriormente, a Coolies
precisa de reunir todos estes dados num só local para conseguir combinar,
correlacionar, modelar e transformar estes conjuntos de dados para detetar tendências
e insights. Isto requer a criação e gestão de muitos conectores de dados para mover os
dados dos sistemas de origem da Coolies para o arquivo de dados central (o data lake).
É exatamente aqui que o Azure Synapse brilha porque é um serviço gerido que pretende
simplificar a integração de dados para os utilizadores de todos os níveis de competência.
Serviços Azure | 119

Porquê utilizar a Integração Híbrida do Azure Synapse?


1. O Azure Synapse Pipelines fornece mais de 90 conectores de dados pré-construídos.
Deste modo, a Coolies liga os sistemas de origem a este novo data warehouse
moderno com rapidez e facilidade, sem custos adicionais. Estes conectores de
dados são criados pela Microsoft; oferecem uma integração eficiente e resiliente,
e tiram partido da rede do Microsoft Azure, que oferece até 1,5 GBs de débito. Não só
permite à Coolies um tempo rápido de comercialização, como também fornece uma
plataforma para orquestrar o movimento de dados com o mínimo de despesas gerais.
2. Além de todos os conectores de dados pré-construídos, o Azure Synapse fornece
uma interface visual que permite a todos os utilizadores desenvolver pipelines
abrangentes do movimento de dados com pouco ou nenhum código. Além
disso, o Editor Visual do Azure Synapse fornece a capacidade de integração
com repositórios de controlo de origens do Git para melhorar a flexibilidade e a
capacidade de manutenção. Esta característica agrada à equipa da Coolies, dado
que melhora a sua produtividade e ritmo de desenvolvimento, ao mesmo tempo
que reduz as despesas gerais. A utilização desta funcionalidade permite à equipa da
Coolies tirar partido das potentes capacidades de transformação de dados visuais
e data wrangling do Azure Synapse no portal visual, mantendo todas as versões de
trabalho controladas.
3. O Azure Synapse é uma ferramenta totalmente gerida que permite à equipa da
Coolies começar com pouco ou nenhum investimento e dimensionar conforme
necessário. Também significa que não há infraestruturas a gerir e a equipa da
Coolies paga apenas pela utilização
4. Além de outras, o Azure Synapse Pipelines tem as certificações ISO/IEC 27001 e 27018
e está disponível em 25 países/regiões, incluindo a Austrália e o Japão, onde a Coolies
opera. Isto faz do Azure Synapse um serviço muito atrativo para a Coolies, dado que
cumpre todos os requisitos da sua lista de verificação de segurança e conformidade.
5. O Azure Synapse fornece as ferramentas para criar pipelines de dados que são
resistentes ao desfasamento de esquema. Significa que quando a equipa da
Coolies construir pipelines para mover dados da origem A para a origem B, pode ter
a certeza de que os pipelines continuarão a ser funcionais, mesmo que o esquema
dos dados da origem A tenha mudado. Isto melhora significativamente a fiabilidade
e a resiliência dos pipelines de dados da Coolies.
6. Por fim, ao utilizar o Azure Synapse a Coolies dispõe de um único plano de controlo
para gerir todas as atividades de movimento e processamento de dados.
120 | Casos de utilização de negócios

Exemplo de implementação
Aqui está um exemplo de como a Coolies configura o Azure Synapse Pipelines para
extrair dados da sua base de dados de transações de vendas (que se encontra num
servidor do SQL do Azure) para o Azure Data Lake Storage Gen2:
1. O Azure Synapse fornece integração nativa com o Azure Data Lake Storage Gen2.
A Coolies pode ligar-se ao Azure Data Lake Storage Gen2 configurando um serviço
associado no Azure Synapse Pipelines do seguinte modo:
{
"name": "CooliesAzureDLStorageLS",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://{accountname}.dfs.core.windows.net",
"accountkey": {
"type": "SecureString",
"value": "{accountkey}"
}
},
"connectVia": {
"referenceName": "{name of Integration Runtime}",
"type": "IntegrationRuntimeReference"
}
}
}
Vale a pena referir que este exemplo contém marcadores de posição para os
principais valores de configuração, como os campos name e accountKey da conta
do Azure Storage e o nome do runtime de integração.
Serviços Azure | 121

2. Depois de criar um serviço associado no Azure Synapse Pipelines, precisamos de


ter um conjunto de dados do Azure para fazer referência a este serviço associado.
Esta operação pode ser efetuada do seguinte modo:
{
"name": "CooliesAzureDataLakeSalesDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "CooliesAzureDLStorageLS",
"type": "LinkedServiceReference"
},
"schema": [ { optional } ],
"typeProperties": {
"location": {
"type": "AzureBlobFSLocation",
"fileSystem": "{filesystemname}",
"folderPath": "Coolies/sales"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
O fragmento de código anterior utiliza o serviço associado do Azure Data Lake
Storage Gen2 para criar um conjunto de dados. Este conjunto de dados irá
criar ficheiros separados por vírgula (CSV) e irá armazená-los-á como ficheiros
comprimidos (gzip).
122 | Casos de utilização de negócios

3. Configure a base de dados do Azure SQL como um serviço associado:


{
"name": "CooliesSalesAzureSqlDbLS",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"connectionString": {
"type": "SecureString",
Azure Services | 163
"value": "Server=tcp:{servername}.
database.windows.net,1433;Database={databasename};User
ID={username}@{servername};Password={password};Trusted_
Connection=False;Encrypt=True;Connection Timeout=30"
}
},
"connectVia": {
"referenceName": "{name of Integration Runtime}",
"type": "IntegrationRuntimeReference"
}
}
}
Mais uma vez, o fragmento de código anterior tem marcadores de posição para
os seguintes parâmetros: o nome do SQL Server do Azure, o nome da base de
dados de SQL, o nome de utilizador e a palavra-passe do SQL Server e o nome
do runtime da integração. Além disso, o exemplo serve apenas para fins de
demonstração; as palavras-passe devem permanecer fora do código e devem ser
armazenadas no Azure Key Vault para assegurar a segurança.
4. Semelhante ao passo 2, é necessário configurar um conjunto de dados no Pipelines
Azure Synapse para a base de dados de vendas da Coolies. O seguinte fragmento de
código utiliza o serviço associado à Azure SQL Database para criar um conjunto de
dados que faz referência a sales_table na SQL Database da Coolies:
{
"name": "CooliesSalesDataset",
"properties":
{
"type": "AzureSqlTable",
"linkedServiceName": {
"referenceName": "CooliesSalesAzureSqlDbLS",
"type": "LinkedServiceReference"
},
"schema": [ {optional} ],
Serviços Azure | 123

"typeProperties": {
"tableName": "sales_table"
}
}
}
5. O seguinte fragmento de código configura a atividade de movimento de dados da
base de dados SQL de vendas para o Azure Data Lake. Será criada uma atividade
no Azure Synapse Pipelines, sendo feita referência aos dois conjuntos de dados que
criámos no passo 2 e no passo 4. A atividade define a base de dados SQL de vendas
do Azure como a origem do movimento de dados e o Azure Data Lake Storage Gen2
como o destino da atividade de movimento de dados:
{
"name": "CopyFromAzureSQLSalesDatabaseToAzureDataLake",
"type": "Copy",
"inputs": [
{
"referenceName": "CooliesSalesDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "CooliesAzureDataLakeSalesDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureSqlSource",
"sqlReaderQuery": "SELECT * FROM SALES_TABLE"
},
"sink": {
"type": "ParquetSink",
"storeSettings":{
"type": "AzureBlobFSWriteSetting",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
124 | Casos de utilização de negócios

Power BI
Função na estrutura
A equipa da Coolies precisa de visualizar e comunicar as suas descobertas, bem
como alguns dos dados não processados à empresa. Isto é essencial para assegurar
o envolvimento dos intervenientes do negócio e para obter feedback com rapidez
e facilidade. A Coolies também necessita de uma plataforma para permitir aos
utilizadores que utilizem relatórios de self-service e dashboards, fornecendo
as condições para explorem os dados por si mesmos.
O Power BI preenche esta função, ao permitir à Coolies visualizar os dados utilizando
uma diversidade de elementos visuais e formas, e ao permitir também aos utilizadores
empresariais e não técnicos o self-service de quaisquer necessidades de relatório
e/ou dados.
Porquê o Power BI?
O Power BI é uma oferta de Software como Serviço (SaaS) de business intelligence
que permite à Coolies converter os seus dados em elementos visuais e dashboards
interativos com rapidez e facilidade. A Coolies escolhe o Power BI não só devido às suas
capacidades de visualização, mas também para melhorar a colaboração e o self-service
para dados e relatórios, as principais funcionalidades do serviço Power BI. A equipa
de dados da Coolies resumiu os seus fundamentos para considerar que o Power BI
é adequado para este fim, da seguinte forma:
• O Power BI é uma oferta de SaaS totalmente gerida, o que significa menos
infraestrutura para a equipa da Coolies gerir.
• O Power BI simplificou a visualização e relatório de dados e pode dar condições
a qualquer utilizador da Coolies para ser um analista de dados. A experiência do
utilizador no Power BI é uma grande vantagem da plataforma, permitindo que
os utilizadores explorem os dados e dashboards interativos por si mesmos. A
Coolies espera que isso reduza as despesas gerais e os pedidos de dados à sua
equipa de dados, bem como melhore a colaboração e a interação dos utilizadores
da empresa.
• O Power BI fornece uma aplicação de ambiente de trabalho que pode ser
utilizada pelos utilizadores da Coolies para explorar dados, limpar dados e criar
elementos visuais. Esta capacidade é muito atrativa para a Coolies uma vez que
a utilização da aplicação Power BI Desktop é gratuito e não requer uma licença
comercial. Além disso, a experiência do utilizador na aplicação Power BI Desktop
e no serviço baseado na cloud do Power BI é muito semelhante, o que significa
menos treino e uma transferência de conhecimentos mais fácil.
Serviços Azure | 125

• O Power BI tem uma integração nativa com o Azure Active Directory, o que
permite que os utilizadores da Coolies utilizem as identidades existentes.
Deste modo, simplifica as implementações, melhora a governação e
reforça a segurança. Além disso, o Power BI obteve muitas certificações de
conformidade e está disponível em muitas regiões do mundo, incluindo a
Austrália, onde a Coolies está sediada.
• A Coolies tem linhas de orientação em matéria de marca e promoção bem
definidas, o que significa que todas as visualizações e dashboards devem seguir
os estilos de cores, as melhores práticas, etc., da Coolies. A Coolies acredita que
isso melhora o entendimento da marca e das informações porque os relatórios
são consistentes e familiares para o utilizador. O Power BI suporta este requisito
ao disponibilizar diversas funcionalidades, tais como temas personalizáveis,
esquemas personalizáveis e outros elementos visuais personalizados.
• O Power BI oferece integração “out of the box” com o Azure, o que permite
à Coolies iniciar qualquer preparação de dados e transformação local e à
escala para o Azure quando necessário. Além disso, o Power BI tem integração
nativa com os serviços Azure AI. Assim, a Coolies infunde as capacidades de IA
e machine learning para entregar valor com maior rapidez e facilidade, tudo
a partir do Power BI.
• O Modelo Composto do Power BI permite que a Coolies gere relatórios
avançados que obtêm dados de várias origens. Os Modelos Compostos
permitem que a Coolies inclua, sem problemas, ligações de dados de mais
de um DirectQuery ou importem ligações de dados em qualquer combinação,
simplificando as ligações de dados dos relatórios às origens de dados e ajudando
a Coolies a criar modelos de dados complexos, ao combinar múltiplos sistemas
de origem e reunir tabelas de diferentes conjuntos de dados. Além disso,
a utilização da funcionalidade Modo de Armazenamento dos Modelos Compostos
no Power BI Premium pode ajudar a melhorar o desempenho e a reduzir a carga
do back-end, porque o Power BI permite que o autor de um relatório tenha a
capacidade de especificar os elementos visuais que requerem (ou não) origens
de dados de back-end. Em seguida, o Power BI coloca na cache (armazena) os
elementos visuais que não requerem atualizações contínuas de origens de dados
de back-end, o que, por sua vez, melhora o desempenho e reduz a carga sobre
os sistemas back-end.
126 | Casos de utilização de negócios

Exemplo de implementação
Aqui está um exemplo dos dashboards dos Coolies. O objetivo dos relatórios seguintes
é comunicar o desempenho da Coolies em termos de vendas de produtos nas respetivas
categorias, o stock atual dos produtos mais vendidos, os números de vendas por ano
e a distribuição regional dos clientes da Coolies. O relatório foi criado utilizando dados
de exemplo fornecidos pela Microsoft:

Figura 4.3: Exemplo dos dashboards de desempenho do negócio da Coolies

Serviços de suporte do Azure


Além de todos os serviços Azure que foram abordados, a Coolies necessita de uma série
de outros serviços para apoiar e capacitar esta arquitetura de solução. Estes serviços
são ilustrados na secção Serviços de Suporte do design da solução na Figura 4.1. Nesta
secção, apresentamos uma breve descrição cada um destes serviços Azure.
Azure Automation
A Coolies dispõe de vários servidores de base de dados, computadores de teste
e outros servidores de suporte e pode utilizar o Azure Automation para automatizar
a configuração e instalação das atualizações nesses computadores. O Azure Automation
permite à Coolies dispor de uma forma consistente de gerir estes servidores e assegura
a segurança e a conformidade utilizando runbooks sem servidor, o que simplifica as
operações e as despesas gerais de gestão e devolve tempo à equipa da Coolies para
se concentrar na missão mais importante de deteção de insights que acrescentem
valor de negócio.
Serviços Azure | 127

Azure Key Vault


Todas as organizações têm inúmeras chaves de encriptação, palavras-passe, certificados,
cadeias de ligação e outros dados sensíveis que precisam de ser bem protegidos. A Coolies
compreende a necessidade de proteger estas informações confidenciais e geri-las de
forma segura e estruturada. O Azure Key Vault foi concebido para resolver exatamente
este problema, salvaguardando todos esses dados confidenciais num local central onde
o acesso pode ser gerido de forma segura e as chaves podem ser organizadas. O Azure
Key Vault não só melhora os controlos de segurança, como simplifica igualmente as
tarefas operacionais como a rotação dos certificado e das chaves.
Além disso, a Coolies pretende utilizar o Azure Key Vault para remover a necessidade
de os indivíduos e as aplicações terem acesso direto às chaves. A Coolies pode utilizar
a Identidade de Serviço Gerido do Azure para que os utilizadores e as aplicações possam
utilizar as chaves e as palavras-passe sem terem de manter cópias locais nos seus
computadores, melhorando assim a postura de segurança geral da Coolies, ao mesmo
tempo que simplifica a gestão dos dados secretos.

Azure DevOps
O Azure DevOps oferece à Coolies as ferramentas, as estruturas e os serviços
necessários para implementar uma prática ágil para fornecer a sua solução.
O Azure DevOps é um serviço totalmente gerido que permite à equipa da Coolies:
• Planear, monitorizar, debater e monitorizar itens de trabalho utilizando o Azure Boards.
A Coolies já adotou as práticas ágeis, onde as paredes físicas são atualizadas utilizadas
para monitorizar itens de trabalho, mas percebeu que as paredes físicas não podem
ser dimensionadas para equipas maiores e estão limitadas a nível da sua funcionalidade.
Por exemplo, a Coolies pode utilizar o Azure Boards para ligar defeitos e itens de
trabalho a alterações de código para monitorizar e melhorar a qualidade do código.
• Criar, testar e implementar continuamente alterações de código utilizando o Azure
Pipelines. O Azure Pipelines facilita as práticas ágeis como a integração e a entrega
contínuas, o que pode melhorar significativamente a qualidade e o ritmo de entrega.
O Azure Pipelines também permite que a Coolies automatize quaisquer passos de
implementação necessários para enviar as alterações de código, reduzindo assim as
despesas gerais e melhorando a confiança nas novas implementações.
• A Coolies necessita de um sistema de controlo de origens para alojar o seu
código e scripts. A Coolies gostaria de utilizar o Azure Repos para esse efeito, já
que fornece suporte de nível empresarial, um número ilimitado de repositórios
e um ambiente colaborativo para a equipa de desenvolvimento debater e rever
as alterações de código antes da fusão.
• O Azure Test Plans pode ajudar a Coolies na validação e verificação de quaisquer
alterações de código e dados para dar à Coolies maior confiança nas alterações
antes de as fundir. A Coolies pode utilizar o Azure Test Plans para testes manuais
e exploratórios, e como o Azure Test Plans faz parte do Azure DevOps, a Coolies
pode dispor de uma excelente rastreabilidade de ponta a ponta para as histórias,
as funcionalidades e os defeitos.
128 | Casos de utilização de negócios

Azure Active Directory


A Coolies utiliza o Microsoft Office 365 para a colaboração no escritório, o que significa
que já está a usar o Azure Active Directory. A Coolies não pretende ter vários servidores de
identidades a administrar e compreende que gerir os nomes dos utilizadores e as palavras-
passe é uma tarefa enorme que é melhor deixar para uma equipa bem equipada, como a
do Active Directory. O Azure Active Directory integra-se com muitos dos serviços que a
Coolies pretende utilizar, como o SQL Server, Azure Synapse Analytics, Azure Data Lake
Storage e Power BI. Deste modo, é fácil para a Coolies escolher o Azure Active Directory
para facilitar o início de sessão simples e fluido emenda em todos estes serviços, ao
mesmo tempo que melhora os controlos de segurança dos dados e aplicações da Coolies.
A Coolies também pode beneficiar da abrangente proteção de identidade do Azure
Active Directory, que inclui a deteção e a resposta a ameaças. Em geral, utilizando
o Azure Active Directory, a Coolies pode reduzir significativamente as despesas gerais
e melhorar a segurança.
Azure Monitor
A Coolies reconhece que a disponibilidade e o desempenho da sua plataforma de dados
é de extrema importância para ganhar a confiança de todos os intervenientes. Para a
conquistar, a Coolies não só precisa de recolher e armazenar a telemetria de todas as
áreas da solução, mas também de analisar e atuar em base dos dados. Isto requer um
serviço dedicado, dado que a sua implementação é um grande desafio e é exatamente
para isso que o Azure Monitor foi concebido.
O Azure Monitor é um serviço totalmente gerido que permite à Coolies recolher, analisar
e atuar fácil e rapidamente em função dos dados de todos os componentes da plataforma
de dados (incluindo serviços Azure, virtual machines, desempenho da rede e outras
origens). O Azure Monitor oferece dois tipos fundamentais de dados: os registos e as
métricas. A Coolies pode utilizar métricas para obter informações sobre o estado dos
seus serviços em qualquer altura, enquanto os registos ajudam a sua equipa a analisar
e visualizar mensagens de rastreio a partir dos componentes da solução individuais.
O Azure Monitor também oferece inúmeros gráficos e visualizações que podem ser
utilizados para visualizar o estado do sistema num instante. Por fim, a Coolies pode
utilizar o Azure Monitor para acionar ações, tais como alertas quando determinadas
condições são cumpridas (por exemplo, quando o número de erros ultrapassa um
determinado limiar, a equipa da Coolies pode ser notificada por e-mail ou SMS).

Insights e ações
Com o Microsoft Azure, a equipa de dados da Coolies conseguiu conceber, criar
e implementar a solução de forma rápida e fácil. Em duas semanas, a equipa encontrou
uma série de insights essenciais que podem ajudar a Coolies a aumentar as suas
margens de lucro. Três destes insights são listados aqui.
Insights e ações | 129

Reduzir o desperdício em 18%


Descrição: com a modelação inicial, a equipa de dados da Coolies conseguiu reduzir o
desperdício em 18%. Atualmente, a organização perde perto de 46 milhões de dólares
por ano devido ao excesso de stock de produtos com uma vida útil curta, incluindo pão
e leite. A equipa combinou dados históricos de vendas com outras origens, como dados
meteorológicos e calendários escolares, o que lhe permitiu prever a procura destes
produtos com maior precisão, levando a uma redução significativa dos resíduos.
Valor estimado do negócio: 8,28 milhões de dólares/ano
Principais origens de dados: transações de vendas (lojas online e física), dados de loja
(locais de armazenamento e stock ao longo do tempo), dados meteorológicos, dados de
perfil suburbano, calendários escolares e calendário de feriados oficiais.
Ações: os intervenientes empresariais da Coolies ficaram muito impressionados e
quiseram implementar isto rapidamente. Com o Azure Synapse Analytics e o Power BI,
a equipa de dados da Coolies conseguiu rapidamente implementar a solução para ser
utilizada pelos gestores da loja. O resultado é que os gestores das lojas da Coolies têm
agora um dashboard interativo que pode prever as vendas com precisão e fornecer
recomendações para a quantidade de stock a ter para cada produto.
Pipeline de dados: eis o pipeline de dados simplificado para esta iniciativa:

Figura 4.4: Pipeline de dados para a iniciativa 1 (reduzir os resíduos)


130 | Casos de utilização de negócios

As tendências das redes sociais impulsionam vendas em 14%


Descrição: a equipa de dados da Coolies desenvolveu uma hipótese de que as
tendências das redes sociais podem aumentar as vendas. A equipa realizou a deteção
inicial dos dados para descobrir que esse padrão existe de facto. Curiosamente,
a equipa descobriu que conciliar o timing das atividades de marketing da Coolies
com as tendências das redes sociais pode ajudar a melhorar as vendas em 14%.
Um exemplo claro disso foi o que a equipa encontrou nos dados do período estival
na Austrália, em 2019. Em janeiro desse ano, houve uma enorme tendência nas redes
sociais relacionada com a alimentação saudável. Esta tendência não foi organizada pela
Coolies. Houve mais de 4,5 milhões de australianos que enviaram tweets, gostaram,
partilharam ou comentaram no Twitter e nas publicações do Facebook utilizando a
hashtag #BeHealthy. Por coincidência, a Coolies realizou uma campanha de marketing
sobre produtos para saladas de frutas. A equipa descobriu que esta campanha de
marketing foi um grande sucesso e aumentou as vendas em mais de 25%, o que é
muito superior ao aumento médio esperado de 5-10%.
Valor estimado do negócio: 15,4 milhões de dólares/ano (com base num aumento de
14% para os produtos aplicáveis)
Principais origens de dados: feeds de redes sociais (Twitter, Facebook e Instagram),
transações de vendas (lojas online e física), dados de loja (localizações das lojas e stock
ao longo do tempo) e dados da campanha de marketing.
Ações: depois de debater os resultados com a equipa de marketing da Coolies, ficou
acordado que poderiam reproduzir o sucesso da promoção de janeiro de 2019, se
monitorizassem e alinhassem as suas promoções com as tendências das redes sociais.
A equipa de dados da Coolies implementou o pipeline de dados, conforme ilustra
a Figura 4.5, como um dashboard interativo e em tempo real para informar tanto
a equipa de marketing da Coolies como os gestores de loja.
Conclusão | 131

Pipeline de dados: eis o pipeline de dados simplificado para esta iniciativa:

Figura 4.5: Pipeline de dados para a iniciativa 2 (aumentar as vendas)

Conclusão
Já observou como a Coolies (ou qualquer outra organização) pode tirar partido do
Microsoft Azure para detetar insights do cliente e acrescentar valor quase em tempo
real. O Microsoft Azure oferece uma ampla gama de serviços para a gestão e análise
de dados e visa simplificar o processo de desenvolvimento, ao mesmo tempo que eleva
a fasquia da qualidade e do desempenho.
Além disso, o Microsoft Azure oferece muitos serviços de dados e análise como
ofertas totalmente geridas, o que significa menos despesas gerais para a Coolies
(e qualquer outra organização). A outra vantagem de utilizar o Azure sem servidor é que
as organizações e as equipas podem começar aos poucos sem grandes investimentos
e aumentar verticalmente à medida que a procura cresce. Trata-se de uma excelente
abordagem de negócio, uma vez que reduz os riscos de investimento inicial, ao mesmo
tempo que atenua o peso da aprovação burocrática para as grandes despesas no início
de um projeto de dados.
Por fim, o Microsoft Azure fornece uma grande quantidade de documentação e
materiais de aprendizagem online e pretende quebrar a barreira inicial, oferecendo um
crédito gratuito que pode ser utilizado por qualquer equipa ou indivíduo para começar
a aprender e criar com o Azure hoje mesmo.
132 | Casos de utilização de negócios

Caso de utilização 2: Utilizar análises avançadas no Azure


para criar um aeroporto inteligente
Najad é uma grande cidade no norte do Egito. O principal aeroporto da cidade,
o Aeroporto Internacional de Najad (NIA), serve 25 milhões de passageiros por ano,
o que equivale a 70 000 passageiros por dia. É o aeroporto mais movimentado do Egito
e regista uma média de 200 000 voos por ano.
A administração do NIA espera adotar a análise de dados no Azure para melhorar
o planeamento da capacidade e a qualidade do serviço. O objetivo é utilizar dados para
resolver problemas operacionais que estão atualmente a dificultar a capacidade do NIA
de usar plenamente as suas infraestruturas e recursos. Por sua vez, isto irá melhorar
a satisfação dos clientes e permitir que o NIA expanda as suas operações servindo mais
passageiros e aviões.
As secções seguintes irão definir os problemas que o NIA está a enfrentar e explorar
algumas ideias de design. Por fim, irá criar uma possível arquitetura de solução no
Microsoft Azure que possa resolver este problema e explicar por que motivo o Azure
é a plataforma ideal para essa solução.

O problema
Para definir corretamente o problema do negócio, primeiro é necessário considerar
os desafios na perspetiva do negócio. Depois, irá analisar os problemas técnicos que
impedem a capacidade do aeroporto de evoluir.

Desafios do negócio
Conforme mencionado, o NIA serve dezenas de milhões de passageiros todos os
anos. Está previsto que o volume de passageiros aumente cerca de 20% nos próximos
3-5 anos. Em 2019, o aeroporto sofreu um prejuízo superior a 370 milhões de dólares
devido a ineficiências operacionais. Incluiu custos por atrasos dos voos devido ao
congestionamento e às longas filas, a perda de oportunidades de venda devido à má
experiência dos passageiros, o mau planeamento dos níveis de pessoal e subutilização
dos ativos do aeroporto.
A CIO do NIA, Zara Hassan, é relativamente nova (só está no NIA há 6 meses) e tem
formação em dados e business intelligence. Zara tem uma visão para transformar esta
enorme ineficiência no NIA numa oportunidade de negócio. Apresentou um caso de
negócio ao conselho de administração do NIA para fazer pequenos investimentos
incrementais em análises avançadas para reduzir os custos operacionais globais do
aeroporto, melhorando ao mesmo tempo a experiência dos clientes.
O problema | 133

Como visionária, Zara compreende que para que o aeroporto tenha sucesso, deve
passar da observação de relatórios históricos à previsão do futuro. Ela pretende que
a sua equipa ajude a administração do aeroporto a prever os atrasos nos voos e a
atenuar essas ocorrências. Zara acredita que se a administração aeroportuária tiver
acesso às ferramentas adequadas, então será possível melhorar o planeamento da
capacidade, a afetação de recursos e a segurança.
A abordagem proposta consiste em usar os dados e a inteligência artificial para modelar
passageiros, voos, bagagens, ativos e outros conjuntos de dados para poder prever com
confiança o volume de passageiros e o movimento das multidões, o que, por sua vez,
permitirá ao aeroporto melhorar as suas operações e reduzir os custos.
Os desafios de negócio enfrentados pela equipa de análise de dados do NIA podem ser
resumidos do seguinte modo:
• O primeiro grande desafio para a administração aeroportuária é melhorar
o planeamento da capacidade. Atualmente, a equipa de liderança do NIA
toma estas decisões com base em pressupostos e experiências anteriores,
o que não reflete necessariamente a realidade. Até agora, o NIA não tem tido
uma abordagem orientada por dados consistente para prever o número de
passageiros que podem esperar todos os dias. A precisão na previsão do número
de passageiros esperados é essencial para o planeamento da capacidade,
como a gestão dos níveis de pessoal e a aquisição de equipamentos, bem como
o planeamento de melhorias da infraestrutura. Além disso, o NIA não dispõe de
uma solução para prever as companhias aéreas que podem atrasar-se ou prever
o número de profissionais de segurança que o aeroporto poderá necessitar
num determinado dia para servir os passageiros. Isto resulta em sobrelotação,
longas filas e na utilização ineficiente das infraestruturas. Estima-se que o mau
planeamento da capacidade tenha custado ao NIA cerca de 160 milhões de
dólares no ano passado. Acrescente a esses custos novos ativos como veículos
e carrinhos que o aeroporto comprou devido à necessidade percebida, enquanto
na realidade apenas precisavam de melhorar a utilização dos ativos existentes.
• A afetação de recursos é outra das principais preocupações da administração
do NIA. Os passageiros têm de aguardar no aeroporto em longas filas, seja na
alfândega ou nos balcões de check-in das companhias aéreas. A maior parte
destes longos períodos de espera deve-se à deficiente afetação do pessoal do
NIA a diferentes áreas do aeroporto. A administração do NIA quer melhorar a
afetação de recursos, o que iria melhorar a satisfação dos clientes.
• As lojas de comércio e duty-free do aeroporto constituem uma parte significativa
das receitas. O NIA dispõe de uma série de grandes cartazes, onde são utilizadas
as informações dos clientes para oferecer algumas promoções ocasionais.
A administração do NIA gostaria de melhorar a participação dos clientes e,
consequentemente, as oportunidades de negócio nestas lojas do aeroporto.
134 | Casos de utilização de negócios

• Uma grande parte do atendimento ao cliente consiste em fornecer aos clientes


as informações de que precisam no momento oportuno. Deslocar-se por
um aeroporto pode ser uma experiência muito cansativa e também pode ser
stressante quando os passageiros estão atrasados ou o voo está atrasado ou
foi cancelado. Portanto, o NIA precisa de atualizar o estado/atrasos de voo
quase em tempo real. Isto requer que a administração do NIA pense em formas
criativas e inovadoras de disponibilizar as informações relevantes aos clientes no
momento oportuno. Desse modo, irão reduzir a confusão e o stress do cliente
e melhorar o atendimento ao cliente no geral.
• A longo prazo, o NIA precisa de uma revisão da infraestrutura, com vista a
resolver o problema do congestionamento, que causou pequenos acidentes no
passado e custou dinheiro ao aeroporto, ao mesmo tempo que teve um impacto
negativo na experiência dos clientes. Contudo, como solução de curto prazo
para o futuro mais imediato, o NIA pretende melhorar o fluxo de passageiros
e diminuir o congestionamento usando adequadamente os recursos de que
dispõe. O congestionamento prejudica o fluxo de passageiros e cria riscos
para a segurança quando muitas pessoas são obrigadas a passar por pequenos
corredores e/ou passagens, em particular no caso dos idosos, bebés e pessoas
com deficiências físicas. Isto cria incidentes de segurança e cada um dos alertas
e incidentes de segurança custa dinheiro ao aeroporto, põe em perigo a vida dos
passageiros e tem um impacto negativo na experiência do cliente. O aeroporto
pretende melhorar o fluxo de passageiros para diminuir o congestionamento
e melhorar a segurança.
Agora que já conhece os principais pontos de tensão que o lado empresarial do NIA
espera resolver, terá de considerar os desafios técnicos para poder começar a delinear
uma solução.

Desafios técnicos
Inexistência de uma fonte de informação centralizada: um dos principais problemas
que a CIO do NIA está a tentar resolver é o facto de o aeroporto não ter atualmente
uma fonte de informação centralizada em termos de origens de dados. Atualmente, o
aeroporto depende de relatórios de vários sistemas internos antigos e de parceiros. Em
geral, estes relatórios abrangem aspetos operacionais do dia e da semana anteriores e
têm números contraditórios. Por exemplo, os dados de voo estão atualmente na posse
das transportadoras aéreas individuais. O NIA tem mais de 35 companhias aéreas,
cada uma delas com os seus próprios sistemas e terminologias específicas, o que torna
extremamente difícil para a administração do NIA obter relatórios credíveis atempados,
quanto mais operações orientadas por dados.
O problema | 135

Latência na obtenção de dados e relatórios: como o NIA não detém o controlo sobre os
dados de voo e carga, depende dos parceiros para gerar, agregar e enviar os relatórios
das operações. Normalmente, estes relatórios sofrem atrasos de dias ou semanas,
reduzindo de forma significativa a capacidade da organização atuar com base nos
insights dos relatórios e obrigando o NIA a ser sempre reativo nas suas operações,
em vez de planear de antemão. Por exemplo, se for apresentado um relatório à
administração aeroportuária que mostra que houve longas filas responsáveis por
atrasos nos voos de ontem, a administração aeroportuária não pode alterar a situação
dado que já aconteceu há algum tempo. O acesso atempado a destes dados é essencial
para o NIA e quase todas as outras organizações.

Disponibilidade e acesso dos dados: a inovação requer explorar possibilidades e


experimentar opções. Em termos de dados, isto requer que o NIA explore, melhore
e correlacione os dados de voo e passageiros com origens de dados externas.
Infelizmente, o NIA não pode fazer nada disto hoje, porque os dados estão dispersos
por muitos sistemas isolados que o aeroporto não controla.
Escalabilidade: o NIA dispõe atualmente de um SQL Data Warehouse que está alojado
no seu datacenter virtual. A equipa da administração tem-se mostrado relutante em
investir neste data warehouse porque não possui todos os dados. Isto torna o atual
data warehouse obsoleto porque não ajuda o negócio a encontrar os insights de
que o aeroporto precisa. Além disso, este atual SQL Data Warehouse não dispõe da
capacidade de ingerir e/ou reter todos os dados que o NIA pode recolher.
Segurança: o NIA tem políticas claras e rigorosas para proteger os seus dados e todos
os dados dos seus clientes. O aeroporto é obrigado a passar nas certificações ISO/IEC
27001 e ISO/IEC 27018 para assegurar que as medidas de segurança são devidamente
aplicadas para proteger o aeroporto, os seus fornecedores, os seus clientes e todos
os intervenientes. O NIA tem de assegurar todos estes requisitos de segurança em
qualquer potencial solução.
Operacionalidade dos dados: para que quaisquer dados sejam úteis, devem ser
facultados aos utilizadores relevantes no momento certo. Atualmente, o NIA transmite
avisos e alarmes aos passageiros através de anúncios áudio, bem como em alguns
grandes monitores colocados em alguns locais à volta do aeroporto. Esta abordagem
é altamente ineficiente porque cria ruído e não considera o contexto de quem é o
utilizador ou o que quer saber. O NIA reconhece agora que necessita de redobrar os
seus esforços não só para melhorar os dados e a eficácia dos relatórios, mas também
a forma como os relatórios são fornecidos aos utilizadores.
Com base nestes requisitos, a equipa de business intelligence do NIA e Zara, concordam
em definir a declaração do problema da seguinte forma:

O NIA está a perder mais de 350 milhões de dólares por ano devido a ineficiências
operacionais, incluindo longas filas, falta de pessoal e subutilização dos ativos do
aeroporto. A equipa de business intelligence do NIA irá trabalhar para fornecer
ferramentas de análise de dados (dashboards, relatórios e aplicações) que ajudam
o aeroporto a otimizar as operações e a remover ineficiências.
136 | Casos de utilização de negócios

Brainstorming do design
Depois de definir o problema e articular os desafios técnicos e empresariais, as
próximas secções irão ajudá-lo a explorar algumas ideias para encontrar um design
da solução para o NIA.

Origens de dados
Os dados estão no centro de qualquer solução de análise. Como tal, é necessário
começar por pensar nos diferentes tipos de dados que o NIA iria precisar. Em seguida,
deve pensar num design que reúna estes dados. O NIA necessita de recolher dados
a partir das seguintes origens:

• Dados aduaneiros: os dados aduaneiros retêm informações sobre os passageiros


e as suas declarações à medida que entram ou saem do país. Atualmente, os
dados aduaneiros estão na posse de sistemas externos. No entanto, o aeroporto
pode extrair esses dados e integrá-los nos seus sistemas. O mecanismo atual de
integração com o sistema de dados aduaneiros está a utilizar um dump do ficheiro
agendado para um servidor de ficheiros. Isto pode ser utilizado pelo NIA para
extrair os dados aduaneiros para a sua nova plataforma.
• Dados de companhias aéreas/voos: atualmente, os sistemas individuais das
companhias aéreas detêm os dados dos passageiros, das viagens, dos horários de
check-in e outros detalhes relacionados. Embora estes dados sejam detidos pelos
sistemas das companhias aéreas, o aeroporto pode integrar-se com estes sistemas
utilizando APIs de integração. A implementação específica desta integração irá
variar com base das companhias aéreas individuais, mas o aeroporto necessita
de obter estes dados quase em tempo real.
• Dados dos sistemas de estacionamento: o aeroporto tem sensores em todos os
parques de estacionamento que contam os automóveis que entram e saem. Os sistemas
de estacionamento também têm uma indicação em qualquer ponto de quantos lugares
estão vagos e onde. Estes dados terão de ser ingeridos com outras origens.
• Fluxos de vídeo e IoT: o NIA dispõe de uma série de câmaras de monitorização de
tráfego que estão instaladas em todas as instalações. Estas câmaras enviam streaming
de vídeo em direto e são utilizadas pela sala de controlo para encaminhar os recursos
e adaptar os procedimentos operacionais para lidar com o tráfego. O aeroporto
também dispõe de sensores de IoT instalados perto das portas de embarque para
indicar o estado de cada porta. Também existem sensores que visam monitorizar
a distribuição das multidões no aeroporto. Os dados de todas estas origens (IoT e
câmaras) podem ser transmitidos para análise em tempo real a fim de fornecer à
administração do NIA informações úteis à medida que surgem problemas de tráfego.
• Dados dos sistemas de bagagem: o aeroporto dispõe de um sistema interno que
é usado para gerir todos os dados de bagagens, incluindo que bagagens chegaram,
em que voo e onde estão agora. O aeroporto também serve empresas de logística
e todos os dias recebe vários voos de carga. É importante recolher e analisar todos
os dados relevantes para servir estas empresas de logística para a gestão dos fretes.
Brainstorming do design | 137

• Feeds das redes sociais: para prestar um bom atendimento ao cliente, é essencial
que o NIA analise os sentimentos e os feedbacks dos passageiros, dado que
é expectável os passageiros utilizarem as plataformas de redes sociais para
partilhar as suas experiências. Deste modo, ajuda o NIA a melhorar os seus
serviços e a resolver imediatamente quaisquer problemas relacionados.
• Outras origens de dados: conforme explicado no Caso de utilização 1, é muito
comum na análise de dados melhorar os conjuntos de dados existentes com
outras origens externas de dados para fornecer mais contexto a quaisquer
tendências ou padrões identificados. Isto é especialmente verdade para as
operações aeroportuárias onde a situação pode ser fortemente afetada por dados
meteorológicos, temporadas festivas e outros fatores semelhantes. O NIA terá
de ingerir muitas destas origens de dados externas para complementar os seus
próprios dados operacionais.

Armazenamento de dados
O aeroporto estima que os dados existentes atuais rondem os 310 TB, o que não inclui
todos os dados dos parceiros que é necessário recolher e armazenar. Para além disso,
o aeroporto pretender extrair os itens de streaming das câmaras, bem como os feeds
das redes sociais, o que poderia adicionar mais 15 GB de dados por dia com base em
números históricos. Isto requer um serviço de armazenamento de dados de elevada
escalabilidade que possa adaptar-se de forma elástica aos volumes que aumentam
rapidamente. Para responder a este requisito, faz sentido utilizar um serviço baseado
na cloud, como o Azure Data Lake Storage, para assegurar a escalabilidade elástica
e a capacidade de armazenar dados em vários formatos.

Ingestão de dados
Para assegurar que os dados são disponibilizados de forma atempada ao pessoal do
aeroporto e aos clientes, devem ser ingeridos a partir de origens internas e externas
com rapidez e eficiência. Com base nas origens de dados que foram referidas, a solução
precisa de atender a várias formas de ingestão de dados, incluindo o carregamento
de dumps de ficheiros, o processamento de fluxos de dados em tempo real a partir
das redes sociais e das câmaras de monitorização, e a extração de dados através da
chamada de APIs externas. A equipa de dados do NIA pode criar a sua própria solução
de integração e ingestão, o que seria muito dispendioso e exigiria muito tempo de
desenvolvimento, ou utilizar uma ferramenta de ingestão e orquestração de dados
baseada na cloud, como o Azure Data Factory (ADF). O ADF simplifica o processo de
ingestão de dados oferecendo mais de 80 conectores de dados pré-criados, que podem
ser utilizados para se integrar com uma variedade de sistemas de origem, tais como
bases de dados de SQL, armazenamento de blobs e ficheiros simples.
138 | Casos de utilização de negócios

Segurança e controlo de acessos


A solução necessita de fornecer os controlos de segurança adequados à administração
do NIA para que os dados possam ser protegidos. Compreensivelmente, o aeroporto
tem uma longa lista de intervenientes que necessitam de ter acesso a dados, incluindo
o pessoal do aeroporto, as empresas de segurança, as tripulações, os passageiros e os
parceiros. Como tal, a solução precisa de permitir que o NIA forneça segurança ao
nível da linha para assegurar que os utilizadores apenas têm acesso aos seus dados.
Isto requer um sistema de gestão detalhado de controlo de acessos incorporado
na plataforma escolhida para que a equipa de business intelligence do NIA não
necessite de gastar muito tempo a preocupar-se com a segurança. O foco da equipa
de business intelligence do NIA deve ser a obtenção dos insights que possam ajudar
na administração aeroportuária.

Detetar padrões e insights


Uma parte essencial da estratégia de Zara é capacitar o negócio para tomar decisões de
forma inteligente. Esta inteligência é assumida como adquirida explorando e detetando
tendências e padrões nos dados. Aqui, o desafio principal reside onde e como criar
estes modelos de machine learning. A criação destes modelos requer trabalho com
muitos conjuntos de dados de grande dimensão e um conjunto elástico de recursos
de computação. A equipa reconhece o desafio que tem pela frente e está a tentar
utilizar os clusters geridos do Apache Spark para capacitar os seus engenheiros de
dados. A equipa ficou impressionada com a escalabilidade, a segurança e o amplo
apoio em termos de ferramentas e arquiteturas no Azure Synapse Analytics.

A solução
Com a ajuda da equipa de business intelligence, Zara, a CIO do NIA, concordou
em utilizar o Microsoft Azure como fornecedor de cloud para criar a nova solução.
Resumiram o seu raciocínio do modo que explicamos em seguida.

Porquê o Azure para o NIA?


• O NIA já utiliza tecnologias da Microsoft como o Windows 10, Office 365
e outras ferramentas. O Azure tem uma melhor integração nativa com todos
estes serviços do que qualquer outro fornecedor de cloud. Assim, faz todo
o sentido utilizar o Azure. Além disso, o NIA está interessado em tirar partido
da Open Data Initiative (ODI), que permite às organizações entregar insights de
negócio excecionais aliando dados comportamentais, transacionais, financeiros
e operacionais num único arquivo de dados. A iniciativa simplifica a criação de
modelos de dados comuns em toda a organização e foi desenvolvida em conjunto
pela Adobe, Microsoft e SAP.
A solução | 139

• Recorrendo ao Azure, o NIA pode continuar a utilizar o mesmo servidor de


identidade centralizado, que é gerido utilizando o Azure Active Directory para
o Office 365. Isto significa uma melhor segurança para o NIA e menos despesas
gerais na criação e gestão de novas contas de utilizador.
• O Azure tem mais datacenters regionais do que os outros principais
fornecedores de cloud, o que permite ao Azure fornecer maior resiliência
e disponibilidade do serviço ao NIA. Além disso, o Azure é o único fornecedor de
cloud que tem um datacenter regional em África, que é onde o NIA está sediado.
Isto faz do Azure a escolha perfeita, pois cumpre todos os requisitos.
• A equipa de business intelligence do NIA descobriu que utilizar o Azure é mais
rentável do que utilizar outros fornecedores de cloud. O Azure Synapse Analytics
é até 14 vezes mais económico do que os serviços do AWS ou Google, conforme foi
explicado primeiro caso de utilização. Além disso, o Azure fornece a capacidade de
utilizar instâncias reservadas para virtual machines e instâncias de computação,
o que pode proporcionar descontos ainda maiores. Além disso, ao utilizar o seu
contrato empresarial existente com a Microsoft, o NIA pode obter ainda mais
descontos em todos os preços de revenda dos serviços Azure, o que dificulta
bastante a justificação da escolha de qualquer outro fornecedor de cloud.
• O NIA também considerou o histórico da Microsoft em termos de tecnologias
e experiência de programação como uma grande vantagem para o Azure.
Como empresa de desenvolvimento de software, a Microsoft oferece a melhor
experiência de programação, fazendo uso da sua vasta propriedade intelectual
neste domínio. Isto significa que o NIA pode ter uma boa experiência de
desenvolvimento e implementação ao utilizar o Azure.
• O Azure obteve mais de 30 certificações de conformidade, incluindo ISO/IEC
27001 e ISO/IEC 27018, que também são exigidas pelo NIA. Acrescente-se a isto
o facto de o modelo de negócio do Azure não se basear na utilização ou venda de
dados dos clientes, que faz parte do modelo de negócio de outros fornecedores
de cloud. Isto dá maiores garantias ao NIA e ao seu conselho de administração
de que os seus dados e os dados dos seus clientes estão bem protegidos.
• O NIA também espera utilizar o Azure Stack, que fornece ao aeroporto
a capacidade de alojar aplicações e serviços on-premises e na cloud utilizando
de forma fluida a mesma infraestrutura de base, que é alimentada pelo Azure
e Azure Stack.
• Por último, o NIA pretende ter a capacidade de escolher uma combinação
de PaaS, SaaS e ferramentas de open source. O Azure permite que o NIA faça
exatamente isso oferecendo excelentes serviços PaaS e SaaS, como o Azure
Data Lake, o ADF e outros, ao mesmo tempo que suporta a integração nativa
com serviços de open source, como o Azure Synapse Analytics.
140 | Casos de utilização de negócios

Arquitetura da solução
Agora que a equipa de BI aperfeiçoou os requisitos e foi escolhida uma plataforma de
cloud, chegou o momento de criar um design seguro e escalável. A equipa de business
intelligence do NIA optou pela seguinte arquitetura da solução:

Figura 4.6: Arquitetura da solução do NIA

O design na Figura 4.6 ilustra a arquitetura da solução e o fluxo de dados entre os seus
componentes individuais. Eis uma explicação para cada um dos segmentos do workflow,
conforme assinalado (numerado) no diagrama:
1. Os dados estruturados como os Dados das Companhias Aéreas, Dados Aduaneiros
e Dados de Bagagens são ingeridos utilizando o Azure Data Factory. Isto inclui
outras origens de dados, tais como dados dos sistemas de estacionamento e dados
meteorológicos. O ADF oferece a capacidade ao NIA de configurar um runtime de
integração que pode ser utilizado como um gateway para se ligar às origens de
dados on-premises do NIA a partir do Azure.
2. Todos os dados não estruturados, incluindo dados de Sensores de IoT, streaming de
Vídeo de Tráfego e feeds das Redes Sociais serão ingeridos utilizando os Azure Event
Hubs, o que fornece a captura direta de dados ao Azure Data Lake Storage Gen2.
Arquitetura da solução | 141

3. O Azure Data Factory envia os dados estruturados ingeridos para o Azure Data
Lake Storage Gen2 para armazenamento.
4. A equipa de dados do NIA vai adotar o Azure Event Hubs para ingerir o streaming
de dados e capturar os dados ingeridos com rapidez e facilidade no Azure Data
Lake Storage Gen2. A equipa tira partido da funcionalidade de captura de dados
dos Azure Event Hubs para armazenar os dados no data lake.
5. Utilizando blocos de notas, os engenheiros de dados do NIA poderão posteriormente
ler, limpar, transformar e modelar os dados utilizando o runtime do Apache Sparks no
Azure Synapse Analytics.
6. Os dados limpos que estão prontos a ser consumidos são posteriormente enviados
do Azure Synapse para o Azure Cosmos DB. Isto inclui os mais recentes dados de
voo e de bagagem. As aplicações aeroportuárias e as APIs podem então retirar estes
dados diretamente do Cosmos DB para servir os passageiros e o pessoal.
7. O Power BI também está configurado para ler conjuntos de dados mais extensos
diretamente a partir do Azure Synapse. Exemplos dos dados que serão enviados
através deste mecanismo incluem os resultados da descodificação do fluxo de
vídeos de tráfego para criar mapas térmicos da multidão.
8. O Azure Machine Learning é utilizado para gerir os modelos de machine learning,
conjuntos de dados, experimentações e novas imagens de modelos. O Azure
Machine Learning tem integração nativa com o Azure Synapse Analytics.
9. O Azure Machine Learning é utilizado para treinar e criar modelos de machine
learning. Os modelos resultantes são armazenados como imagens do Docker no
Azure Container Registry. As imagens do Docker são normalmente utilizadas
como uma forma de empacotar modelos de machine learning com todas as suas
dependências (bibliotecas, código fonte e ficheiros de configuração) como um único
pacote implementável. Deste modo, melhora o ciclo de vida de desenvolvimento
e reduz os erros de implementação.
10. O Azure Kubernetes Service está a configurado com a implementação para tirar
as novas imagens do modelo de machine learning do Azure Container Registry
e executar pods de Kubernetes. Isto permite aos modelos de machine learning
gerar previsões mediante a execução de meras chamadas de HTTP. Exemplos
dos modelos de machine learning incluem um motor de recomendação para a
atribuição de portas de embarque e um modelo de machine learning de previsão
de procura de estacionamento.
142 | Casos de utilização de negócios

11. A equipa de business intelligence do NIA pode implementar os novos modelos de


machine learning através de aplicações Web, que podem ser alojadas no Azure
Kubernetes Service. Estas aplicações Web podem então interagir com o Azure Cosmos
DB para guardar dados de inferência de machine learning (como quais são as ações
recomendadas ao pessoal do aeroporto), bem como para servir dados organizados, tais
como dados de horários de voo e de bagagem. Passengers Hub e Airport Brain são
exemplos destas aplicações Web. O Passengers Hub foi concebido para ser o único
portal central para servir todos os dados de passageiros, incluindo detalhes de voo,
números de porta de embarque, balcões de check-in e recomendações aos passageiros.
Os passageiros podem ver todas estas informações no seu dispositivo móvel, fazendo
download da aplicação móvel do aeroporto. Airport Brain foi o nome atribuído ao
novo portal central para o pessoal da administração aeroportuária. O objetivo é dotar
a administração do NIA de ferramentas que permitem operações eficientes. O portal
utiliza os dados para dar recomendações sobre a atribuição de portas de embarque,
os níveis de pessoal e a distribuição de ativos do aeroporto.
12. Tanto o Passengers Hub como o Airport Brain utilizam os dados organizados
que estão armazenados no Azure Cosmos DB. O Azure Cosmos DB é igualmente
utilizado para armazenar tipos de dados específicos da aplicação, como sessões
e alertas dos utilizadores. Tudo isto é possível graças à elevada reatividade e ao
rápido motor do Azure Cosmos DB.
13. O Passengers Hub e o Airport Brain requerem ambos visualização de dados.
O Power BI é utilizado para criar estes relatórios e, em seguida, utilizar a
funcionalidade de incorporação de páginas Web do Power BI para apresentar os
relatórios do Power BI nas novas aplicações Web. Os dados organizados incluem
informações relacionadas com os passageiros, como os dados de voo, quaisquer
atrasos previstos e informações sobre as bagagens.
14. O dashboard do Power BI serve relatórios e elementos visuais que combinam dados
do Azure Cosmos DB com dados organizados do Azure Synapse Analytics.

Serviços Azure
Tal como primeiro caso de utilização, as secções seguintes irão descrever cada um dos
serviços Azure que são ilustrados na Figura 4.6. Primeiro irão explicar por que cada
serviço é necessário, por que é adequado para o NIA, e depois, finalmente, mostram um
breve exemplo prático da principal parte da sua implementação. Para evitar repetições,
os serviços Azure que foram abrangidos no primeiro caso de utilização não serão
mencionados, a menos que o NIA tenha requisitos específicos para esse serviço.

Azure Synapse Analytics


Função na estrutura
O Azure Synapse serve como a plataforma unificada para a análise de big data, bem
como para data warehousing. O Azure Synapse é necessário para fornecer o poder de
computação requerido para processar os dados e fomentar uma maior colaboração
entre os inúmeros intervenientes.
Serviços Azure | 143

Porquê o Why Azure Synapse?


Além de todas as vantagens que foram abrangidas no Caso de utilização 1, o Azure
Synapse suporta múltiplas linguagens e arquiteturas de machine learning (como o
TensorFlow e PyTorch), e integra-se com muitas ferramentas de open source. A equipa
de business intelligence do NIA necessita de uma plataforma que consiga processar
os workloads de engenharia de dados e data science. O Azure Synapse foi concebido
para servir este fim, permitindo aos engenheiros de dados limpar, fundir, transformar e
organizar dados, ao mesmo tempo que capacita os data scientists para utilizar qualquer
uma das arquiteturas populares de machine learning, como o TensorFlow ou PyTorch.
Exemplo de implementação
O fragmento de código seguinte configura uma ligação com o Azure Cosmos DB a
partir de um bloco de notas do Spark utilizando o conector do Azure Cosmos DB. O
código de Python seguinte inclui um marcador de posição para a chave principal da
instância do Azure Cosmos DB e assume que o NIA tem uma instância do Azure Cosmos
DB denominada NIAAnalytics, que tem uma coleção chamada flights_data. O código
guarda um DataFrame (Spark DataFrame) flights no Azure Cosmos DB:
# Config to connect to Cosmos db

config = {
"Endpoint": "https://NIAairport.documents.azure.com:443/",
"Masterkey": "{masterKey}",
"Database": "NIAAnalytics",
"Collection": "flights_data",
"Upsert": "true"
}

# Writing flights data from DataFrame to Azure Cosmos db

flightsDf.write.format("com.microsoft.azure.cosmosdb.spark").
options(**config).
save()
144 | Casos de utilização de negócios

Azure Cosmos DB
Função na estrutura
O Azure Cosmos DB serve dois objetivos principais: armazena todos os dados de
aplicações como o Passengers Hub e Airport Brain, sendo também utilizado para
servir dados organizados prontos a serem consumidos pelo pessoal do aeroporto
e intervenientes externos (como os passageiros).

Porquê o Azure Cosmos DB?


Existem muitas opções para armazenar dados organizados e de aplicações do NIA. No
entanto, a equipa de business intelligence do NIA optou pelo Azure Cosmos DB pelas
seguintes razões:

• O Azure Cosmos DB fornece uma distribuição global chave na mão “out of the
box”, o que é ótimo para assegurar a disponibilidade e resiliência da plataforma
do NIA. Compreensivelmente, o NIA não pode permitir-se a tempo de inatividade
porque serve milhões de passageiros durante todo o ano. Assim, é necessário
a sua nova plataforma ter uma elevada disponibilidade que possa ser alimentada
pelo Azure Cosmos DB.
• A plataforma do NIA precisa de fornecer dados quase em tempo real. Como tal,
é importante reduzir a latência. O Azure Cosmos DB permite ao NIA ter uma
latência de milissegundos de um só dígito. A isto acresce o impressionante
SLA de 99,999% do Azure Cosmos DB.
• Conforme mencionado anteriormente, o NIA estima que o volume dos seus
dados atuais ultrapasse os 310 TB, com uma taxa de crescimento de 15 GB por
dia, sem incluir os dados provenientes de parceiros de companhias aéreas e
origens de dados externas, como de meteorologia e tráfego. Por estas razões, a
equipa escolheu o Azure Cosmos DB pela sua escalabilidade elástica e ilimitada.
O Azure Cosmos DB fornece ao NIA a escalabilidade necessária com a opção de
pagar apenas pela utilização em termos de armazenamento e débito de dados.
• O aeroporto dispõe atualmente de vários sistemas internos para conter os seus
dados atuais, incluindo servidores SQL e MongoDB. A equipa pretende ter uma
maior compatibilidade com todos os sistemas de origem existentes e permitir
que as aplicações existentes funcionem com a nova base de dados sem ter de
introduzir quaisquer alterações. O Azure Cosmos DB é a opção perfeita para
este requisito porque fornece um motor multimodelo com um endpoint de API
compatível com protocolo wire. Isto significa que as aplicações do NIA podem
ligar-se à mesma instância do Azure Cosmos DB utilizando vários controladores,
como MongoDB, SQL e Gremlin. Deste modo, o esforço de desenvolvimento e
implementação é simplificado porque utiliza as APIs dos mesmos controladores,
e reduz também o custo total de propriedade devido à margem da transferência
de conhecimentos e à redução da necessidade de reformulação de tarefas.
Serviços Azure | 145

• Outra funcionalidade do Azure Cosmos DB que cativou a equipa de business


intelligence do NIA foi a capacidade de realizar análises operacionais em tempo
real e IA no Cosmos DB. O Azure Cosmos DB oferece uma integração pronta
a utilizar com o Apache Spark e permite executar o Jupyter Notebooks para
trabalhar diretamente com os dados no Cosmos DB sem mais integração ou
trabalho de desenvolvimento personalizado.
• A nível comercial, o Azure Cosmos DB é uma opção rentável porque oferece à
equipa de business intelligence a flexibilidade e o controlo necessários. A beleza
da utilização do Azure Cosmos DB é a sua capacidade de facultar funcionalidades
à escala planetária com a capacidade de controlar o modelo de custos baseado
no armazenamento e no débito necessários. Isto significa que quando uma
atualização é executada num registo do Azure Cosmos DB, todos os seus
utilizadores no mundo poderão vê-la em milissegundos.
• Por último, o Azure Cosmos DB é um serviço totalmente gerido, o que significa
que a equipa do NIA só precisará de ter em atenção os dados que armazena no
Cosmos DB sem se preocupar com a infraestrutura. Além disso, isto permite que
a equipa comece de forma rápida, económica e à escala, à medida que começa
a incluir mais conjuntos de dados e demonstrar mais valor de negócio.
Exemplo de implementação
Um dos melhores aspetos do Azure Cosmos DB é a sua compatibilidade com inúmeros
modelos e controladores de consulta. Os fragmentos de código seguintes mostram
como o Cosmos DB pode ser consultado utilizando SQL ou MongoDB. Ambos os
exemplos estão escritos em C#:
1. O primeiro fragmento de código consulta os registos da tabela passengers,
procurando passageiros com o nome Bob. Em seguida, itera através de todos os
resultados devolvidos e imprime o nome do passageiro para a consola:
var sqlQuery = "SELECT * FROM P WHERE P.FirstName = 'Bob'";
Console.WriteLine("Running query: {0}\n", sqlQueryText);
var queryDefinition = new QueryDefinition(sqlQueryText);
var queryResultSetIterator = this.container
.GetItemQueryIterator<Passenger>(queryDefinition);
List<Passenger> passengers = new List<Passenger>();
while (queryResultSetIterator.HasMoreResults)
{
var currentResultSet = await queryResultSetIterator.ReadNextAsync();
foreach (Passenger p in currentResultSet)
{
passengers.Add(p);
Console.WriteLine("\tRead {0}\n", p);
}
}
146 | Casos de utilização de negócios

2. O segundo fragmento de código efetua uma consulta semelhante, mas utiliza a API
MongoDB. Primeiro cria MongoClientSettings e, em seguida, MongoClient, que é
utilizado para obter uma referência ao Azure Cosmos DB. O código assume que nesta
altura as definições de configuração já foram efetuadas. O código cria uma referência
para o Azure Cosmos DB (NIAAnalytics) do NIA e consulta passengerCollection:
var settings = new MongoClientSettings();
MongoClient client = new MongoClient(settings);
var dbName = "NIAAnalytics";
var collectionName = "Passengers";
var database = client.GetDatabase(dbName);
var passengerCollection = database.
GetCollection<Passenger>(collectionName);
passengers = passengerCollection.Find(new BsonDocument()).ToList();

Azure Machine Learning


Função na estrutura
O Azure Machine Learning é utilizado pela equipa de business intelligence do NIA para
operacionalizar os seus modelos de machine learning. Para otimizar a alocação de
recursos, a equipa necessita de criar vários modelos de machine learning para prever
o número de passageiros e criar uma recomendação para a atribuição das portas de
embarque. O Azure Machine Learning fornece à equipa de business intelligence uma
forma consistente e reprodutível de gerar modelos de machine learning, mantendo ao
mesmo tempo um registo de todas as experimentações de machine learning, conjuntos
de dados e ambientes de treino de machine learning. Isto é essencial para qualquer
implementação de um modelo de machine learning, onde a facilidade de explicação
é um requisito básico para os clientes e intervenientes.
Porquê o Azure Machine Learning?
• O Azure Machine Learning permite ao NIA simplificar e acelerar todo o ciclo de vida
de machine learning, desde a limpeza de dados e engenharia das funcionalidades
até à criação e validação dos modelos. O Azure Machine Learning facilita a
automatização de muitas partes do pipeline, o que, por sua vez, reduz as despesas
gerais, melhora a qualidade e permite que a equipa do NIA inove mais rapidamente.
• O controlo de versões e a manutenção de múltiplos instantâneos de conjuntos
de dados é uma prática comum ao criar e experimentar modelos de machine
learning. Manter várias versões dos mesmos conjuntos de dados, pode ser um
processo muito fastidioso e confuso. O Azure Machine Learning fornece um
conjunto completo de funcionalidades que visam ajudar os clientes como o NIA
a enfrentar este desafio. Os conjuntos de dados do Azure Machine Learning
permitem ao NIA monitorizar, controlar a versão e validar os conjuntos de dados
com facilidade, conforme pode ver na secção Exemplo de implementação.
Serviços Azure | 147

• Parte do desafio para qualquer equipa de análise avançada reside em encontrar o


algoritmo adequado para criar um modelo de machine learning. Não só a equipa
de business intelligence do NIA precisa de escolher o algoritmo adequado,
como também precisa de ajustar quaisquer hiperparâmetros. O Azure Machine
Learning automatiza todo este processo para que qualquer analista de dados
possa ser um data scientist. O Azure AutoML permite à equipa de business
intelligence do NIA automatizar o processo de criação de modelos de machine
learning de forma rápida, fácil e económica.
• A compatibilidade é também outra grande vantagem do Azure Machine Learning.
O Azure Machine Learning integra-se bem com ferramentas de open source,
como o Apache Spark no Azure Synapse. Também permite que o NIA utilize
quaisquer arquiteturas de machine learning (como TensorFlow e PyTorch), ao
mesmo tempo que tira o máximo partido do Azure Machine Learning.
• O Azure fornece todas as inovações mais recentes em dados e IA a organizações
como o NIA. Uma destas inovações é o conceito de abstração da computação
a partir dos dados reais e do seu pipeline, que permite à equipa de business
intelligence do NIA escrever o seu código uma vez e executá-lo em qualquer
computador. Isto inclui código de transformação de dados e de modelo de
machine learning. A equipa do NIA pode criar o seu modelo de machine learning,
executá-lo localmente nos seus computadores de desenvolvimento e, quando
estiver pronto, passar esse código para execução na cloud. Deste modo, os
programadores e as organizações dispõem de uma grande flexibilidade em
termos de desenvolvimento e custos operacionais. O NIA pode pagar apenas
pela computação utilizada e executar apenas o treino dos modelos de machine
learning na cloud quando forem necessários grandes recursos informáticos.
• A CIO do NIA acredita fortemente no DevOps e nos benefícios que traz para uma
organização. O suporte para os processos do DevOps foi um fator importante
na decisão de escolha do Azure Machine Learning. O Azure Machine Learning
tem integração nativa com o Azure DevOps, o que permite ao NIA criar
e implementar modelos de machine learning com facilidade.
• Segurança, reprodutibilidade e governação são preocupações significativas para
qualquer equipa de análise avançada. O Microsoft Azure leva tudo isto em conta
de forma fluida e elegante através da integração nativa com outros serviços
Azure, todos eles rigorosamente testados para as empresas. O Azure Machine
Learning oferece integração “out of the box” com o Azure AD e Azure Monitor.
Além disso, utilizando modelos Azure Resource Manager e Azure Blueprints, as
organizações como o NIA podem impor a governação e os padrões adequados.
148 | Casos de utilização de negócios

Exemplo de implementação
O Azure Machine Learning facilita a criação de versões, a monitorização e o trabalho
com várias versões de um conjunto de dados para fins de machine learning. O seguinte
fragmento de código cria primeiro um arquivo de dados para indicar ao Azure Machine
Learning onde deve armazenar os dados:
# creating a ref to Azure ML Service Workspace
import azureml.core
from azureml.core import Workspace, Datastore
ws = Workspace.from_config()
# Registering Azure Blob container as the datastore
datastore = Datastore.register_azure_blob_container(workspace=ws, datastore_
name='NIA_airport_datastore',
container_name='NIA_Analytics',
account_name={storageAccount},
account_key={storageAccountKey},
create_if_not_exists=True)
# get named datastore (if exist)
datastore = Datastore.get(ws, datastore_name='NIA_airport_datastore')
O fragmento de código anterior escrito em Python cria primeiro uma área de trabalho do
Azure Machine Learning a partir de um ficheiro de configuração existente. Em seguida, o
código cria um arquivo de dados registando um contentor do Azure Blob como o arquivo
de dados. No exemplo, o nome do arquivo de dados é NIA_airport_datastore e inclui
marcadores de posição para o nome e a chave da conta Azure Storage. Por fim, o exemplo
cria uma referência para um arquivo de dados que já existe utilizando o seu nome.
O seguinte fragmento de código regista um novo conjunto de dados e fornece um
nome, uma descrição e uma etiqueta para facilitar a localização deste conjunto de
dados no futuro:
passengers_ds = passengers_ds.register(workspace =ws,name='passengers_
dataset',description = 'passengers personal data and address',tags =
{'year': '2019'})
O seguinte fragmento de código obtém um conjunto de dados existente pelo nome e/ou
ID da versão. Isto é muito útil quando temos várias versões do mesmo conjunto de dados:
#get Passengers dataset by name
passengers_ds = ws.datasets['passengers_dataset']
Serviços Azure | 149

# get specific version of the passengers dataset


passengers_ds = ws.datasets['passengers_dataset']
passengers_ds_v3 = passengers_ds.get_definition(version_id = 3)

Azure Container Registry


Função na estrutura
O Azure Machine Learning Services permite à equipa de business intelligence do NIA
criar os seus modelos de machine learning como contentores padrão que podem
ser executados em qualquer motor de contentores, como o Docker e Kubernetes.
A equipa utiliza o Azure Container Registry para alojar e partilhar de forma segura
estes contentores do Docker, que possuem os seus modelos de machine learning.
Porquê o Azure Container Registry?
• O Azure Container Registry permite que o NIA armazene imagens para todos
os tipos de contentores. O Azure Container Registry abstrai o alojamento das
imagens desde a implementação destas imagens aos diferentes destinos da
implementação, tais como o Docker Swarm e Kubernetes. Isto permite ao NIA
utilizar um registo do contentor (Azure Container Registry) para alojar imagens
para todos os tipos de contentores.
• O Azure Container Registry baseia-se nas funcionalidades dos registos de
contentor padrão. Por exemplo, o Azure Container Registry integra-se com o
Azure AD para melhorar a segurança. Além disso, o Azure Container Registry
fornece uma forma simples de se integrar com as ações dos contentores através
dos acionadores. Por exemplo, o NIA pode configurar um webhook para acionar
os Azure DevOps Services quando uma nova imagem é adicionada ao Azure
Container Registry.
• O Azure Container Registry é totalmente compatível com o Docker Registry v2
padrão. Assim, a equipa do NIA pode utilizar as mesmas ferramentas de interface
de linha de comandos (CLI) do Docker de open source para interagir com ambos
os registos (Azure Container Registry e Docker Registry v2).
• O Azure Container Registry suporta a replicação multirregião, o que apelativo
para o NIA porque ajuda em dois aspetos. Em primeiro lugar, reduz a latência
e os custos da rede mantendo o registo do contentor perto dos objetivos
de implementação. Em segundo lugar, melhora a continuidade do negócio
e a recuperação após desastre, uma vez que o registo do mesmo contentor
é replicado em várias regiões.
150 | Casos de utilização de negócios

Exemplo de implementação
O código seguinte faz parte do modelo do Azure Resource Manager (ARM) que o NIA
utiliza para criar a instância do Azure Container Registry. Cria uma instância do Azure
Container Registry (camada Padrão) no datacenter do Norte da África do Sul do Azure.
O modelo também permite que a conta do Utilizador Administrador gira o registo.
O modelo do ARM tem dois parâmetros: um parâmetro para o nome do registo e outro
para a versão da API do ARM:
{ "resources": [
{
"name": "[parameters('registryName')]",
"type": "Microsoft.ContainerRegistry/registries",
"location": "South Africa North",
"apiVersion": "[parameters('registryApiVersion')]",
"sku": {
"name": "Standard"
},
"properties": {
"adminUserEnabled": "True"
}
}
]
}

Azure Kubernetes Service


Função na estrutura
O Azure Kubernetes Service (AKS) é utilizado para servir modelos de machine
learning como APIs consumíveis. Um exemplo destes modelos de machine learning é
um modelo que prevê o movimento da multidão através do aeroporto. Estes modelos
são treinados pela equipa utilizando dados históricos no Azure Synapse. Em seguida,
utilizado Azure Machine Learning, o modelo é enviado como uma imagem do Docker.
O AKS executa estes modelos e outras aplicações, como o Passenger Hub. Além disso,
a AKS ajuda a gerir a deteção de serviços destas aplicações, fornece mecanismos de
dimensionamento automático e facilita políticas de autorrecuperação para lidar com
erros e falhas.
Serviços Azure | 151

Porquê o AKS?
• Gerir um cluster de computadores é uma tarefa difícil e é ainda mais difícil gerir
e configurar um cluster de Kubernetes, porque o serviço Kubernetes tem muitas
partes móveis e requer muita configuração. O AKS simplifica isto oferecendo
um cluster gerido, o que significa que o Microsoft Azure gere os nós principais
e a equipa do NIA só precisa de configurar e utilizar os nós subordinados para
implementar os seus workloads. Deste modo, as despesas gerais do NIA são
significativamente reduzidas.
• Utilizando conceitos como nó virtual e kubelet virtual, o AKS permite o NIA
para aprovisionar capacidade adicional de forma elástica em qualquer altura.
Esta abordagem é importante para o NIA, porque é muito difícil prever a carga
e a capacidade necessárias, pelo que é importante ter este aprovisionamento
elástico quando necessário.
• A integração nativa e o suporte para o AKS no Azure DevOps é outra vantagem
do AKS, simplificando a configuração e automatização das implementações dos
workloads do NIA no AKS. O AKS também tem integração nativa com serviços
como o Azure Monitor e Azure Key Vault.
• A equipa do NIA pode melhorar e acelerar a experiência de desenvolvimento
de ponta a ponta utilizando o suporte do Visual Studio Code para o AKS.
• Além da integração nativa com outros serviços Azure, o AKS integra-se
perfeitamente com o Azure Active Directory, o que significa que o NIA pode
melhorar a segurança tirando partido desta integração. Além disso, o NIA pode
usar o Azure Policy para impor a governação em toda a organização.
• O Azure fornece um grande suporte para ferramentas de open source,
como kubernetes, não só na cloud, mas também periféricas. A equipa do NIA
compreende que há cenários em que enviar a computação para a periferia pode
ser a melhor opção. Um exemplo disto é o seu plano de aproximar os modelos de
machine learning das câmaras de monitorização de tráfego para acionar alertas
quando ocorre um evento de segurança. O Microsoft Azure tem um bom suporte
para executar Kubernetes no Azure IoT Edge para tais cenários. Como tal, utilizar
o AKS será uma boa opção para futuros planos de enviar os modelos de machine
learning para a periferia utilizando o Kubernetes com Azure IoT Edge.

Exemplo de implementação
O fragmento de código faz parte do pipeline do Azure DevOps Services do NIA que
implementa a nova aplicação Web Airport Brain. O código tira partido do suporte do
Azure DevOps para Kubernetes utilizando o tipo de tarefa KubernetesManifest. A tarefa
implementa a imagem do Docker em nia/aiportbrain:lastest para o AKS pré-configurado
utilizando NIAairport_AksServiceConnection. O seguinte código tem um marcador de
posição para imagePullSecret, que é utilizado como mecanismo de autenticação para
retirar imagens do Azure Container para o objetivo de implementação (AKS):
152 | Casos de utilização de negócios

passos:
- task: "KubernetesManifest@0"
displayName: "Deploy AirportBrain to K8s"
inputs:
action: deploy
kubernetesServiceConnection: "NIAairport_AksServiceConnection"
namespace: "airportbrain"
manifests: "manifests/deployment.yml"
containers: 'nia/airportBrain:latest'
imagePullSecrets: |
$(imagePullSecret)

Power BI
Função na estrutura
Parte da estratégia da Zara para o relatório do NIA é incorporar o Power BI como
ferramenta de visualização no NIA. O Power BI pode ser utilizado para gerar relatórios
e dashboards e para fins de self-service. A equipa de BI espera também aproveitar a
capacidade do Power BI para ser incorporada noutras aplicações Web para reutilizar
visualizações do Power BI dentro de outras novas aplicações, como o Passenger Hub.
Porquê o Power BI?
Além de todas as vantagens do Power BI mencionados no Caso de utilização 1, os
relatórios e dashboards do Power BI podem ser incorporados noutras aplicações Web.
A equipa de business intelligence do NIA pretende tirar partido da simplicidade e do
poder dos elementos visuais do Power BI para criar os dashboards para as aplicações
Passenger Hub e Airport Brain. A utilização dos relatórios do Power BI incorporados
permite à equipa de business intelligence do NIA criar e enviar relatórios de forma
rápida e fácil, ao mesmo tempo que os serve de forma segura através das novas
aplicações Web do NIA.
Exemplo de implementação
No Power BI, pode incorporar qualquer relatório do Power BI em qualquer página web.
A partir do serviço Power BI, enquanto apresenta o relatório, clique na opção Partilhar
e, em seguida, selecione Incorporar relatório, seguido por Website ou Portal. É criada
uma caixa de diálogo que inclui o seu código incorporado para ser utilizado no site ou
portal do destino:
Serviços Azure | 153

Figura 4.7: Criar um código incorporado

A caixa de diálogo mostrará um código iFrame de HTNL que pode ser utilizado em qualquer
página Web de HTML. A caixa de diálogo seguinte permite aos membros da equipa do NIA
configurar as propriedades do código de iFrame, como a largura e a altura. Em seguida,
utilizando o código iFrame, o relatório pode ser incorporado em qualquer aplicação Web:

Figura 4.8: Configurar as propriedades da iFrame


154 | Casos de utilização de negócios

Serviços de suporte
O NIA pretende garantir que a nova solução é segura, dimensionável e tenha um
bom nível de monitorização e suporte. O Azure tem muitos serviços que permitem
a organizações como o NIA assegurar, dimensionar e monitorizar as suas soluções. Isto
inclui todos os serviços listados em caso de primeira utilização, como o Azure DevOps,
Azure Key Vault e Azure Monitor.

Insights e ações
O Azure ajudou o NIA a extrair insights significativos após análise e a implementar as
medidas necessárias, conforme é explicado nas secções seguintes.

Reduzir os atrasos nos voos em 17% utilizando análises preditivas


Descrição: durante a realização da deteção e exploração de dados inicial, a equipa
de business intelligence do NIA descobriu que a atribuição ineficiente das portas de
embarque era um dos principais contribuintes para os atrasos de voo. Os atrasos
nos voos têm um efeito bola de neve porque um atraso num voo pode afetar o voo
seguinte e o que se segue a esse. Há também a experiência negativa que produz para
os passageiros. Atualmente, a atribuição das portas de embarque do NIA baseia-se na
capacidade da sua área de espera e na capacidade máxima dos aviões. Isto assume que
todos os voos estão cheios, o que não é necessariamente verdade.
A combinação dos dados meteorológicos, dos dados de tráfego da cidade, dos dados
históricos de atrasos de voos e de outras origens permitiu à equipa de business
intelligence produzir um melhor motor de recomendação para a atribuição das portas
de embarque. O novo motor de recomendação, que foi criado utilizando machine
learning, analisa os dados contextuais (meteorológicos e de tráfego) e históricos
para calcular o número de passageiros num determinado voo e atribuir uma porta
de embarque em conformidade. Durante a modelação e a validação iniciais, a equipa
descobriu que a implementação deste tipo de motor de recomendação na aplicação
Airport Brain pode reduzir os atrasos dos voos em 17%.

Valor estimado do negócio: 14,7 milhões de dólares/ano.


Principais origens de dados: dados de voo das companhias aéreas, dados do aeroporto
(planta e portas), dados meteorológicos, dados de tráfego da cidade, calendários
escolares e calendário de feriados oficiais.
Ações: a equipa de business intelligence do NIA implementou a solução utilizando
a arquitetura mostrada na Figura 4.6. Em resultado desta solução, a administração
aeroportuária dispõe agora de uma nova ferramenta como parte do novo portal
(Airport Brain) para fornecer recomendações em tempo real para a atribuição das
portas de embarque, melhorando a eficiência e reduzindo as despesas operacionais,
ao excluir ideias preconcebidas do planeamento e introduzir decisões operacionais
tomadas com base em factos e na ciência.
Insights e ações | 155

Pipeline de dados: o pipeline de dados simplificado para esta iniciativa é ilustrado na


Figura 4.9:

Figura 4.9: Pipeline de dados para a iniciativa 1

Reduzir o congestionamento e melhorar o comércio através de


visualização inteligente
Descrição: outra descoberta encorajadora que a equipa de business intelligence do NIA
fez foi a correlação entre a hora de chegada dos passageiros por automóvel e as longas
filas. A equipa descobriu que quando muitos passageiros chegavam ao aeroporto mais
de 4 horas antes da hora de partida do voo, as longas filas e a sobrelotação tornavam-se
um problema. Este pode ser atribuído ao facto de a equipa de gestão aeroportuária não
esperar/planear a chegada dos passageiros nessa altura, o que causava as longas filas
e congestionamentos. Outra explicação que um dos gestores seniores do aeroporto
apresentou foi o facto de estes passageiros que chegavam cedo irem diretamente
para a porta e não para outras instalações do aeroporto.

Por isso, a equipa decidiu resolver este problema encaminhando os passageiros


que chegavam cedo para outras instalações do aeroporto, como a área duty-free,
o cinema e as áreas de descanso. Com base nos testes iniciais, a equipa estima que
isto pode aumentar as oportunidades de comércio em 11% e, ao mesmo tempo,
reduzir a sobrelotação nas portas de embarque do aeroporto em cerca de 15%.

Valor estimado do negócio: 9,3 milhões de dólares/ano.


Principais origens de dados: dados de voo das companhias aéreas, dados do aeroporto
(planta e portas), dados meteorológicos, informações dos passageiros, dados comerciais
do aeroporto e calendário de feriados oficiais.

Ações: em função destas descobertas, a equipa criou novos dashboards na aplicação


Passenger Hub. Quando os passageiros chegam mais cedo e digitalizam o seu ID, a
aplicação Passenger Hub mostra-lhes os dados do voo e orienta-os para áreas de descanso,
lojas duty-free e o cinema do aeroporto. A equipa também utilizou dados de monitorização
de tráfego em tempo real para criar grandes letreiros a utilizar nos grandes ecrãs de todo
o aeroporto para que os utilizadores pudessem vê-los sem sequer os digitalizar.
156 | Casos de utilização de negócios

Pipeline de dados: o pipeline de dados simplificado para esta iniciativa é ilustrado na


Figura 4.10:

Figura 4.10: Pipeline de dados para a iniciativa 2

Conclusão
Os aeroportos têm operações e procedimentos complexos, e funcionam 24 horas por
dia. Assim, mesmo a introdução de pequenas melhorias pode proporcionar grandes
poupanças para o aeroporto e melhorar a segurança e a satisfação dos clientes.
Nas páginas anteriores, estudou um exemplo prático de um grande aeroporto. Embora
os nomes sejam fictícios, muitos dos números aqui abordados baseiam-se num caso
de utilização real em que o autor esteve envolvido. Teve oportunidade de ver como
a análise avançada pode ser utilizada para melhorar a eficiência e poupar milhões
de dólares a uma organização. Os dados podem ser utilizados não só para ajudar
os aeroportos a pouparem nos custos operacionais, como também para criar uma
vantagem competitiva.
Analisou igualmente como uma solução orientada por dados pode ser implementada
com o Azure e por que motivo o Azure é a plataforma perfeita para executar esses
workloads. O Azure é acessível, seguro e proporciona agilidade e escalabilidade às
organizações.
Conclusão
5
Hoje em dia, os dados são o motor do sucesso empresarial. Todas as empresas estão
a utilizar os dados para tomar decisões de negócios. Graças ao enorme aumento de
dados gerados e recolhidos por organizações a partir de uma multiplicidade de origens
(sejam dados estruturados, semiestruturados ou não estruturados), o Azure Synapse
Analytics oferece um serviço de análise ilimitado que reúne a ingestão de dados, data
warehousing empresarial e a análise de big data.
A experiência unificada no Azure Synapse Analytics permite aos clientes criar soluções
de análise de ponta a ponta e realizar a ingestão de dados, a exploração de dados,
data warehousing, a análise de big data e tarefas de machine learning a partir de um
ambiente único e simplificado. O Azure Synapse fornece um meio promissor de analisar
os dados para obter insights em tempo real. Isto é essencial para tomar decisões de
negócio e delinear estratégias de negócio.
Este livro levou-o através de um percurso pela análise na nuvem com o Microsoft Azure
mostrando-lhe como pode criar o seu data warehouse com o Azure Synapse, processar
e visualizar dados, e criar soluções de análise de ponta a ponta utilizando o ambiente
unificado do Synapse Studio.
158 | Conclusão

Na secção seguinte, recapitularemos o livro, capítulo a capítulo, para lembrá-lo dos


materiais e das tecnologias que abordámos.
O Capítulo 1, Introdução à análise de dados no Azure, abordou a importância da análise
de dados e salientou várias razões pelas quais o Microsoft Azure é uma plataforma
ideal para atingir capacidades de business intelligence na cloud. Abordou alguns
conceitos fundamentais à volta de big data, machine learning e DataOps. Também ficou
a conhecer alguns dos motores do negócio para adotar a análise de dados na cloud. Por
fim, adquiriu uma visão de alto nível do que é necessário para ter um data warehouse
moderno.
O Capítulo 2 , Introdução à área de trabalho do Azure Synapse Analytics e ao Synapse
Studio, apresentou a nova experiência unificada na área de trabalho do Azure Synapse
e o Synapse Studio.
O Synapse Studio fornece um ambiente simplificado tudo-em-um para a preparação
de dados, a gestão de dados, data warehousing, a análise de big data e tarefas de IA.
Oferece as seguintes funcionalidades:
• Ambientes visuais isentos de códigos para a gestão de pipelines de dados
• Otimização automatizada das consultas
• A funcionalidade de criar provas de conceito em minutos
• Consultas on-demand sem servidor
• A opção de aceder de forma segura aos conjuntos de dados e utilizar o Power BI
para criar dashboards em minutos — tudo enquanto utiliza o mesmo serviço
de análise

Aprendeu a começar a utilizar o Azure Synapse criando uma área de trabalho através
do nosso guia passo a passo. Também demonstrámos como pode começar a criar a sua
solução analítica de ponta a ponta com as ferramentas do Synapse Studio. Explorámos
algumas das principais capacidades do Azure Synapse, incluindo o SQL sem servidor
on-demand. Com o SQL sem servidor on-demand, podemos efetuar instantaneamente
a exploração e a análise de dados utilizando a familiar sintaxe T-SQL sem ter de
aprovisionar recursos.
 | 159

Para realizar o percurso, também aprendeu a:


• Aprovisionar um conjunto de SQL, ingerir dados e analisar dados no conjunto de SQL
• Criar um conjunto do Apache Spark, ingerir dados e explorar os dados utilizando
o Spark
• Copiar dados de/para um conjunto de SQL e um conjunto do Apache Spark
• Extrair dados externos de origens de dados associadas
• Analisar dados utilizando o SQL sem servidor on-demand
• Integrar com pipelines

O Capítulo 3, Processar e visualizar dados, centrou-se no lado analítico do data


warehouse moderno, onde demonstramos como pode processar e visualizar dados
utilizando o Power BI e implementar o machine learning. Com o Azure Synapse e Power
BI pode executar análises de dados potentes, personalizáveis e em self-service para
localizar e partilhar insigthts sobre dados. Embora o Azure Synapse seja o motor que
alimenta estes insights, o Power BI é uma ferramenta de visualização que capacita os
utilizadores para realizarem eles próprios a análise.
No caso das análises avançadas, o Azure Machine Learning oferece-lhe a infraestrutura
e as ferramentas necessárias para analisar dados, criar modelos de dados de alta
qualidade e treinar e orquestrar o machine learning à medida que constrói as aplicações
e serviços inteligentes. A vantagem de utilizar o Azure Machine Learning é que fornece
a inteligência preditiva de que as empresas precisam para manterem a competitividade.
O Capítulo 4, Casos de utilização de negócios, contém casos de utilização real sobre a
forma como todas estas tecnologias se integram para facultar soluções completas de
warehouse de dados de ponta a ponta. Os dois casos de utilização do mundo real neste
capítulo exemplificaram soluções de alto nível que utilizam o Microsoft Azure. Também
ilustraram como se podem analisar os dados em tempo real no Azure para extrair
insights relevantes e tomar decisões de negócio. Os exemplos de implementação e os
casos de utilização demonstram como as organizações reais usaram tecnologias Azure
em diferentes setores para tirar o máximo partido dos dados, dando-lhe uma ideia de
como pode aproveitar esta potente tecnologia para ajudar o seu próprio negócio.
160 | Conclusão

Palavras finais
O Azure Synapse reúne os mundos do data warehousing empresarial e da análise de
big data numa experiência unificada que o ajuda a acelerar o seu tempo até à obtenção
de insights. O modelo da cloud para data warehouses modernos não só é flexível e
dimensionável, mas também é rentável devido às suas propriedades elásticas exclusivas.
Os workloads analíticos são um cenário em que a elasticidade brilha verdadeiramente.
Com o Azure Synapse, profissionais de dados com diversas competências podem
colaborar, gerir e analisar os seus dados mais importantes com facilidade, tudo dentro
do mesmo serviço. Desde a integração do Apache Spark, com o potente e fidedigno
motor SQL, passando pela integração e gestão de dados sem código, o Azure Synapse
foi concebido para todos os profissionais de dados.
Agora que chegou ao fim deste livro, está munido dos conhecimentos dos serviços
e ferramentas que precisa para criar a sua própria solução completa de análise de
dados no Azure. A melhor forma de começar é aos poucos, integrando algumas das
tecnologias que este livro introduziu no seu workflow existente. Depois, adicionar
gradualmente mais capacidades no futuro à medida que as suas necessidades evoluem.
Boa sorte com o seu data warehouse moderno e o seu percurso de análise na cloud.
Na secção seguinte, indicamos recursos adicionais para aprendizagem adicional.

Para aprendizagem adicional


• Comece com 12 meses de serviços gratuitos Azure: https://azure.microsoft.
com/free/synapse-analytics/
• Azure Synapse Analytics: https://azure.microsoft.com/services/synapse-analytics/
• Toolkit do Azure Synapse Analytics: https://azure.microsoft.com/resources/
azure-synapse-analytics-toolkit/
• Compare o preço e o desempenho do Azure Synapse Analytics com o Google
BigQuery e o Amazon RedShift: https://azure.microsoft.com/services/synapse-
analytics/compare/
• Quatro Passos para Maximizar a sua Análise (eBook em PDF): https://
clouddamcdnprodep.azureedge.net/gdc/gdcEbYaLj/original
Índice remissivo
>
Acerca de

Todas as principais palavras-chave utilizadas neste livro estão registadas alfabeticamente nesta
secção. Cada uma é acompanhada pelo número de página da respetiva ocorrência.
A Apache: 23, 28, 31, 50-52,
65, 91, 93, 117-118, 138,
C
marca ABC: 108 141, 145, 147, 159-160 caches: 125
abstrair: 149 apiVersion: 150 colocação em cache:
acelerar: 2, 89, aplicado: 6, 135 15, 65, 71
94, 146, 160 abordagens: 13-14, 72 campanha: 130
acessível: 2, 4, 8, matrizes: 90 capacidade: 18,
12, 18, 89, 118 articular: 106,110 132-133, 151, 154
chave da conta: 120 artificial: 2, 6-8, 67, operadora: 134
contas: 20, 138 90, 103, 112, 133 Cassandra: 10
precisão: 6-9, 16, 94, avaliação: 11 categorias: 5-6, 92, 126
100, 103, 129, 133 ativos: 19, 32, 111, 118, central: 112, 114-115,
ativar: 64 132-133, 135, 142 119, 127, 142
ativo: 10-11, 44, 71-72, 96, atribuição: 154 canais: 92, 106-107, 113
115, 118, 125, 128, 138, 151 atributos: 111 chatbots: 26, 92
avançado: 11, 16, 31, 65, 69, audiência: 96 classificado: 11, 20
91, 115, 132, 147, 156, 159 automatizar: 92-94, limpeza: 146
agentes: 7 126-127, 146-147 cliques: 19, 28, 32
agregar: 96, 107, 134 automatizado: 8, 91, 158 cliente: 96, 146
alertas: 22, 70, 128, AutoML: 65, 91, 93-94, 147 cluster: 22, 71, 95, 114, 151
134, 142, 151 autónomo: 16 sem código: 28-29,
algoritmo: 6-7, 91, 94, 147 média: 49, 111, 130, 132 60, 158, 160
alocação: 133, 146 AzureML: 148 codificação: 94, 96
Amazon: 160 cognitivo: 7, 89, 92
análise: 2-4, 6-7, 20, 56,
59, 69, 90-92, 94,
B comando: 93
comissão: 52
115, 136, 154, 158 back-end: 125 consolidar: 64
análise: 1-2, 4-5, 7-12, benchmark: 117 compatível: 111, 118, 149
14-17, 20, 22-24, 26-34, BigQuery: 160 concorrente: 5, 109
36, 41-43, 50, 59, Blueprints: 147 compilar: 3
64-65, 67-74, 76-77, criar: 120, 149 conformidade: 30, 112,
82-83, 89, 91-96, incorporado: 69, 74, 77, 95 115, 119, 125-126, 139
103, 105-106, 112-118, negócio: 1-2, 4-10, 12, componente: 114
128-129, 131-133, 14, 16, 19, 21-22, 24, calcular: 6, 18, 30,
135-139, 141-142, 145, 26, 28-29, 32, 65, 68, 71, 95, 100-101,
147-148, 154, 156-160 71, 91, 103, 105-106, 138-139, 142, 147
analisar: 3, 13, 15, 17-18, 24, 109, 112, 114, 117, 124, computadores: 68, 95, 151
28, 50, 56, 59-60, 109, 126, 129-136, 138-140, computação: 1, 9,
128, 136-137, 159-160 142-147, 149, 152, 12, 18, 147, 151
anomalias: 5, 20 154-155, 157-159 simultaneidade: 23
condições: 76, 110-111, 128 conjunto de dados: fazer download: 70, 83
config: 143, 148 4-6, 13, 16, 19, 47, tempo de inatividade:
configurar: 63, 101, 122, 52-53, 70, 75-77, 13, 15, 144
140, 149, 151, 153 79, 82-84, 100, 102, Dresner: 1
configurado: 14, 141, 146 109-110, 121-122, 148 motores: 14, 26,
congestionamento: arquivo de dados: 148 144-145, 158
132, 134, 155 DateId: 46 impulsionar: 7, 14, 16, 157
ligar: 45, 83, 94, 114, dbName: 146 lista pendente-down: 77
119-120, 140, 143-144 decidir: 147 duty-free: 133, 155
ligação: 22, 72, 84, predefinição: 38-39, dinâmica: 7, 20, 65
122, 127, 143 55-56, 58, 67
conector: 143
ligação através: 120, 122
definição: 148
atrasos: 132-135, 142, 154
E
consola: 145 eliminar: 15, 103 ecossistema: 3, 67,
consumidor: 3, 71, 96, 106 DenseNet: 96, 99 89-91, 93
contentor: 93, 95, 97, implementar: 13, 68, eficiência: 5, 154, 156
141, 145, 148-151 93-94, 103, 110, 127-129, elástico: 71, 111, 115,
Cortana: 7, 26, 92 142, 147, 152, 154 137-138, 144, 151, 160
Cosmos: 10, 141-146 implementação: 30, incorporado: 5,
Cosmos DB: 143 94-95, 127, 139, 141, 69, 152-153
COVID-19: 72, 75, 144, 149, 151-152 codificar: 5
77, 79, 84, 87 estrutura: 68, 106, 110, encontrar: 64, 71, 105
organizado: 32, 77, 142, 144 112-115, 117, 119, 124, 126, encriptação: 11,
personalizado: 23, 128, 132, 136, 140, 142, 115, 118, 127
69-70, 125, 140, 145 144, 146, 149-150, 152 ponta a ponta: 9-10,
cliente: 1, 6, 11, 16, 19, 30, estruturador: 94, 96, 99 29-30, 41, 65, 93-94,
106-108, 110-111, 114, 116, ambiente de trabalho: 127, 151, 157-159
131-134, 137, 139, 156 24, 67-69, 72, 83, motor: 28, 96, 117, 141-142,
personalizado: 3 85-86, 91-92, 103, 124 144, 149, 154, 159-160
desenvolver: 45, 54, 56, engenheiros: 8, 10, 13, 15,
D 58, 61, 71, 82, 112, 119
programador: 29, 118, 139
18, 21-22, 41, 65, 70, 89,
114, 116-118, 138, 141, 143
dashboard: 25, 68-70, dispositivo: 5, 89, 142 empresa: 9, 28, 41, 69-70,
89, 129-130, 142 DevTest: 14 115, 139, 157, 160
base de dados: 5, 11, 14-19, digital: 7, 14, 106-107, entidades: 94
21, 23, 32, 44, 50, 54-56, 110, 113 entradas: 90
70-71, 74-77, 79, 82-83, diretamente: 19, 71, 89, equipamento: 133
89-90, 120, 122-123, 93, 108, 141, 145, 155 erros: 20, 128, 141, 150
126, 143-144, 146 apresentar: 56, 72, estimado: 129-130,
Databricks: 89, 93-95 79, 81, 84, 86 133, 154-155
datacenter: 135, 139, 150 Docker: 13, 95, 141, 149-151 avaliação: 100
DataFrame: 53.143 domínio: 114 eventos: 107
DataOps: 2, 8, 26, 158 execução: 64, 79
exercício: 77, 97,
100, 103, 118
H integrado: 32, 41,
65, 69, 117
experimentação: Hadoop: 22 interface: 8, 18, 41, 68,
54, 100-102 processar: 4, 15, 26, 93-94, 119, 149
explorar: 8, 16, 22, 28, 41, 109, 115, 143
44, 47, 50, 65, 72, 87, 89,
92, 103, 114-115, 124, 135
hardware: 15, 90, 93
hashtag: 130
J
expandido: 92 híbrida: 14, 113, 119 Jupyter: 94-95, 145
extensível: 91 justificar: 139
extensivo: 141
I
externos: 69-70, 85,
135-137, 144, 159 identificado: 21, 137
K
identidades: 125 Kubelet: 151
F identidade: 10, 92,
127-128, 138
Kubernetes: 13, 95,
141-142, 149-151
instalações: 136, 155 iFrame: 153
fator: 5, 7, 147
funcionalidade: 23, 64,
implementar: 30, 87,
90-91, 103, 112, 128, 159
L
69, 94-96, 114, 119, importar: 84-85, etiquetas: 6, 70
125, 141-142, 145-146 94, 125, 148 linguagem: 29, 31,
feedback: 25, 70, indicadores: 106 55-56, 58, 92, 108
108, 124, 137 ingestão: 21-22, 30, 32, esquema: 154-155
nome de ficheiro: 20 108, 110, 116-117, 137, 157 aprendizagem: 2, 6-8,
sistema de ficheiros: 121 inerente: 6 10, 13, 16-17, 23, 26,
filtros: 23 entradas: 123, 152 28-32, 65, 67, 70,
firewall: 11 inserir: 19, 70 89-99, 101, 103, 112,
nome próprio: 145 insights: 2, 4-5, 7, 9, 17, 125, 131, 138, 141-143,
pasta: 76 22-23, 28-29, 31-32, 146-151, 154, 157-160
caminho da pasta: 121 65, 67-68, 86, 97, licença: 72, 124
pegada: 14 103, 105-109, 119, 126, ciclo de vida: 30
formato: 5, 19-22, 70, 77, 128, 131, 134-136, 138, ligado: 28, 52-53, 60,
86, 95, 108, 111, 115, 143 154, 157, 159-160 72-74, 76, 83, 96,
arquitetura: 89, 91-93 instalado: 9-10, 91, 110, 136 120-122, 159
função: 6, 10 instância: 4, 6-7, 13-15, lógico: 14, 60
funcional: 120 17, 23, 95, 97, 107-108, logicamente: 13
111, 115, 127-128, 134, logística: 5
G 143-144, 149-150
integrar: 60-61, 89, 92-93,
pouco código: 94

gateway: 11, 69, 140 119, 136-137, 149, 159


gigabytes: 5, 14-15, 68, 108
GitHub: 16
M moderno: 2, 4, 7, 15-18,
20-22, 26, 32-33, 67, 70,
O
computador: 2, 6-7, 10, 94-96, 105, 119, 158-160 objeto: 91-92
13, 15-17, 23, 26, 28, MongoDB: 10, 20, 144-146 on-demand: 68, 158-159
30-32, 65, 67-68, monitor: 5, 8, 64-65, openrowset: 77
83, 85, 89-101, 103, 71, 94, 112, 127-128, operativo: 92
112, 125, 138, 141-143, 147, 151, 154 operação: 132
146-151, 154, 157-159 monitorizar: 3, 22, otimizar: 31, 106, 135, 146
gerir: 11, 18, 22, 28-29, 30, 65, 107, 115, 130, saída: 6-7, 48
43, 50, 72, 115, 117, 136-137, 151, 154-155 descrição geral: 90, 98
119-120, 124, 127-128, multitude: 117, 157
136, 141, 150-151, 160
gestor: 110, 147, 150
mysynws: 35, 41
P
manual: 22, 127
mercado: 1, 4-5, 16, 117, 119
N pacote: 141
empacotar: 141
principal: 13, 143, 151 espaço de nomes: 152 paralelo: 111, 117
masterkey: 143 espaços de nomes: 116 parâmetro: 5, 150
mecanismo: 15-16, 25, 69, nativo: 69, 115, 118, 120, estacionamento:
94, 115, 136, 141, 151 125, 138-139, 141, 147, 151 136, 140-141
megabytes: 68 navegar: 7 parquet: 77
metadados: 20 navegação: 7 passageiros: 49, 106,
método: 41-42, 83 navegador: 84 132-138, 141-142,
Microsoft: 2, 4, 7-18, rede: 5, 11, 69, 107, 144-146, 148, 154-155
20-22, 26, 28, 30, 118-119, 128, 149 palavra-passe: 38, 122
67-68, 89-90, 92-94, redes: 3, 15, 38-39 padrão: 6-7, 11, 18, 22, 130
105, 112, 114-115, redes: 11, 14 efetuar: 10, 13, 19, 22-23,
118-119, 126, 128, NIAairport: 143, 151-152 26, 29-30, 32, 56,
131-132, 138-139, 143, sem código: 94 60, 64, 68, 70-72, 85,
147, 150-151, 157-160 norte: 132 89, 93, 96, 157-159
migrar: 7 bloco de notas: 53-56, petabytes: 4, 12, 14, 16
migração: 14 58, 60-61, 93, 118, 143 pipeline: 2, 4, 7, 17, 21-23,
dispositivo móvel: 1, 4, número: 2, 20, 49, 87, 29-30, 32-33, 60-61,
8, 14, 19, 25, 69-70, 89, 96, 109-110, 126-128, 64-65, 89, 93, 96,
91-92, 106-107, 142 133-134, 136, 146, 154 99-100, 102, 129-131,
modelação: 2, 21, numerado: 113, 140 146-147, 151, 155-156
23, 72, 129, 154 resumo: 6, 28 plataforma: 2, 4, 9-11,
modelos: 5, 7, 15-16, 18, 28, nytaxiblob: 47 23, 26, 29-30, 67-68,
32, 71, 89-95, 100, 112, 70, 96, 111-112, 117, 119,
114, 125, 138, 141-142, 124, 128, 132, 136, 138,
145-147, 149-151, 159 140, 142-144, 156, 158
políticas: 14, 71, 135, 150
popular: 3, 17, 89, 143
portátil: 93, 95
portal: 34, 41, 71, 97,
119, 142, 152, 154
Q resultados: 5, 8, 18, 20, 29,
32, 34, 50, 54, 56-57, 60,
PowerBI: 88 qualidade: 4-5, 109, 114, 81, 90, 112, 130, 141, 145
pré-construído: 119, 137 127, 131-132, 146 conjunto de resultados: 65
Premium: 114, 125 consultas: 23, 31, retalho: 2, 9, 92, 96, 106,
pré-visualizar: 76 59-60, 70-72, 114, 132-133, 139, 155
privacidade: 11 117, 145-146, 158 robusto: 4, 9, 16, 71-72
privado: 11, 14, 118 filas: 110, 132-135, 155 runtime: 117, 120,
procedimentos: 136, 156 QuickStart: 34, 36 122, 140-141
processo: 4, 8, 16, 18, quoteChar: 121
22-23, 32, 67, 91,
S
107, 109, 131, 137, 142,
146-147, 157, 159
R sandbox: 115-116
processar: 2, 4, 8, 10, 13, elevar: 131 dimensionável: 4, 17, 21,
16, 23, 29, 32-33, 67, proprietários de 67, 70-71, 111, 117, 137,
70, 90, 92, 107, 111, 113, ranchos: 3 140, 154, 156, 160
116-117, 120, 137, 159 tempo real: 8, 17, 21, dimensionamento: 5,
produção: 13-14 23, 65, 95, 103, 12-13, 15, 26, 71
produtos: 1-2, 4, 6-7, 105-106, 108-110, digitalizar: 155
9-10, 14-15, 21-22, 24, 130-131, 136-137, 145, esquema: 18-19, 23,
26, 29, 67, 93, 106-107, 154-155, 157, 159 118, 120-122
110-111, 117, 126, 129-130 registo: 5, 19, 107, 139, 145 ecrã: 84
perfil: 110-111, 129 recuperação: 18, 30, 149 script: 11, 45-48,
programa: 6, 106, 110 referência: 85, 121, 146, 148 60, 76-78, 80
pedido: 77, 83 região: 13, 35, 70, 77, 86 procurar: 3, 34, 72, 92, 97
propriedades: 78, regiões: 12, 14, 24, 77, secção: 4, 17-18, 29, 33, 41,
120-122, 150, 153, 160 112, 119, 125, 149 43, 54, 56, 60, 64, 71-72,
proteger: 8, 11, 30, registo: 35, 148 74, 78-79, 82, 86-87, 89,
71, 118, 127, 135 registado: 19, 35 98, 126, 146, 158, 160
protocolo: 22 geração de relatórios: seguro: 22, 70, 111, 116,
protótipo: 16 71-72, 107-108, 124, 152 127, 140, 154, 156
fornecedor: 2, 15-16, relatórios: 23, 25, segurança: 11, 30, 37-38,
18, 22, 35, 138-139 67-72, 77, 96, 103, 65, 69-71, 95, 115,
aprovisionar: 15, 33, 107, 112-114, 124-126, 118-119, 122, 125-128,
43, 50, 60, 65, 71, 133-135, 142, 152 133, 135, 138, 147, 149, 151
151, 158-159 repositório: 5, 11, segmentos: 113, 140
público: 11, 14, 77, 91, 16, 91, 100 selecionar: 34, 43, 45,
111, 129, 154-155 pedidos: 11, 13, 65, 124 48-50, 52-54, 56,
PySpark: 55-56, 58 recursos: 11-15, 27-28, 58, 60-62, 64, 70,
Python: 9, 31, 55-56, 30, 44, 59-60, 103, 76-77, 80-81, 84,
58, 94, 118, 143, 148 132, 134, 136, 138, 101, 123, 145, 152
PyTorch: 94, 143, 147 147, 150, 158, 160 seletor: 86
sem servidor: 28, 31, sqlquery: 145 113-115, 117-123, 128-129,
50, 59-60, 65, 74, 91, carimbos: 19-20 138-139, 141-143,
126, 131, 158-159 padrão: 114, 149-150 147, 150, 157-160
nome do servidor: 122 instrução: 47, 77, 135 sintaxe: 158
servidores: 14-15, 107, armazenamento: 6, 10, sistema: 5, 18-21, 36,
113, 126, 128, 144 15, 18-19, 21-22, 30, 32, 92-93, 110, 114,
serviço: 1-2, 7, 9-11, 13-16, 36-37, 47, 59-60, 69, 76, 127-128, 136, 138
22-23, 28, 31-32, 65, 97, 111, 113-116, 120-121,
68-69, 73-74, 89,
91-92, 96, 110, 114, 117,
123, 125, 128, 137,
140-141, 144-145, 148
T
119-122, 124, 127-128, armazenado: 5, 17-18, Tableau: 24, 118
132, 134, 137, 139, 22-23, 71, 84-85, tableName: 123
141-142, 145, 148, 150, 108, 110, 112, 115-116, tabelas: 21, 48, 69, 125
152, 157-158, 160 122, 137, 141-142 tabular: 107, 115
serviços: 3-5, 7, 9-18, 20, arquivos: 106, 108-111, TaxAmount: 47
22, 24, 28-30, 32-34, 125, 144-145 TaxiTrip: 46-49, 55-56
67, 69, 71-72, 89-90, estratégias: 157 técnico: 13, 69, 106-107,
92-93, 95, 105-106, transmitir: 20, 141 110, 112, 132, 134, 136
109, 112, 114-115, 117, streaming: 114, tecnologia: 3, 8-9, 20, 159
122, 125-128, 131-132, 136-137, 140-141 TensorFlow: 89, 91,
137-139, 142, 147, 149, simplificar: 131, 146 94, 143, 147
151, 154, 159-160 cadeia: 21 terabytes: 4-5, 12,
sessão: 142 estrutura: 4 14-15, 108
definir: 7-8, 15, 74, 92, 101 estruturados: 4-5, 13, testar: 9, 14, 112, 127, 155
partilhado: 71, 130 18-23, 68, 70, 107-109, Toolkit: 160
fragmento: 121-123, 143, 111, 113, 115, 140-141, 157 tráfego: 5, 7, 96, 136,
145-146, 148, 151 Studio: 7, 16, 27-28, 33, 140-141, 144, 151, 154-155
software: 1, 9, 28, 68, 41-43, 45, 48, 50, 52, treinar: 21, 23, 91-92,
93-94, 124, 139 54, 56, 58, 60-61, 100, 112, 124, 146-147
solução: 9-10, 14, 18, 33, 64-65, 67, 71-72, 74, 79, transferência: 22-23,
106, 110, 112-114, 117, 82, 89, 93-95, 98-99, 69, 76, 124, 144
126-129, 132-138, 140, 118, 151, 157-158 transformar: 19, 23,
154, 156, 158, 160 subconjunto: 6 29, 89, 92, 109, 115,
origens: 1, 4-5, 14, 16, suporte: 4, 11, 14, 17, 19, 119, 124, 141, 143
18-23, 28-29, 32, 52, 68, 21, 28, 31-32, 65, 69, trânsito: 5, 115
70-71, 84-85, 94, 96, 91-92, 95, 118, 126-127, traduzir: 92-93
108-111, 114-115, 119, 125, 138, 147, 151, 154 acionador: 62-64, 101,
128-130, 134-137, 140, Synapse: 4, 9-11, 14-17, 113, 128, 149, 151
144, 154-155, 157, 159 22-23, 26-39, 41-43,
Splunk: 107 45, 48, 50, 52, 54,
sqlpool: 44-45, 48, 56, 58-61, 64-65, 67,
54-55, 58 70-77, 79, 82-83, 89,
91, 93-96, 103, 106,
U W
unificado: 27-28, 30, data warehouse: 2, 4, 7,
65, 67, 70-71, 96, 103, 15-18, 22-23, 26-31,
117, 142, 157-158, 160 33, 65, 67, 70-71,
atualizar: 85, 134, 145 94-96, 105, 107, 114,
nome de utilizador: 122 117-119, 135, 157-160
Windows: 9, 47, 67-68,
V 72, 77-78, 83, 91,
93, 120, 122, 138
validar: 16, 107, 110, 114, 146 workloads: 7, 13, 31,
validação: 127, 146, 154 143, 151, 156, 160
valioso: 4, 107-108 workshop: 107
varchar: 46-47 área de trabalho: 25, 27,
variável: 6, 13 32-38, 41-43, 65, 69-75,
variedade: 4, 93, 95, 77, 79, 82, 85-86, 88-89,
107, 111, 124, 137 92-94, 96-98, 148, 158
versão: 119, 146, 148, 150
virtual: 9, 11, 13-14,
89, 93, 100-101, 118,
Z
128, 135, 139, 151 zipado: 115
visualizar: 24, 41, 57, distribuição de zonas: 116
67-69, 72, 89, 102,
124, 128, 157, 159

Você também pode gostar