Qu’est-ce que Auto Loader ?

Auto Loader traite de façon incrémentielle et efficace les nouveaux fichiers de données à mesure qu’ils arrivent dans le stockage cloud, sans aucune configuration supplémentaire.

Comment Auto Loader fonctionne-t-il ?

Auto Loader traite de façon incrémentielle et efficace les nouveaux fichiers de données à mesure qu’ils arrivent dans le stockage cloud. Auto Loader peut charger des fichiers de données depuis AWS S3 (s3://), Azure Data Lake Storage Gen2 (ADLS Gen2, abfss://), Google Cloud Storage (GCS, gs://), le Stockage Blob Azure (wasbs://), ADLS Gen1 (adl://) et Databricks File System (DBFS, dbfs:/). Auto Loader peut ingérer les formats de fichiers JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT et BINARYFILE.

Remarque

Auto Loader fournit une source de flux structuré appelée cloudFiles. À partir du chemin d’accès du 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 Delta Live Tables.

Vous pouvez utiliser Auto Loader pour traiter des milliards de fichiers afin de migrer ou de renvoyer une table. Auto Loader effectue une mise à l’échelle pour prendre en charge l’ingestion en quasi-temps réel de millions de fichiers par heure.

Comment le chargeur automatique effectue-t-il le suivi de l’ingestion ?

À mesure que les fichiers sont découverts, leurs métadonnées sont conservées dans un magasin évolutif de paires clé-valeur (RocksDB) à l’emplacement du point de contrôle de votre pipeline Auto Loader. Ce magasin de paires clé-valeur garantit que les données sont traitées une seule fois.

En cas d’échec, Auto Loader peut reprendre là où il s’est arrêté grâce aux informations stockées dans l’emplacement du point de contrôle et continuer à fournir des garanties « une seule fois » lors de l’écriture des données dans Delta Lake. Vous n’avez pas besoin de maintenir ni de gérer vous-même un état quelconque pour obtenir la tolérance aux pannes ou la sémantique « une seule fois ».

Ingestion incrémentielle à l’aide d’Auto Loader avec des tables dynamiques Delta

Databricks recommande Auto Loader dans Delta Live Tables pour l’ingestion incrémentielle des données. Delta Live Tables étend les fonctionnalités d’Apache Spark Structured Streaming et vous permet d’écrire quelques lignes de code Python ou SQL déclaratif pour déployer un pipeline de données de qualité production avec :

  • Mise à l’échelle automatique de l’infrastructure de calcul pour la réduction des coûts
  • Contrôles de la qualité des données avec les attentes
  • Gestion automatique de l’évolution du schéma
  • Monitoring via des métriques dans le journal des événements

Vous n’avez pas besoin de fournir un emplacement de schéma ou de point de contrôle, car Delta Live Tables gère automatiquement ces paramètres pour vos pipelines. Consultez Charger des données avec Delta Live Tables.

Databricks recommande également Auto Loader chaque fois que vous utilisez Apache Spark Structured Streaming pour ingérer des données à partir du stockage d’objets cloud. Les API sont disponibles dans Python et Scala.

Bien démarrer avec Databricks Auto Loader

Consultez les articles suivants pour commencer à configurer l’ingestion de données incrémentielles à l’aide d’Auto Loader avec delta Live Tables :

Exemples : Modèles courants d’Auto Loader

Pour obtenir des exemples de modèles courants d’Auto Loader, consultez modèles courants de chargement de données.

Configurer les options d’Auto Loader

Vous pouvez régler Auto Loader en fonction du volume, de la variété et de la vélocité des données.

Pour obtenir la liste complète des options Auto Loader, consultez :

Si vous rencontrez des performances inattendues, consultez la FAQ.

Configurer les modes de détection de fichiers de chargeur automatique

Le chargeur automatique prend en charge deux modes de détection de fichiers. Consultez l'article :

Avantages de Auto Loader sur l’utilisation de Structured Streaming directement sur des fichiers

Dans Apache Spark, vous pouvez lire des fichiers de manière incrémentielle en utilisant spark.readStream.format(fileFormat).load(directory). Auto Loader offre les avantages suivants par rapport à la source du fichier :

  • Scalabilité : Auto Loader peut découvrir des milliards de fichiers de manière efficace. Les renvois peuvent être effectués de manière asynchrone pour éviter de gaspiller des ressources de calcul.
  • Performances : le coût de la détection de fichiers avec Auto Loader se met à l’échelle du nombre de fichiers ingérés plutôt que du nombre de répertoires dans lesquels les fichiers peuvent atterrir. ConsultezQu’est-ce que le mode de liste de répertoire du chargeur automatique ?
  • Prise en charge de l’inférence et de l’évolution de schéma : Auto Loader peut détecter les dérives de schéma, vous avertir lorsque des modifications de schéma se produisent et récupérer les données qui auraient autrement été ignorées ou perdues. Consultez Comment fonctionne l’inférence de schéma Auto Loader ?.
  • Coût : Auto Loader utilise des API cloud natives pour obtenir les listes des fichiers qui existent dans le stockage. En outre, le mode Notification de fichiers d’Auto Loader peut contribuer à réduire davantage les coûts liés au cloud en évitant complètement la liste de répertoires. Auto Loader peut configurer automatiquement des services de notification de fichiers sur le stockage pour rendre la détection de fichiers beaucoup moins chère.