Compartilhar via


Integrar dados do Azure Data Lake Storage

Este artigo descreve como integrar dados a um novo workspace do Azure Databricks do Azure Data Lake Storage. Você aprenderá a acessar dados de origem com segurança em um local de armazenamento de objetos de nuvem que corresponde a um volume do Catálogo do Unity (recomendado) ou a um local externo do Catálogo do Unity. Em seguida, você aprenderá a ingerir os dados incrementalmente em uma tabela gerenciada pelo Unity Catalog usando o Auto Loader com Pipelines Declarativos do Lakeflow Spark.

Observação

Para integrar dados no DATAbricks SQL em vez de em um notebook, consulte Usar tabelas de streaming no Databricks SQL.

Antes de começar

Se você não for um administrador, este artigo pressupõe que um administrador forneceu o seguinte:

  • Acesso a um workspace do Azure Databricks com o Unity Catalog habilitado. Para obter mais informações, consulte Introdução ao Catálogo do Unity.

  • A permissão READ VOLUME no volume externo do Catálogo do Unity ou a permissão READ FILES no local externo do Catálogo do Unity que corresponde ao local de armazenamento em nuvem que contém seus dados de origem. Para obter mais informações, consulte Conceder permissões em um local externo

  • O caminho para os dados de origem.

    Exemplo de caminho de volume: /Volumes/<catalog>/<schema>/<volume>/<path>/<folder>

    Exemplo de caminho de local externo: abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>

  • Os privilégios USE SCHEMA e CREATE TABLE no esquema em que você deseja carregar dados.

  • Permissão de criação de cluster ou acesso a uma política de cluster que define um cluster de pipeline (campo cluster_type definido como dlt).

    Se o caminho para os dados de origem for um caminho de volume, o cluster deverá executar o Databricks Runtime 13.3 LTS ou versões superiores.

Importante

Se você tiver dúvidas sobre esses pré-requisitos, entre em contato com o administrador da conta.

Etapa 1: criar um cluster

Para criar um cluster, faça o seguinte:

  1. Entre no workspace do Azure Databricks.
  2. Na barra lateral, clique em Novo>Cluster.
  3. Na interface do usuário dos clusters, especifique um nome exclusivo para o cluster.
  4. Se o caminho para seus dados de origem for um caminho de volume, quanto à Versão de runtime do Databricks Runtime, selecione 13.2 ou superior.
  5. Clique em Criar cluster.

Etapa 2: criar um notebook de exploração de dados

Esta seção descreve como criar um notebook de exploração de dados para que você possa entender seus dados antes de criar seu pipeline de dados.

  1. Na barra lateral, clique em +Novo>Notebook.

    O notebook é anexado automaticamente ao último cluster usado (nesse caso, o cluster que você criou na Etapa 1: criar um cluster).

  2. Insira um nome para o notebook.

  3. Clique no botão de idioma e selecione Python ou SQL no menu suspenso. Python é selecionado por padrão.

  4. Para confirmar o acesso aos dados de origem no ADLS, cole o código a seguir em uma célula do notebook, clique em Executar Menu e clique em Executar Célula.

    SQL

    LIST '<path-to-source-data>'
    

    Python

    %fs ls '<path-to-source-data>'
    

    Substitua <path-to-source-data> pelo caminho para o diretório que contém seus dados.

    Isso exibe o conteúdo do diretório que contém o conjunto de dados.

  5. Para exibir um exemplo dos registros para entender melhor o conteúdo e o formato de cada registro, cole o seguinte em uma célula do notebook, clique em Menu Executar e clique em Executar célula.

    SQL

    SELECT * from read_files('<path-to-source-data>', format => '<file-format>') LIMIT 10
    

    Python

    spark.read.format('<file-format>').load('<path-to-source-data>').limit(10).display()
    

    Substitua os seguintes valores:

    • <file-format>: um formato de arquivo com suporte. Confira Opções de formato de arquivo.
    • <path to source data>: o caminho para um arquivo no diretório que contém seus dados.

    Isso exibe os dez primeiros registros do arquivo especificado.

Etapa 3: ingerir dados brutos

Para ingerir dados brutos, faça o seguinte:

  1. Na barra lateral, clique em Novo>Notebook.

    O notebook é anexado automaticamente ao último cluster usado (nesse caso, o cluster criado anteriormente neste artigo).

  2. Insira um nome para o notebook.

  3. Clique no botão de idioma e selecione Python ou SQL no menu suspenso. Python é selecionado por padrão.

  4. Insira o código a seguir em uma célula do bloco de anotações:

    SQL

    CREATE OR REFRESH STREAMING TABLE
      <table-name>
    AS SELECT
      *
    FROM
      STREAM read_files(
        '<path-to-source-data>',
        format => '<file-format>'
      )
    

    Python

    @dp.table(table_properties={'quality': 'bronze'})
    def <table-name>():
      return (
         spark.readStream.format('cloudFiles')
         .option('cloudFiles.format', '<file-format>')
         .load(f'{<path-to-source-data>}')
     )
    

    Substitua os seguintes valores:

    • <table-name>: um nome para a tabela que conterá os registros ingeridos.
    • <path-to-source-data>: o caminho para seus dados de origem.
    • <file-format>: um formato de arquivo com suporte. Confira Opções de formato de arquivo.

Observação

O Lakeflow Spark Declarative Pipelines não foi projetado para ser executado interativamente em células de notebook. Executar uma célula que contém a sintaxe do Lakeflow Spark Declarative Pipelines em um notebook retorna uma mensagem sobre se a consulta é sintaticamente válida, mas não executa a lógica de consulta. A etapa a seguir descreve como criar um pipeline com base no notebook de ingestão que você acabou de criar.

Etapa 4: criar e publicar um pipeline

Para criar um pipeline e publicá-lo no Catálogo do Unity, faça o seguinte:

  1. No seu espaço de trabalho, clique no ícone Fluxos de Trabalho.Tarefas e Pipelines na barra lateral.
  2. Em Novo, clique em pipeline ETL.
  3. Insira um nome para seu pipeline.
  4. Para o Modo de pipeline, selecione Com gatilho.
  5. Para o código-fonte, selecione o notebook que contém o código-fonte do pipeline.
  6. Para Destino, selecione Catálogo do Unity.
  7. Para garantir que sua tabela seja gerenciada pelo Catálogo do Unity e qualquer usuário com acesso ao esquema pai possa consultá-la, selecione um catálogo e um esquema de destino nas listas suspensas.
  8. Se você não tiver permissão de criação de cluster, selecione uma política de cluster que dê suporte a Pipelines Declarativos do Lakeflow Spark na lista suspensa.
  9. Para Avançado, defina o Canal como Visualização.
  10. Aceite todos os outros valores padrão e clique em Criar.

Etapa 5: Agendar o pipeline

Para agendar o pipeline, faça o seguinte:

  1. No seu espaço de trabalho, clique no ícone Fluxos de Trabalho.Tarefas e Pipelines na barra lateral.
  2. Clique no nome do pipeline que você quer agendar.
  3. Clique em Agendar>Adicionar um agendamento.
  4. Em Nome do trabalho, insira um nome para o trabalho.
  5. Defina o Agendamento como Agendado.
  6. Especifique o período, a hora de início e o fuso horário.
  7. Configure um ou mais endereços de email para receber alertas sobre início, êxito ou falha de pipeline.
  8. Clique em Criar.

Próximas etapas