Compartilhar via


Práticas recomendadas para gravar em arquivos no data Lake com fluxos de dados

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Se estiver se familiarizando com o Azure Data Factory, confira Introdução ao Azure Data Factory.

Neste tutorial, você aprenderá as melhores práticas que podem ser aplicadas ao gravar arquivos no ADLS Gen2 ou no Armazenamento de Blobs do Azure usando os fluxos de dados. Você precisará de acesso a uma conta de Armazenamento de Blobs do Azure ou do Azure Data Lake Storage Gen2 para ler um arquivo Parquet e depois armazenar os resultados em pastas.

Pré-requisitos

  • Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
  • Conta de Armazenamento do Azure. Você usa o armazenamento do ADLS como um armazenamento de dados de origem e do coletor. Se você não tiver uma conta de armazenamento, confira Criar uma conta de armazenamento do Azure a fim de conhecer as etapas para criar uma.

As etapas neste tutorial supõem que você tem

Criar uma data factory

Nesta etapa, você cria um data factory e abre a UX do Data Factory para criar um pipeline no data factory.

  1. Abra o Microsoft Edge ou Google Chrome. Atualmente, a interface do usuário do Data Factory é compatível apenas com os navegadores da Web do Microsoft Edge e do Google Chrome.

  2. No menu à esquerda, escolha Criar um recurso>Integração>Data Factory

  3. Na página Novo data factory, em Nome, insira ADFTutorialDataFactory

  4. Selecione a assinatura do Azure na qual deseja criar o data factory.

  5. Em Grupo de Recursos, use uma das seguintes etapas:

    a. Selecione Usar existentee selecione um grupo de recursos existente na lista suspensa.

    b. Escolha Criar novoe insira o nome de um grupo de recursos. Para obter mais informações sobre grupos de recursos, confira Usar grupos de recursos para gerenciar recursos do Azure.

  6. Em Versão, selecione V2.

  7. Em Local, informe uma localização para o data factory. Apenas os locais com suporte são exibidos na lista suspensa. Os armazenamentos de dados (por exemplo, Armazenamento do Microsoft Azure e Banco de Dados SQL) e os serviços de computação (por exemplo, Azure HDInsight) usados pelo data factory podem estar em outras regiões.

  8. Selecione Criar.

  9. Depois que a criação for concluída, você verá o aviso no centro de notificações. Selecione Ir para o recurso para navegar até a página do Data Factory.

  10. Clique em Criar e Monitorar para iniciar a IU do Azure Data Factory em uma guia separada.

Criar um pipeline com uma atividade de fluxo de dados

Nesta etapa, será criado um pipeline que contém uma atividade de fluxo de dados.

  1. Na página inicial do Azure Data Factory, selecione Orquestrar.

    Screenshot that shows the data factory home page with the Orchestrate button highlighted.

  2. Na guia Geral do pipelione, insira DeltaLake como o Nome do pipeline.

  3. Na barra superior da fábrica, deslize o controle deslizante de depuração do Fluxo de Dados para a posição ligado. O modo de depuração permite o teste interativo da lógica de transformação em um cluster do Spark ao vivo. Os clusters de Fluxo de Dados levam de 5 a 7 minutos para serem ativados e recomendamos que os usuários ativem a depuração primeiro, caso planejem realizar o desenvolvimento de Fluxo de Dados. Para saber mais, consulte Modo de depuração.

    Data Flow Activity

  4. No painel Atividades, expanda o acorde Mover e Transformar. Arraste e solte a atividade de Fluxo de Dados do painel para a tela do pipeline.

    Screenshot that shows the pipeline canvas where you can drop the Data Flow activity.

  5. No pop-up Adicionar Fluxo de Dados, escolha Criar novo Fluxo de Dados e, em seguida, nomeie o fluxo de dados DeltaLake. Clique em Concluir quando tiver terminado.

    Screenshot that shows where you name your data flow when you create a new data flow.

Criar lógica de transformação na tela de fluxo de dados

Você receberá qualquer dado de origem (neste tutorial, usaremos uma fonte de arquivo Parquet) e usará uma transformação de coletor para colocar os dados no formato Parquet usando os mecanismos mais eficazes para ETL do data lake.

Final flow

Objetivos do tutorial

  1. Escolha qualquer um dos seus conjuntos de dados de origem em um novo fluxo de dados 1. Usar fluxos de dados para particionar efetivamente seu conjunto de dados do coletor
  2. Colocar seus dados particionados em pastas de lakes do ADLS Gen2

Iniciar em uma tela de fluxo de dados em branco

Primeiro, vamos configurar o ambiente de fluxo de dados para cada um dos mecanismos descritos abaixo para enviar dados no ADLS Gen2

  1. Clique na transformação de origem.
  2. Clique no botão novo ao lado de conjunto de dados no painel inferior.
  3. Escolha ou crie um conjunto de dados. Para esta demonstração, usaremos um conjunto de dados Parquet chamado de “User Data”.
  4. Adicione uma transformação de coluna derivada. Usaremos isso como uma maneira de definir os nomes de pasta desejados dinamicamente.
  5. Adicione uma transformação de coletor.

Saída de pasta hierárquica

É muito comum usar valores exclusivos nos dados para criar hierarquias de pastas para particionar esses dados no lake. Essa é uma maneira ideal de organizar e processar dados no lake e no Spark (o mecanismo de computação por trás dos fluxos de dados). No entanto, organizar a saída dessa maneira custará um pouco de desempenho. Você terá uma pequena redução no desempenho geral do pipeline com esse mecanismo no coletor.

  1. Volte ao designer de fluxo de dados e edite o fluxo de dados criado acima. Clique na transformação do coletor.
  2. Clique em Otimizar > Definir particionamento > Chave
  3. Escolha as colunas que você quer usar para definir a estrutura hierárquica de pastas.
  4. Observe que o exemplo a seguir usa ano e mês como as colunas para nomear a pasta. Os resultados serão pastas na forma releaseyear=1990/month=8.
  5. Ao acessar as partições de dados em uma fonte de fluxo de dados, você apontará apenas para a pasta de nível superior acima de releaseyear e usará um padrão curinga para cada pasta seguinte, por exemplo: **/**/*.parquet
  6. Para manipular os valores de dados ou mesmo se precisar gerar valores sintéticos para nomes de pastas, use a transformação de coluna derivada para criar os valores que você quer usar nos nomes de pasta.

Key partitioning

Nomear pasta como valores de dados

Uma técnica de coletor com desempenho um pouco melhor para os dados do lake que usa ADLS Gen2, que não oferece o mesmo benefício do particionamento de chave/valor, é Name folder as column data. Enquanto o estilo de particionamento de chave da estrutura hierárquica permite que você processe fatias de dados com mais facilidade, essa técnica é uma estrutura de pastas nivelada que pode gravar dados mais rapidamente.

  1. Volte ao designer de fluxo de dados e edite o fluxo de dados criado acima. Clique na transformação do coletor.
  2. Clique em Otimizar > Definir particionamento > Usar particionamento atual.
  3. Clique em Configurações > Nomear pasta como dados de coluna.
  4. Escolha a coluna que você quer usar para gerar nomes de pastas.
  5. Para manipular os valores de dados ou mesmo se precisar gerar valores sintéticos para nomes de pastas, use a transformação de coluna derivada para criar os valores que você quer usar nos nomes de pasta.

Folder option

Nomear arquivo como valores de dados

As técnicas listadas nos tutoriais acima são bons casos de uso para a criação de categorias de pastas no data lake. O esquema de nomenclatura de arquivo padrão empregado por essas técnicas é usar o ID do trabalho do executor Spark. Às vezes, você pode querer definir o nome do arquivo de saída em um coletor de texto de fluxo de dados. Essa técnica só é sugerida para arquivos pequenos. O processo de mesclagem de arquivos de partição em um único arquivo de saída é um processo de execução prolongada.

  1. Volte ao designer de fluxo de dados e edite o fluxo de dados criado acima. Clique na transformação do coletor.
  2. Clique em Otimizar > Definir particionamento > Partição única. Esse é o requisito de partição única que cria um gargalo no processo de execução à medida que os arquivos são mesclados. Essa opção só é recomendada para arquivos pequenos.
  3. Clique em Configurações > Nomear arquivo como dados de coluna.
  4. Escolha a coluna que você quer usar para gerar nomes de arquivos.
  5. Para manipular os valores de dados ou mesmo se precisar gerar valores sintéticos para nomes de arquivo, use a transformação de coluna derivada para criar os valores que você quer usar nos nomes de arquivo.

Saiba mais sobre coletores de fluxo de dados.