Compartilhar via


Tutorial – Parte 1: Ingerir dados em um lakehouse do Microsoft Fabric usando o Apache Spark

Neste tutorial, você vai ingerir dados em lakehouses do Fabric no formato de delta lake. Alguns termos importantes para você entender:

  • Lakehouse – Um lakehouse é uma coleção de arquivos/pastas/tabelas que representa um banco de dados em um data lake usado pelo mecanismo Spark e pelo mecanismo SQL para o processamento de Big Data e que inclui funcionalidades aprimoradas para transações ACID ao usar as tabelas formatadas como Delta de código aberto.

  • Delta Lake – O Delta Lake é uma camada de armazenamento de código aberto que leva as transações ACID, o gerenciamento de metadados escalonáveis e o processamento de dados em lote e de streaming para o Apache Spark. Uma tabela do Delta Lake é um formato de tabela de dados que estende os arquivos de dados parquet com um log de transação baseado em arquivo para transações ACID e gerenciamento de metadados escalonável.

  • O Azure Open Datasets são conjuntos de dados públicos coletados que você pode usar para adicionar recursos específicos do cenário a soluções de aprendizado de máquina para obter modelos mais precisos. Os conjuntos de dados abertos estão na nuvem no Armazenamento do Microsoft Azure e podem ser acessados por vários métodos, incluindo Apache Spark, API REST, data factory e outras ferramentas.

Neste tutorial, você usará o Apache Spark para:

  • Ler dados de contêineres do Azure Open Datasets.
  • Gravar dados em uma tabela delta do lakehouse do Fabric.

Pré-requisitos

  • Adicionar um lakehouse a este notebook. Você vai baixar os dados de um blob público e, em seguida, armazená-los no lakehouse.

Acompanhar no notebook

1-ingest-data.ipynb é o notebook que acompanha este tutorial.

Para abrir o notebook que acompanha este tutorial, siga as instruções em Preparar seu sistema para tutoriais de ciência de dados para importar os notebooks para seu workspace.

Se preferir copiar e colar o código a partir dessa página, você poderá criar um novo notebook.

Certifique-se de anexar um lakehouse ao notebook antes de começar a executar o código.

Dados da rotatividade bancária

O conjunto de dados contém o status de rotatividade de dez mil clientes. Ele também inclui atributos que podem afetar a rotatividade, como:

  • Pontuação de crédito
  • Localização geográfica (Alemanha, França, Espanha)
  • Gênero (masculino, feminino)
  • Idade
  • Posse (anos de cliente do banco)
  • Saldo da conta
  • Salário estimado
  • Número de produtos que um cliente comprou por meio do banco
  • Status do cartão de crédito (se um cliente tem um cartão de crédito ou não)
  • Status de membro ativo (se é um cliente ativo do banco ou não)

O conjunto de dados também inclui colunas como o número da linha, a ID do cliente e o sobrenome do cliente, que não devem ter impacto sobre a decisão do cliente de deixar o banco.

O evento que define a rotatividade do cliente é o fechamento da conta bancária do cliente. A coluna exited do conjunto de dados refere-se ao abandono do cliente. Não há muito contexto disponível sobre esses atributos, portanto, você precisa continuar sem ter informações em segundo plano sobre o conjunto de dados. O objetivo é entender como esses atributos contribuem para o status exited.

Exemplos de linhas do conjunto de dados:

"CustomerID" "Sobrenome" "CreditScore" "Geografia" "Gênero" "Age" "Posse" "Saldo" "NumOfProducts" "HasCrCard" "IsActiveMember" "EstimatedSalary" "Saídas"
15634602 Hargrave 619 França Feminino 42 2 0,00 1 1 1 101348.88 1
15647311 Colina 608 Espanha Feminino 41 1 83807.86 1 0 1 112542.58 0

Baixar o conjunto de dados e fazer upload para o lakehouse

Dica

Ao definir os seguintes parâmetros, você pode utilizar esse notebook com diferentes conjuntos de dados facilmente.

IS_CUSTOM_DATA = False  # if TRUE, dataset has to be uploaded manually

DATA_ROOT = "/lakehouse/default"
DATA_FOLDER = "Files/churn"  # folder with data files
DATA_FILE = "churn.csv"  # data file name

Esse código faz o download de uma versão disponível publicamente do conjunto de dados e, em seguida, o armazena em um lakehouse do Fabric.

Importante

Adicione um lakehouse ao notebook antes de executá-lo. Se você não fizer isso, receberá um erro.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.blob.core.windows.net/public/bankcustomerchurn"
    file_list = [DATA_FILE]
    download_path = f"{DATA_ROOT}/{DATA_FOLDER}/raw"

    if not os.path.exists("/lakehouse/default"):
        raise FileNotFoundError(
            "Default lakehouse not found, please add a lakehouse and restart the session."
        )
    os.makedirs(download_path, exist_ok=True)
    for fname in file_list:
        if not os.path.exists(f"{download_path}/{fname}"):
            r = requests.get(f"{remote_url}/{fname}", timeout=30)
            with open(f"{download_path}/{fname}", "wb") as f:
                f.write(r.content)
    print("Downloaded demo data files into lakehouse.")

Você usará os dados que acabou de ingerir: