Partilhar via


Transforme dados na cloud usando uma atividade Spark no Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

Neste tutorial, utilizas o portal do Azure para criar um pipeline do Azure Data Factory. Este pipeline transforma dados utilizando uma atividade Spark e um serviço associado Azure HDInsight on-demand.

Vai executar os seguintes passos neste tutorial:

  • Criar uma fábrica de dados.
  • Crie um pipeline que utiliza uma atividade do Spark.
  • Acionar uma execução de pipeline.
  • Monitorizar a execução do pipeline.

Se não tiver uma subscrição Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Nota

Recomendamos que utilize o módulo PowerShell do Azure Az para interagir com o Azure. Para começar, consulte Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrar Azure PowerShell do AzureRM para o Az.

  • Conta de armazenamento do Azure Crias um script em Python e um ficheiro de entrada, e carregas-nos para o Armazenamento do Azure. A saída do programa Spark é armazenada nesta conta de armazenamento. O cluster do Spark a pedido utiliza a mesma conta de armazenamento como o respetivo armazenamento primário.

Nota

O HdInsight suporta apenas contas de armazenamento para fins gerais com o escalão standard. Certifique-se de que a conta não é uma conta de armazenamento premium ou apenas de blobs.

Carrega o script Python para a tua conta de armazenamento Blob

  1. Crie um ficheiro Python chamado WordCount_Spark.py com o seguinte conteúdo:

    import sys
    from operator import add
    
    from pyspark.sql import SparkSession
    
    def main():
        spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .getOrCreate()
    
        lines = spark.read.text("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/inputfiles/minecraftstory.txt").rdd.map(lambda r: r[0])
        counts = lines.flatMap(lambda x: x.split(' ')) \
            .map(lambda x: (x, 1)) \
            .reduceByKey(add)
        counts.saveAsTextFile("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/outputfiles/wordcount")
    
        spark.stop()
    
    if __name__ == "__main__":
        main()
    
  2. Substitua <storageAccountName> pelo nome da sua conta de armazenamento Azure. Em seguida, guarde o ficheiro.

  3. No armazenamento Azure Blob, crie um contentor chamado adftutorial caso não exista.

  4. Crie uma pasta com o nome spark.

  5. Crie uma subpasta com o nome script na pasta spark.

  6. Carregue o ficheiro WordCount_Spark.py para a subpasta script.

Carregue o ficheiro de entrada

  1. Crie um ficheiro com o nome minecraftstory.txt com algum texto. O programa Spark conta o número de palavras neste texto.
  2. Crie uma subpasta com o nome inputfiles na pasta spark.
  3. Carregue o ficheiro minecraftstory.txt para a subpasta inputfiles.

Criar uma fábrica de dados

Siga os passos do artigo Quickstart: Crie uma fábrica de dados usando o portal Azure para criar uma fábrica de dados, caso ainda não tenha uma para trabalhar.

Criar serviços ligados

Nesta secção, vai criar dois serviços ligados:

  • Um serviço ligado Armazenamento do Azure que liga uma conta Azure storage à fábrica de dados. Este armazenamento é utilizado pelo cluster do HDInsight a pedido. Também contém o script Spark que vai ser executado.
  • Um serviço associado de HDInsight a pedido. O Azure Data Factory cria automaticamente um cluster HDInsight e executa o programa Spark. Em seguida, elimina o cluster do HDInsight depois de o cluster estar inativo durante um período de tempo pré-configurado.

Criar um serviço ligado ao Armazenamento do Azure

  1. Na página inicial, alterne para a guia Gerenciar no painel esquerdo.

    Captura de ecrã que mostra o separador Gerir.

  2. Selecione Ligações, na parte inferior da janela, e selecione + Novo.

    Botões para criar uma nova ligação

  3. Na janela Novo Serviço Ligado, selecione Data Store>Armazenamento de Blobs do Azure e depois selecione Continue.

    Selecionar o painel

  4. Para Nome da conta de armazenamento, selecione o nome na lista e, em seguida, selecione Guardar.

    Caixa para especificar o nome da conta de armazenamento

Crie um serviço vinculado do HDInsight sob demanda

  1. Selecione o botão + Novo novamente para criar outro serviço ligado.

  2. Na janela Novo Serviço Ligado, selecione Compute>Azure HDInsight, e depois selecione Continue.

    Selecionar o

  3. Na janela Novo Serviço Ligado, conclua os passos abaixo:

    a. Para Nome, introduza AzureHDInsightLinkedService.

    b. Para Tipo, confirme se está selecionado HDInsight a pedido.

    c. Para Armazenamento do Azure Linked Service, selecione AzureBlobStorage1. Criou este serviço vinculado anteriormente. Se utilizou um nome diferente, especifique o nome correto aqui.

    d. Para Tipo de cluster, selecione spark.

    e. Para ID do principal de serviço, introduza o ID do principal de serviço que tem permissão para criar um cluster do HDInsight.

    Este principal de serviço tem de ser membro da função de Contribuinte da subscrição ou do grupo de recursos no qual o cluster é criado. Para mais informações, consulte Criar uma aplicação e um principal de serviço do Microsoft Entra. A ID da entidade de serviço é equivalente à ID do aplicativo e uma chave da entidade de serviço é equivalente ao valor de um segredo do cliente.

    f. Para Chave do principal de serviço, introduza a chave.

    g. Para Grupo de recursos, selecione o mesmo grupo de recursos que utilizou ao criar a fábrica de dados. O cluster do Spark é criado neste grupo de recursos.

    h. Expandir tipo de SO.

    i. Introduza um nome para o Nome do utilizador do cluster.

    j. Introduza a Palavra-passe do cluster do utilizador.

    k. Selecione Concluir.

    Definições do serviço vinculado do HDInsight

Nota

O Azure HDInsight limita o número total de núcleos que pode usar em cada região do Azure que suporta. Para o serviço ligado HDInsight sob demanda, o cluster HDInsight é criado na mesma localização do Armazenamento do Azure que é usada como armazenamento principal. ** Certifique-se de que tem um número suficiente de quotas de CPU para o cluster ser criado com sucesso. Para obter mais informações, veja Configurar clusters no HDInsight com o Hadoop, Spark, Kafka e muito mais.

Criar um pipeline

  1. Selecione o botão + (mais) e, em seguida, selecione Pipeline no menu.

    Botões para criar um novo pipeline

  2. Na caixa de ferramentas Atividades, expanda HDInsight. Arraste a atividade Spark da caixa de ferramentas de Atividades para a área de design do pipeline.

    Arrastar a atividade do Spark

  3. Nas propriedades da janela de atividade do Spark na parte inferior, conclua os seguintes passos:

    a. Mude para o separador HDI Cluster.

    b. Selecione AzureHDInsightLinkedService, (criado no procedimento anterior).

    Especificar um serviço ligado do HDInsight

  4. Mude para o separador Script/Jar e conclua os seguintes passos:

    a. Para Serviço Vinculado de Trabalho, selecione AzureBlobStorage1.

    b. Selecione Explorar Armazenamento.

    Especificando o script Spark no

    c. Navegue para a pasta adftutorial/spark/script, selecione WordCount_Spark.py e, em seguida, selecione Concluir.

  5. Para validar o pipeline, selecione o botão Validar na barra de ferramentas. Selecione o botão >> (seta para a direita) para fechar a janela de validação.

    botão

  6. Selecione Publicar Tudo. A interface do Data Factory publica entidades (serviços ligados e pipeline) para o serviço Azure Data Factory.

    botão

Acionar uma execução de pipeline

Selecione Adicionar gatilho na barra de ferramentas e, em seguida, selecione Gatilho agora.

Monitorizar a execução do pipeline.

  1. Mude para o separador Monitor. Confirme se vê um pipeline em execução. Demora aproximadamente de 20 minutos para criar um cluster do Spark.

  2. Selecione Atualizar periodicamente para verificar o estado da execução do pipeline.

    Guia para monitorar execuções de pipeline, com

  3. Para ver as execuções de atividades associadas à execução do pipeline, selecione Ver Execuções de Atividades, na coluna Ações.

    Estado da execução do pipeline

    Você pode voltar para a visualização de execuções de pipeline selecionando o link Todas as execuções de pipeline na parte superior.

Verificar a saída

Verifique se o ficheiro de saída foi criado na pasta wordcount/outputfiles/spark do contentor adftutorial.

Localização do ficheiro de saída

O ficheiro deve ter cada palavra do ficheiro de texto de entrada e o número de vezes que a palavra apareceu no ficheiro. Por exemplo:

(u'This', 1)
(u'a', 1)
(u'is', 1)
(u'test', 1)
(u'file', 1)

O pipeline neste exemplo transforma dados utilizando uma atividade Spark e um serviço HDInsight ligado sob demanda. Aprendeu a:

  • Criar uma fábrica de dados.
  • Crie um pipeline que utiliza uma atividade do Spark.
  • Acionar uma execução de pipeline.
  • Monitorizar a execução do pipeline.

Para aprender a transformar dados executando um script Hive num cluster Azure HDInsight numa rede virtual, avance para o próximo tutorial: