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
Obtenha uma assinatura do Microsoft Fabric. Ou, inscreva-se para uma avaliação gratuita do Microsoft Fabric.
Entre no Microsoft Fabric.
Use o alternador de experiência no lado esquerdo da sua página inicial para mudar para a experiência de Ciência de Dados Synapse.
- 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.")
Conteúdo relacionado
Você usará os dados que acabou de ingerir: