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.
L’option cloudFiles.useManagedFileEvents avec le chargeur automatique permet une découverte de fichiers efficace.
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, un nouvel arrivée de fichier peut déclencher une notification à une rubrique Amazon SNS (consultez la structure de contenu de notification Amazon S3 pour plus d’informations). Vous pouvez ensuite associer une file d’attente Amazon SQS au sujet SNS pour un traitement asynchrone de l’événement.
Les événements de fichier Azure Databricks sont un service qui configure les ressources cloud pour écouter les événements de fichier. Vous pouvez également configurer vous-même les ressources cloud et fournir votre propre file d’attente de stockage.
Après avoir configuré les ressources cloud, le service traite les notifications d’événements de fichier et met en cache les 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.
Lorsqu’un flux s’exécute pour la première fois avec cloudFiles.useManagedFileEvents défini sur true, le chargeur automatique effectue un listing complet 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 la 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.
Databricks recommande d’exécuter vos flux de chargeur automatique au moins une fois tous les sept jours pour tirer parti de la découverte de fichiers incrémentielle à partir du cache. Si vous n’exécutez pas le chargeur automatique au moins cela souvent, la position de lecture stockée devient non valide et le chargeur automatique doit effectuer une liste complète de répertoires pour se synchroniser avec le cache des événements de fichier.
Mode événements de fichiers vs mode classique de notifications de fichiers
Ce diagramme compare le mode événements de fichier et le mode de notification de fichier classique.
En mode événements de fichier, un seul service d’événements de fichiers gérés se connecte au stockage cloud client. Il crée un topic SNS partagé, une file d’attente SQS et un abonnement SNS vers SQS utilisés par plusieurs consommateurs, notamment Auto Loader et Triggers. En mode classique de notifications de fichiers, chaque consommateur nécessite son propre abonnement aux événements et sa propre file d’attente, ce qui entraîne plusieurs chaînes de notification distinctes par compartiment.
Le mode événements de fichier présente plusieurs avantages par rapport au mode de notification de fichier classique. Principalement, il ne nécessite qu’une seule file d’attente pour tous les flux de chargeur automatique sur un compartiment, ce qui vous permet d’éviter la limite de notifications par compartiment. Pour plus d’informations, consultez le mode de notification de fichier avec et sans événements de fichier activés sur des emplacements externes.
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 classiques.
- Le chargeur automatique avec les événements de fichier n’est pas exécuté pendant plus de sept jours.
- Vous apportez des mises à jour à l’emplacement externe qui invalident la position de lecture du chargeur automatique. Par exemple, lorsque vous désactivez et réactivez les événements de fichier, lorsque vous modifiez le chemin d’accès de l’emplacement externe ou lorsque vous fournissez une autre file d’attente pour 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, établit une position de lecture dans le cache des événements de fichier et les stocke 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 fichiers Azure Databricks effectue également des listes d’annuaires complets sur l’emplacement externe pour vérifier qu’il n’a pas manqué de fichiers (par exemple, si la file d’attente fournie est mal configurée). La première liste de répertoires complets commence dès que les événements de fichier sont activés sur l’emplacement externe. Chaque liste suivante se produit 24 heures après la dernière analyse complète tant qu’il existe au moins un flux de chargeur automatique à l’aide d’é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 peut 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
Databricks recommande 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 une latence inférieure à l’aide de déclencheurs continus comme Trigger.ProcessingTime, Databricks recommande de configurer les intervalles de déclencheur vers 1 minute ou version ultérieure. Dans les pipelines Lakeflow, définissez cette valeur à l’aide de pipelines.trigger.interval. 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.
Pour les exigences de très faible latence, envisagez plutôt le mode de notification de fichier classique . Les événements de fichier introduisent un tronçon de mise en cache supplémentaire entre le stockage cloud et le chargeur automatique, ce qui peut ajouter une latence par rapport à la lecture directement à partir de la file d’attente cloud.
Limitations du chargeur automatique avec des événements de fichier
Auto Loader ne prend pas en charge les réécritures de chemin. Les réécritures de chemin s’appliquent 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.