Qu’est-ce qu’Auto Loader ?
Auto Loader traite de manière incrémentielle et efficace les nouveaux fichiers de données dès leur arrivée dans le stockage cloud, sans configuration supplémentaire.
Comment fonctionne Auto Loader ?
Auto Loader traite de manière incrémentielle et efficace les nouveaux fichiers de données à mesure qu'ils arrivent dans le stockage cloud. Il fournit une source Structured Streaming appelée cloudFiles. Étant donné un chemin de répertoire d’entrée sur le stockage de fichiers dans le cloud, la source cloudFiles traite automatiquement les nouveaux fichiers à mesure qu’ils arrivent, avec la possibilité de traiter également les fichiers existants dans ce répertoire. Auto Loader prend en charge Python et SQL dans les Lakeflow Pipelines.
Vous pouvez utiliser Auto Loader pour traiter des milliards de fichiers afin de migrer ou de remplir rétroactivement une table. Auto Loader s'adapte pour prendre en charge l'ingestion quasi en temps réel de millions de fichiers par heure.
Sources prises en charge d'Auto Loader
Auto Loader peut charger des fichiers de données à partir des sources suivantes :
-
Amazon S3 (
s3://) -
Azure Data Lake Storage (ADLS,
abfss://) -
Google Cloud Storage (GCS,
gs://) -
Volumes Unity Catalog (
/Volumes/) -
Stockage Azure Blob (
wasbs://)
Le Driver Windows Azure Blob Storage (WASB) hérité a été déprécié. ABFS présente de nombreux avantages par rapport à WASB. Voir la documentation Azure sur ABFS. Pour la documentation sur l'utilisation du Driver WASB hérité, voir Se connecter à Azure Blob Storage avec WASB (hérité).
Auto Loader peut ingérer les formats de fichiers JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT et BINARYFILE. Auto Loader prend également en charge la lecture des fichiers pré-compressés dans ces formats. Pour les types de compression pris en charge par format, consultez les options de format de données.
Comment Auto Loader suit-il la progression de l'ingestion ?
Lorsque les fichiers sont découverts, leurs métadonnées sont conservées dans un magasin clé-valeur évolutif (RocksDB) dans l' emplacement de point de contrôle de votre pipeline Auto Loader. Ce magasin clé-valeur garantit que les données ne sont traitées qu'une seule fois.
En cas d'échec, Auto Loader peut reprendre là où il s'était arrêté grâce aux informations stockées dans l'emplacement de checkpoint et continuer à fournir des garanties de type « exactement une fois » lors de l'écriture de données dans Delta Lake. Vous n'avez pas besoin de maintenir ou de gérer vous-même un état pour atteindre la tolérance aux pannes ou la sémantique d'exécution unique.
Ingestion incrémentielle à l'aide d'Auto Loader avec les LakeFlow Pipelines
Databricks recommande Auto Loader dans les LakeFlow pipelines pour l'ingestion de données incrémentielle. Vous n'avez pas besoin de fournir de schéma ou d'emplacement de point de contrôle car les LakeFlow Pipelines gèrent automatiquement ces paramètres pour vos pipelines. Voir Configurer Auto Loader pour les charges de travail de production pour la configuration recommandée.
Databricks recommande également Auto Loader chaque fois que vous utilisez Apache Spark Structured Streaming pour ingérer des données depuis le stockage d'objets cloud. Les APIs sont disponibles en Python et Scala.
Démarrez avec Databricks Auto Loader
Consultez les articles suivants pour get start à configurer l'ingestion de données incrémentielle à l'aide d'Auto Loader avec les LakeFlow Pipelines :
Exemples : Modèles courants d'Auto Loader
Pour des exemples de modèles Auto Loader courants, consultez Modèles de chargement de données courants.
Configurer les options d'Auto Loader
Pour une référence complète des options de configuration qui régissent la façon dont Auto Loader lit et traite les fichiers, consultez Auto Loader.
Personnaliser Auto Loader
Vous pouvez régler Auto Loader en fonction du volume, de la variété et de la vélocité des données.
- Configure l'inférence et l'évolution du schéma dans Auto Loader: Configurez la manière dont Auto Loader infère et fait évoluer le schéma de vos données au fil du temps, y compris la gestion des nouvelles colonnes et des modifications de type.
- Élargissement automatique du type avec Auto Loader
- Configurer Auto Loader pour les charges de travail de production: optimisez Auto Loader pour la fiabilité et les performances en production, y compris la gestion des points de contrôle, des erreurs et de la rétention des fichiers.
- Rétention des données sources: archivez ou supprimez automatiquement les fichiers après l'ingestion afin de réduire les coûts de stockage et d'accélérer la découverte des fichiers.
- Surveiller et observer Auto Loader: Surveillez les métriques clés, interrogez l'état d'ingestion au niveau du fichier, créez des tableaux de bord d'observabilité et résolvez les problèmes courants.
Si vous rencontrez des performances inattendues, consultez la FAQ d'Auto Loader.
Configurer les modes de détection de fichiers d'Auto Loader
Auto Loader prend en charge deux modes de détection de fichiers. Par default, Auto Loader utilise le mode de listage des répertoires. Cependant, Databricks recommande le mode de notification de fichiers utilisant les événements de fichiers pour la plupart des charges de travail. Voir :
- Configurer les Stream d'Auto Loader en mode de liste de répertoires
- Configurer les Streams Auto Loader en mode de notification de fichier.
Gérer les données désordonnées
Auto Loader ne garantit pas l’ordre dans lequel les fichiers sont découverts ou traités, que vous utilisiez le mode d’affichage de répertoire ou de notification de fichiers. Utilisez les stratégies suivantes pour concevoir vos pipelines afin de gérer les arrivées de fichiers désordonnées.
LakeFlow Pipelines avec AUTO CDC
Si vous utilisez les LakeFlow Pipelines avec Auto Loader et AUTO CDC, configurez la rétention des marqueurs de suppression afin que les enregistrements supprimés soient conservés suffisamment longtemps pour gérer les arrivées de fichiers désordonnées. Définissez la propriété de table pipelines.cdc.tombstoneGCThresholdInSeconds sur la table streaming cible à une valeur qui dépasse le délai maximal attendu entre l’arrivée de l’événement et l’exécution du pipeline. La durée de conservation default est de deux jours. Pour plus de détails, voir create_auto_cdc_flow.
Structured Streaming sans LakeFlow pipelines
Si vous utilisez Apache Spark Structured Streaming directement avec Auto Loader (sans les Lakeflow pipelines), prenez en compte les modèles suivants pour gérer les données désordonnées :
- Préférez les suppressions logiques aux suppressions physiques : suivez un drapeau
deletedet un Timestamp au lieu de supprimer des lignes, afin qu'une suppression tardive ne crée pas de conflit avec les enregistrements précédents. - Comparez les timestamps avant d'appliquer les mises à jour : lors de l'upsertion, comparez le timestamp de mise à jour de l'enregistrement entrant avec le timestamp actuel de la ligne cible pour éviter d'écraser des données obsolètes.
Avantages d’Auto Loader par rapport à l’utilisation de Structured Streaming directement sur des fichiers
Dans Apache Spark, vous pouvez lire les fichiers de manière incrémentielle en utilisant spark.readStream.format(fileFormat).load(directory). Auto Loader offre les avantages suivants par rapport à la source de fichier :
- Évolutivité : Auto Loader peut découvrir efficacement des milliards de fichiers. Les remplissages rétrospectifs peuvent être effectués de manière asynchrone afin d'éviter de gaspiller les ressources de compute.
- Performances : Le coût de découverte des fichiers avec Auto Loader évolue en fonction du nombre de fichiers ingérés au lieu du nombre de répertoires où les fichiers peuvent atterrir. Voir Configurer les Streams Auto Loader en mode de liste de répertoires.
- Prise en charge de l'inférence et de l'évolution du schéma : Auto Loader peut détecter les drifts de schéma, vous avertir lorsque des modifications de schéma se produisent et récupérer les données qui auraient été ignorées ou perdues autrement. Consultez Comment fonctionne l’inférence de schéma d’Auto Loader ?
- Coût : Auto Loader utilise les APIs cloud natives pour obtenir des listes de fichiers qui existent dans le stockage. De plus, le mode de notification de fichiers d'Auto Loader peut aider à réduire davantage vos coûts cloud en évitant complètement la liste des répertoires. Auto Loader peut configurer automatiquement des services de notification de fichiers sur le stockage pour rendre la découverte de fichiers beaucoup moins chère.