Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nesse tutorial, você criará um pipeline de dados de ponta a ponta que executa operações de extração, transformação e carregamento (ETL). O pipeline usa clusters Apache Spark e Apache Hive em execução no Azure HDInsight para consultar e manipular os dados. Você também usará tecnologias como Azure Data Lake Storage Gen2 para armazenamento de dados e Power BI para visualização.
Esse pipeline de dados combina dados de vários repositórios, remove dados indesejados, anexa novos dados e carrega os dados de volta ao seu armazenamento para visualizar informações de negócios. Para obter mais informações sobre pipelines ETL, consulte Extrair, transformar e carregar em escala.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
- CLI do Azure, pelo menos a versão 2.2.0. Confira Instalar a CLI do Azure.
- jq, um processador JSON de linha de comando. Consulte o site do jq.
- Ser membro da função interna do Azure: Proprietário.
- Se você usar o PowerShell para disparar o pipeline do Azure Data Factory, precisará do módulo Az PowerShell.
- Power BI Desktop para visualizar insights empresariais no final deste tutorial.
Criar recursos
Essa seção mostra como criar recursos.
Clonar o repositório com scripts e dados
Entre em sua assinatura do Azure. Se pretender usar o Azure Cloud Shell, selecione Experimentar no canto superior direito do bloco de código. Caso contrário, insira o seguinte comando:
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"
Verifique se você é membro da função do Azure Proprietário. Substitua
user@contoso.com
pela sua conta e insira o comando:az role assignment list \ --assignee "user@contoso.com" \ --role "Owner"
Se nenhum registro for retornado, você não é membro e não poderá concluir esse tutorial.
Baixe os dados e os scripts deste tutorial no repositório de ETL de insights de vendas do HDInsight. Insira o seguinte comando:
git clone https://github.com/Azure-Samples/hdinsight-sales-insights-etl.git cd hdinsight-sales-insights-etl
Verifique se
salesdata scripts templates
foram criados. Verifique com o seguinte comando:ls
Implantar os recursos do Azure necessários para o pipeline
Adicione permissões de execução para todos os scripts inserindo o comando:
chmod +x scripts/*.sh
Definir variáveis para um grupo de recursos. Substitua
RESOURCE_GROUP_NAME
pelo nome de um grupo de recursos existente ou novo e insira o comando:RESOURCE_GROUP="RESOURCE_GROUP_NAME"
Execute o script. Substitua
LOCATION
pelo valor desejado e insira o comando:./scripts/resources.sh $RESOURCE_GROUP LOCATION
Se você não tiver certeza de qual região especificar, recupere uma lista de regiões com suporte para sua assinatura usando o comando az account list-locations.
O comando implanta os seguintes recursos:
- Uma conta de Armazenamento de Blobs do Azure. Essa conta contém os dados de vendas da empresa.
- Uma conta do Data Lake Storage Gen2. Essa conta serve como conta de armazenamento para ambos os clusters HDInsight. Leia mais sobre o HDInsight e o Data Lake Storage Gen2 na integração do Azure HDInsight ao Data Lake Storage Gen2.
- Uma identidade gerenciada atribuída ao usuário. Essa conta fornece aos clusters HDInsight o acesso à conta do Data Lake Storage Gen2.
- Um cluster do Apache Spark. Esse cluster é utilizado para limpar e transformar os dados brutos.
- Um cluster Interactive Query do Apache Hive. Você pode usar esse cluster para consultar os dados de vendas e visualizá-los com o Power BI.
- Uma rede virtual do Azure com suporte para regras de grupo de segurança de rede. Essa rede virtual permite que os clusters se comuniquem e protejam suas comunicações.
A criação do cluster pode levar cerca de 20 minutos.
A senha padrão para acesso ao protocolo Secure Shell (SSH) aos clusters é Thisisapassword1
. Caso deseje alterar a senha, vá até o arquivo ./templates/resourcesparameters_remainder.json
e altere a senha para os parâmetros sparksshPassword
, sparkClusterLoginPassword
, llapClusterLoginPassword
e llapsshPassword
.
Verificar a implantação e coletar informações de recursos
Se você quiser verificar o status da implantação, acesse o grupo de recursos no portal do Azure. Em Configurações, selecione Implantações. Em seguida, selecione sua implantação. Aqui você pode ver os recursos implantados com sucesso e os recursos que ainda estão em andamento.
Para exibir os nomes dos clusters, digite o seguinte comando:
SPARK_CLUSTER_NAME=$(cat resourcesoutputs_remainder.json | jq -r '.properties.outputs.sparkClusterName.value') LLAP_CLUSTER_NAME=$(cat resourcesoutputs_remainder.json | jq -r '.properties.outputs.llapClusterName.value') echo "Spark Cluster" $SPARK_CLUSTER_NAME echo "LLAP cluster" $LLAP_CLUSTER_NAME
Para exibir a conta de armazenamento e a chave de acesso do Azure, insira o seguinte comando:
BLOB_STORAGE_NAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.blobStorageName.value') blobKey=$(az storage account keys list \ --account-name $BLOB_STORAGE_NAME \ --resource-group $RESOURCE_GROUP \ --query [0].value -o tsv) echo $BLOB_STORAGE_NAME echo $BLOB_KEY
Para exibir a conta e a chave de acesso do Azure Data Lake Storage Gen2, insira o seguinte comando:
ADLSGEN2STORAGENAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.adlsGen2StorageName.value') ADLSKEY=$(az storage account keys list \ --account-name $ADLSGEN2STORAGENAME \ --resource-group $RESOURCE_GROUP \ --query [0].value -o tsv) echo $ADLSGEN2STORAGENAME echo $ADLSKEY
Criar uma data factory
O Azure Data Factory é uma ferramenta que ajuda a automatizar Azure Pipelines. Não é a única maneira de realizar essas tarefas, mas é uma ótima forma de automatizar esses processos. Para obter mais informações sobre o Data Factory, consulte a documentação do Data Factory.
Esse data factory tem um pipeline com duas atividades:
- A primeira atividade copia os dados do Armazenamento de Blobs para a conta de armazenamento do Data Lake Storage Gen 2 para simular a ingestão de dados.
- A segunda atividade transforma os dados no cluster Spark. O script transforma os dados removendo colunas indesejadas. Ele também acrescenta uma nova coluna que calcula a receita que uma única transação gera.
Para configurar seu pipeline do Data Factory, execute o seguinte comando. Você ainda deve estar no diretório hdinsight-sales-insights-etl
.
BLOB_STORAGE_NAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.blobStorageName.value')
ADLSGEN2STORAGENAME=$(cat resourcesoutputs_storage.json | jq -r '.properties.outputs.adlsGen2StorageName.value')
./scripts/adf.sh $RESOURCE_GROUP $ADLSGEN2STORAGENAME $BLOB_STORAGE_NAME
Esse script executa as seguintes ações:
- Cria uma entidade de serviço com permissões
Storage Blob Data Contributor
na conta de armazenamento do Data Lake Storage Gen2. - Obtém um token de autenticação para autorizar solicitações
POST
para a API REST do sistema de arquivos do Data Lake Storage Gen2. - Preenche o nome real de sua conta de armazenamento do Data Lake Storage Gen2 nos arquivos
sparktransform.py
equery.hql
. - Obtém chaves de armazenamento para as contas do Data Lake Storage Gen2 e Armazenamento de Blobs.
- Cria outra implantação de recurso para criar um pipeline do Data Factory com seus serviços vinculados e atividades associados. Ela passa as chaves de armazenamento como parâmetros para o arquivo de modelo, de modo que os serviços vinculados possam acessar as contas de armazenamento corretamente.
Executar o pipeline de dados
Essa seção mostra como executar o pipeline de dados.
Disparar atividades do Data Factory
A primeira atividade no pipeline do Data Factory que você criou move os dados do Armazenamento de Blobs para o Data Lake Storage Gen2. A segunda atividade aplica as transformações do Spark nos dados e salva os arquivos .csv transformados em uma nova localização. O pipeline inteiro pode levar alguns minutos para ser concluído.
Para recuperar o nome do Data Factory, digite o seguinte comando:
cat resourcesoutputs_adf.json | jq -r '.properties.outputs.factoryName.value'
Para disparar o pipeline, você tem duas opções. Você poderá:
Dispare o pipeline do Data Factory no PowerShell. Substitua
RESOURCEGROUP
eDataFactoryName
pelos valores apropriados e execute os seguintes comandos:# If you have multiple subscriptions, set the one to use # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>" $resourceGroup="RESOURCEGROUP" $dataFactory="DataFactoryName" $pipeline =Invoke-AzDataFactoryV2Pipeline ` -ResourceGroupName $resourceGroup ` -DataFactory $dataFactory ` -PipelineName "IngestAndTransform" Get-AzDataFactoryV2PipelineRun ` -ResourceGroupName $resourceGroup ` -DataFactoryName $dataFactory ` -PipelineRunId $pipeline
Execute novamente
Get-AzDataFactoryV2PipelineRun
conforme necessário para monitorar o progresso.Ou você pode:
Abra o data factory e selecione Criar e Monitorar. Dispare o pipeline
IngestAndTransform
no portal. Para obter informações sobre como disparar pipelines por meio do portal, confira Criar clusters do Apache Hadoop sob demanda no HDInsight usando o Azure Data Factory.
Para verificar se o pipeline foi executado, siga uma das etapas a seguir:
- Vá até a seção Monitorar no data factory por meio do portal.
- No Gerenciador de Armazenamento do Microsoft Azure, acesse sua conta de armazenamento Data Lake Storage Gen2. Acesse o sistema de arquivos
files
e depois a pastatransformed
. Verifique o conteúdo da pasta para ver se o pipeline foi concluído com êxito.
Para obter outras maneiras de transformar dados usando o HDInsight, veja artigo sobre como usar o Jupyter Notebook.
Criar uma tabela no cluster da Consulta Interativa para exibir dados no Power BI
Copie o arquivo
query.hql
para o cluster LLAP usando o comando de cópia segura (SCP). Insira o comando:LLAP_CLUSTER_NAME=$(cat resourcesoutputs_remainder.json | jq -r '.properties.outputs.llapClusterName.value') scp scripts/query.hql sshuser@$LLAP_CLUSTER_NAME-ssh.azurehdinsight.net:/home/sshuser/
Lembrete: A senha padrão é
Thisisapassword1
.Use SSH para acessar o cluster LLAP. Insira o seguinte comando:
ssh sshuser@$LLAP_CLUSTER_NAME-ssh.azurehdinsight.net
Use o comando a seguir para executar o script:
beeline -u 'jdbc:hive2://localhost:10001/;transportMode=http' -f query.hql
Esse script cria uma tabela gerenciada no cluster de Consulta Interativa que você pode acessar no Power BI.
Criar um dashboard do Power BI dos dados de vendas
Abra o Power BI Desktop.
No menu, acesse Obter dados>Mais...>Azure>Consulta Interativa do HDInsight.
Selecione Conectar.
No diálogo Consulta Interativa do HDInsight:
- Na caixa de texto Servidor, digite o nome do cluster LLAP no formato https://LLAPCLUSTERNAME.azurehdinsight.net.
- Na caixa de texto banco de dados, insira padrão.
- Selecione OK.
No diálogo AzureHive:
- Na caixa de texto Nome de usuário, insira administrador.
- Na caixa de texto Senha, insira Thisisapassword1.
- Selecione Conectar.
No Navegador, selecione sales ou sales_raw para visualizar os dados. Depois que os dados forem carregados, você poderá experimentar o painel que deseja criar. Para começar a usar os painéis do Power BI, confira os seguintes artigos:
Limpar os recursos
Se você não quiser continuar usando esse aplicativo, exclua todos os recursos para não ser cobrado por eles.
Para remover o grupo de recursos, insira o comando:
az group delete -n $RESOURCE_GROUP
Para remover a entidade de serviço, insira os comandos:
SERVICE_PRINCIPAL=$(cat serviceprincipal.json | jq -r '.name') az ad sp delete --id $SERVICE_PRINCIPAL