Partager via


Vue d’ensemble du chargeur automatique avec des événements de fichier

Découvrez l’option cloudFiles.useManagedFileEvents avec le chargeur automatique, qui fournit une découverte efficace des fichiers.

Comment fonctionne le chargeur automatique avec les événements de fichier ?

Le chargeur automatique avec les événements de fichier utilise les fonctionnalités de notifications d’événements de fichier fournies par les fournisseurs cloud. Vous pouvez configurer des conteneurs de stockage cloud pour publier des notifications sur des événements de fichier tels que la création et la modification de fichiers. Par exemple, avec les notifications d’événements Amazon S3, une nouvelle arrivée de fichier peut déclencher une notification à un sujet Amazon SNS. Une file d’attente Amazon SQS peut ensuite être associée au sujet SNS pour le traitement de l’événement de manière asynchrone.

Le diagramme suivant illustre ce modèle :

Systèmes de notification d’événements de stockage cloud

Les événements de fichier Databricks constituent un service qui configure les ressources cloud pour surveiller les événements de fichier. Vous pouvez également configurer vous-même les ressources cloud et fournir votre propre file d’attente de stockage.

Une fois les ressources cloud configurées, le service écoute les événements de fichier et met en cache les informations de métadonnées de fichier. Le chargeur automatique utilise ce cache pour découvrir les fichiers lorsqu’il est exécuté avec cloudFiles.useManagedFileEvents défini sur true.

Le diagramme suivant illustre ces interactions :

Chargeur automatique avec des événements de fichier

Lorsqu’un flux s’exécute pour la première fois avec cloudFiles.useManagedFileEvents défini sur true, le chargeur automatique effectue une liste complète des répertoires du chemin de chargement pour découvrir tous les fichiers et se synchroniser avec le cache des événements de fichier (sécuriser une position de lecture valide dans le cache et le stocker dans le point de contrôle du flux). Les exécutions suivantes du chargeur automatique découvrent de nouveaux fichiers en lisant directement à partir du cache des événements de fichier à l’aide de la position de lecture stockée et ne nécessitent pas de liste de répertoires.

Nous vous recommandons d’exécuter vos flux de chargeur automatique au moins une fois tous les 7 jours pour tirer parti de la découverte de fichiers incrémentielle à partir du cache. Si vous n’exécutez pas Auto Loader au moins aussi souvent, la position de lecture stockée devient invalide et Auto Loader doit effectuer une liste complète des répertoires pour se synchroniser avec le cache des événements de fichier.

Quand le chargeur automatique avec les événements de fichier utilise-t-il la liste des répertoires ?

Le chargeur automatique effectue une liste complète de répertoires quand :

  • Démarrage d’un nouveau flux
  • Migration d’un flux à partir d’une liste de répertoires ou de notifications de fichiers héritées
  • Le chemin de chargement d’un flux est modifié
  • Le chargeur automatique avec les événements de fichier n’est pas exécuté pendant une durée de plus de 7 jours
  • Des mises à jour sont effectuées sur l'emplacement externe, ce qui invalide la position de lecture d'Auto Loader. Par exemple, lorsque les événements de fichier sont désactivés puis réactivés, lorsque le chemin d’accès de l’emplacement externe est modifié, ou lorsqu’une autre file d’attente est attribuée à l’emplacement externe.

Le chargeur automatique effectue toujours un inventaire complet lors de la première exécution, même lorsque includeExistingFiles est défini sur false. Cet indicateur vous permet d’ingérer tous les fichiers créés après l’heure de début du flux. Le chargeur automatique répertorie l’intégralité du répertoire pour découvrir tous les fichiers créés après l’heure de début du flux, sécuriser une position de lecture dans le cache des événements de fichier et le stocker dans le point de contrôle. Les exécutions suivantes sont lues directement à partir du cache des événements de fichier et ne nécessitent pas de liste de répertoires.

Le service d’événements de fichier Databricks effectue également des listes complètes de répertoires régulièrement sur l’emplacement externe pour confirmer qu’il n’a pas manqué de fichiers (par exemple, si la file d’attente fournie est mal configurée). Les premières listes de répertoires complets commencent dès que les événements de fichier sont activés sur l’emplacement externe. Les inscriptions suivantes se produisent périodiquement tant qu'il y a au moins un flux Auto Loader utilisant des événements de fichier pour ingérer des données.

Meilleures pratiques pour le chargeur automatique avec les événements de fichier

Suivez ces bonnes pratiques pour optimiser les performances et la fiabilité lors de l’utilisation du chargeur automatique avec des événements de fichier.

Utiliser des volumes pour une découverte de fichiers optimale

Pour améliorer les performances, Databricks recommande de créer un volume externe pour chaque chemin ou sous-répertoire à partir duquel Auto Loader charge des données et de fournir les chemins de volume (par exemple, /Volumes/someCatalog/someSchema/someVolume) au chargeur automatique, plutôt que des chemins cloud (par exemple, s3://bucket/path/to/volume). Cela optimise la découverte de fichiers, car le chargeur automatique est en mesure de répertorier le volume à l’aide d’un modèle d’accès aux données optimisé.

Prendre en compte les déclencheurs d’arrivée de fichiers pour les pipelines pilotés par les événements

Pour le traitement des données pilotées par les événements, envisagez d’utiliser un déclencheur d’arrivée de fichier au lieu d’un pipeline continu. Les déclencheurs d’arrivée de fichiers démarrent automatiquement votre pipeline lorsque de nouveaux fichiers arrivent, fournissant une meilleure utilisation des ressources et une meilleure efficacité des coûts, car votre cluster s’exécute uniquement lorsqu’il existe de nouveaux fichiers à traiter.

Configurer les intervalles appropriés avec des déclencheurs continus

Nous vous recommandons d’utiliser des déclencheurs d’arrivée de fichier pour traiter les fichiers dès qu’ils arrivent. Toutefois, si votre cas d’usage nécessite l’utilisation de déclencheurs continus tels que Trigger.ProcessingTime, nous vous recommandons de configurer les intervalles de déclencheur sur 1 minute ou ultérieur (défini à l’aide pipelines.trigger.interval de Pipelines déclaratifs Lakeflow Spark). Cela réduit la fréquence d’interrogation pour vérifier si de nouveaux fichiers sont arrivés et permet à un nombre plus élevé de flux de s’exécuter simultanément à partir de votre espace de travail.

Limitations du chargeur automatique avec des événements de fichier

  • Les réécritures de chemin ne sont pas prises en charge. Les réécritures de chemin sont utilisées lorsque plusieurs compartiments ou conteneurs sont montés sous DBFS, qui est un modèle d’utilisation déconseillé.

Pour obtenir la liste générale des limitations des événements de fichier, consultez les limitations des événements de fichier.

Questions fréquentes (FAQ)

Trouvez des réponses aux questions fréquemment posées sur Auto Loader et ses événements de fichiers.

Comment vérifier que les événements de fichier sont configurés correctement ?

Cliquez sur le bouton Tester la connexion dans la page d’emplacement externe. Si les événements de fichier sont configurés correctement, une coche verte s’affiche pour l’élément de lecture des événements de fichier . Si vous venez de créer l’emplacement externe et avez activé les événements de fichier en Automatic mode, le test indique Skipped lorsque Databricks configure des notifications pour l’emplacement externe. Patientez quelques minutes, puis cliquez à nouveau sur Tester la connexion . Si Databricks n’a pas les autorisations requises pour configurer ou lire à partir d’événements de fichier, une erreur s’affiche pour l’élément de lecture des événements de fichier .

Puis-je éviter une liste complète d’annuaires pendant l’exécution initiale ?

Non. Même si includeExistingFiles est défini sur false, le chargeur automatique effectue un listage de répertoires pour découvrir les fichiers créés après le démarrage du flux et pour actualiser le cache des événements de fichiers (sécuriser une position de lecture valide dans le cache et le stocker dans le point de contrôle du flux).

Dois-je définir cloudFiles.backfillInterval pour éviter les fichiers manquants ?

Non. Ce paramètre a été recommandé pour le mode de notification de fichier hérité, car les systèmes de notification de stockage cloud peuvent entraîner des fichiers manquants ou arrivés en retard. Désormais, Databricks effectue régulièrement des listings de répertoires complets sur l’emplacement externe. Les premières listes de répertoires complets commencent dès que les événements de fichier sont activés sur l’emplacement externe. Les listes subséquentes sont effectuées périodiquement tant qu'il existe au moins un flux Auto Loader utilisant des événements de fichier pour ingérer des données.

J’ai configuré des événements de fichier avec une file d’attente de stockage fournie, mais la file d’attente a été mal configurée et j’ai manqué des fichiers. Comment vérifier que le chargeur automatique ingère les fichiers manqués lorsque ma file d’attente a été mal configurée ?

Tout d’abord, vérifiez que la configuration incorrecte de la file d’attente fournie est corrigée. Pour vérifier, cliquez sur le bouton Tester la connexion dans la page d’emplacement externe. Si les événements de fichier sont configurés correctement, une coche verte s’affiche pour l’élément de lecture des événements de fichier .

Databricks effectue une liste complète de répertoires pour les emplacements externes avec les événements de fichier activés. Cette liste de répertoires découvre tous les fichiers qui ont été manqués pendant la période de configuration incorrecte et les stocke dans le cache des événements de fichier.

Une fois que la configuration incorrecte est corrigée et que Databricks termine la liste des répertoires, le chargeur automatique continue à lire à partir du cache des événements de fichier et à ingérer automatiquement tous les fichiers manqués pendant la période de configuration incorrecte.

Comment Databricks obtient-il les autorisations nécessaires pour créer des ressources cloud et lire et supprimer des messages de la file d’attente ?

Databricks utilise les autorisations accordées dans les informations d’identification de stockage associées à l’emplacement externe sur lequel les événements de fichier sont activés.