Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel ingère des données dans Fabric lakehouses au format delta lake. Nous définissons ici quelques termes importants :
Lakehouse - Un lakehouse est une collection de fichiers, de dossiers et/ou de tables qui représentent une base de données sur un lac de données. Le moteur Spark et le moteur SQL utilisent des ressources lakehouse pour le traitement du Big Data. Lorsque vous utilisez des tables au format Delta open source, ce traitement inclut des fonctionnalités de transaction ACID améliorées.
Delta Lake - Delta Lake est une couche de stockage open source qui apporte des transactions ACID, une gestion évolutive des métadonnées et un traitement par lots et streaming des données vers Apache Spark. En tant que format de table de données, Delta Lake étend les fichiers de données Parquet avec un journal des transactions basé sur des fichiers pour les transactions ACID et la gestion évolutive des métadonnées.
Azure Open Datasets sont des jeux de données publics organisés qui ajoutent des fonctionnalités spécifiques au scénario aux solutions Machine Learning. Cela conduit à des modèles plus précis. Les jeux de données ouverts sont des ressources cloud qui résident sur Microsoft Azure Storage. Apache Spark, l’API REST, la fabrique de données et d’autres outils peuvent accéder à Open Datasets.
Dans ce tutoriel, vous utilisez Apache Spark pour :
- Lit les données des conteneurs Azure Open Datasets.
- Écrivez des données dans une table delta Fabric lakehouse.
Conditions préalables
Obtenez un abonnement Microsoft Fabric. Vous pouvez également vous inscrire à un essai gratuit Microsoft Fabric.
Connectez-vous à Microsoft Fabric.
Basculez vers Fabric à l’aide du sélecteur d’expérience situé en bas à gauche de votre page d’accueil.
- Ajoutez un lakehouse à ce notebook. Dans ce tutoriel, vous téléchargez d’abord des données à partir d’un objet blob public. Ensuite, les données sont stockées dans cette ressource de type "lakehouse".
Note
Avant de commencer, veillez à effectuer les étapes de préparation de votre système : créer un espace de travail, créer un lachouse et l’attacher à votre bloc-notes. Les exemples de données utilisés dans ce didacticiel proviennent d’un conteneur public Azure Open Datasets et sont accessibles par programmation dans le code du notebook.
Suivez avec un bloc-notes
Le notebook 1-ingest-data.ipynb accompagne ce tutoriel.
Pour ouvrir le bloc-notes associé pour ce didacticiel, suivez les instructions de Préparer votre système pour les didacticiels de science des données pour importer le bloc-notes dans votre espace de travail.
Si vous préférez copier et coller le code à partir de cette page, vous pouvez créer un bloc-notes.
Assurez-vous d’attacher un lakehouse au notebook avant de commencer à exécuter du code.
Conseil
Ce didacticiel lit des exemples de données à partir d’un conteneur Azure Open Datasets. Si vous rencontrez une erreur d’accès lors du chargement des données, vous pouvez télécharger manuellement le fichier churn.csv à partir du fabric-samples GitHub référentiel et le charger dans votre lakehouse.
Données de perte de clients bancaires
Le jeu de données contient des informations sur l’état d’attrition pour 10 000 clients. Il inclut également des attributs qui peuvent influencer le churn, par exemple :
- Score de crédit
- Emplacement géographique (Allemagne, France, Espagne)
- Sexe (mâle, femelle)
- Âge
- Durée (le nombre d’années pendant laquelle le client était un client à cette banque)
- Solde du compte
- Salaire estimé
- Nombre de produits achetés par le biais de la banque
- État de la carte de crédit (qu’un client dispose ou non d’une carte de crédit)
- État du membre actif (que le client dispose ou non d’un statut client bancaire actif)
Le jeu de données inclut également ces colonnes :
- numéro de ligne
- ID client
- nom de famille du client
Ces colonnes ne devraient pas avoir d’influence sur la décision d’un client de quitter la banque.
La fermeture d’un compte bancaire client définit la perte de clientèle de ce client. La colonne de l'ensemble de données exited est relative à l'abandon des clients. Peu de contexte sur ces attributs est disponible. Vous devez donc continuer sans informations générales sur le jeu de données. Notre objectif est de comprendre comment ces attributs contribuent à l’état exited .
Exemples de lignes de jeu de données :
| « CustomerID » | « Nom de famille » | « CreditScore » | « Geography » | « Sexe » | Âge | Titularisation | « Balance » | « NumOfProducts » | « HasCrCard » | « IsActiveMember » | SalaireEstimé | « Terminé » |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15634602 | Hargrave | 619 | France | Femelle | 42 | 2 | 0,00 | 1 | 1 | 1 | 101348.88 | 1 |
| 15647311 | Colline | 608 | Espagne | Femelle | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
Télécharger le jeu de données et charger sur lakehouse
Conseil
Lorsque vous définissez les paramètres suivants, vous pouvez facilement utiliser ce notebook avec différents jeux de données :
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
L’extrait de code suivant télécharge une version disponible publiquement du jeu de données, puis stocke cette ressource dans une Fabric lakehouse :
Important
Veillez à ajouter un lakehouse au notebook avant de l’exécuter. L’échec de cette opération entraîne une erreur.
import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
remote_url = "https://synapseaisolutionsa.z13.web.core.windows.net/data/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.")
Contenu connexe
Vous utilisez les données que vous venez d’ingérer :