Aller au contenu principal

Migrer vers Auto Loader avec les événements de fichier

Si vous avez des streams Auto Loader existants qui découvrent des fichiers à l'aide d'une liste de répertoires ou de notifications classiques, vous pouvez les migrer vers Auto Loader avec les événements de fichiers.

Migrer depuis le listage de répertoires

Pour migrer un Stream Auto Loader utilisant la liste de répertoires vers des événements de fichier :

  1. Veuillez confirmer que les prérequis pour les événements de fichier sont satisfaits.
  2. Confirmez que votre chemin de chargement se trouve dans un emplacement externe où les événements de fichier sont activés et que les événements de fichier fonctionnent comme prévu.
  3. Modifiez votre code de Stream pour définir cloudFiles.useManagedFileEvents sur true. Continuez à utiliser le même emplacement de point de contrôle.
  4. Supprimez les paramètres non pris en charge de votre code Stream.
  5. Redémarrez votre Stream. Lors de la première exécution avec les événements de fichiers activés, Auto Loader effectue une liste de répertoires pour se synchroniser avec le cache des événements de fichiers (sécuriser une position de lecture valide dans le cache et la stocker dans le point de contrôle du Stream). Les exécutions ultérieures lisent directement depuis le cache des événements de fichier. Consultez la présentation d'Auto Loader avec les événements de fichiers.

Pour migrer un Stream Auto Loader des événements de fichier vers la liste de répertoires :

  1. Supprimez l’option cloudFiles.useManagedFileEvents de votre code Stream.
  2. Redémarrez votre Stream.

Migrer depuis les notifications de fichiers classiques

Données sources dans S3

S3 n'autorise pas les configurations de notification d'événements avec des préfixes qui se chevauchent. Si vos données source se trouvent dans S3, vous devez d'abord supprimer les configurations de notification d'événements existantes.

Notifications de fichiers classiques aux événements de fichier (S3)

Pour migrer un Stream Auto Loader qui consomme des données depuis S3 à l'aide de notifications de fichiers classiques vers des événements de fichier :

  1. Avant d'activer les événements de fichiers sur vos emplacements externes, arrêtez votre Auto Loader Stream et supprimez les ressources de notification associées. Vous pouvez utiliser l'API tearDownNotificationResources de CloudFilesAWSResourceManager, comme décrit dans Configurer ou gérer manuellement les ressources de notification de fichiers.
  2. Veuillez confirmer que les prérequis pour les événements de fichier sont satisfaits.
  3. Confirmez que votre chemin de chargement se trouve dans un emplacement externe où les événements de fichier sont activés et que les événements de fichier fonctionnent comme prévu.
  4. Modifiez votre code de Stream pour définir cloudFiles.useManagedFileEvents sur true. Continuez à utiliser le même emplacement de point de contrôle.
  5. Supprimez les paramètres non pris en charge de votre code de Stream.
  6. Supprimez les options de notification spécifiques au cloud (telles que cloudFiles.queueUrl, databricks.serviceCredential ou cloudFiles.awsAccessKey) de votre code Stream.
  7. Redémarrez votre Stream. Lors de la première exécution avec les événements de fichiers activés, Auto Loader effectue une liste de répertoires pour se synchroniser avec le cache des événements de fichiers (sécuriser une position de lecture valide dans le cache et la stocker dans le point de contrôle du Stream). Les exécutions ultérieures lisent directement depuis le cache des événements de fichier. Consultez la présentation d'Auto Loader avec les événements de fichiers.

Événements de fichiers aux notifications de fichiers classiques (S3)

Pour migrer un Stream Auto Loader consommant des données de S3 en utilisant des événements de fichier vers des notifications de fichier classiques :

  1. Arrêtez votre Stream Auto Loader et désactivez les événements de fichiers pour l’emplacement externe à l’aide de l’interface utilisateur des emplacements externes. S3 n'autorise pas les configurations de notification d'événements avec des préfixes qui se chevauchent. Si vous avez fourni une URL de file d'attente lorsque vous avez configuré des événements de fichier, Databricks recommande de démanteler votre configuration précédente et de créer une nouvelle configuration de file d'attente afin d'éviter les fichiers manquants.
  2. Supprimez l’option cloudFiles.useManagedFileEvents de votre code Stream.
  3. Définissez l'option cloudFiles.useNotifications sur true.
  4. Ajoutez des options de notification spécifiques au cloud (telles que cloudFiles.queueUrl, databricks.serviceCredential ou cloudFiles.awsAccessKey) qui sont requises pour que Auto Loader s'authentifie auprès de votre cloud, configure les ressources de notification et lise à partir de la file d'attente.
  5. start your Stream. Si vous avez fourni l'option cloudFiles.queueUrl (une file d'attente préconfigurée), Auto Loader commence à découvrir les fichiers à l'aide de la file d'attente. Il effectue également un listage unique des répertoires pour s'assurer qu'aucun fichier n'a été manqué lors de la migration. Si vous n'avez **pas** fourni de file d'attente, Auto Loader tente de créer toutes les ressources nécessaires pour les notifications. Si vous constatez un échec lorsque vous redémarrez le Stream Auto Loader, Databricks pourrait ne pas avoir terminé la suppression des ressources de notification qu'il a créées pour les événements de fichier. Veuillez réessayer dans quelques minutes.

Données sources dans Stockage Azure ou Google Cloud Storage

Notifications de fichiers classiques aux événements de fichiers (Azure, GCP)

Pour migrer un Auto Loader Stream consommant des données depuis Azure ou GCP en utilisant des notifications de fichiers classiques vers des événements de fichiers :

  1. Veuillez confirmer que les prérequis pour les événements de fichier sont satisfaits.
  2. Confirmez que votre chemin de chargement se trouve dans un emplacement externe où les événements de fichier sont activés et que les événements de fichier fonctionnent comme prévu.
  3. Modifiez votre code de Stream pour définir cloudFiles.useManagedFileEvents sur true. Continuez à utiliser le même emplacement de point de contrôle.
  4. Supprimez les paramètres non pris en charge de votre code de Stream.
  5. Supprimez les options de notifications spécifiques au cloud (telles que cloudFiles.queueName, cloudFiles.subscription, databricks.serviceCredential, cloudFiles.privateKey, ou cloudFiles.clientSecret) de votre code Stream.
  6. Redémarrez votre Stream. Lors de la première exécution avec les événements de fichiers activés, Auto Loader effectuera une liste de répertoires pour se mettre à jour avec le cache des événements de fichiers (sécuriser une position de lecture valide dans le cache et la stocker dans le point de contrôle du Stream). Les exécutions ultérieures lisent directement depuis le cache des événements de fichier. Consultez la présentation d'Auto Loader avec les événements de fichiers.
  7. Supprimer les ressources de notification qui ont été créées par Auto Loader lorsqu'il s'est exécuté en mode de notifications de fichiers classiques. Vous pouvez utiliser l'API tearDownNotificationResources de CloudFilesAWSResourceManager, comme décrit dans Configurer ou gérer manuellement les ressources de notification de fichiers.

Événements de fichier aux notifications de fichier classiques (Azure, GCP)

Pour migrer un Auto Loader Stream consommant des données d'Azure ou de GCP via des événements de fichiers vers des notifications de fichiers classiques :

  1. Supprimez l’option cloudFiles.useManagedFileEvents de votre code Stream.
  2. Définissez l'option cloudFiles.useNotifications sur true.
  3. Ajouter des options de notifications spécifiques au cloud (telles que cloudFiles.queueName, cloudFiles.subscription, databricks.serviceCredential, cloudFiles.privateKey ou cloudFiles.clientSecret) nécessaires à Auto Loader pour s'authentifier auprès de votre cloud, configurer les ressources de notification et lire à partir de la file d'attente.
  4. Redémarrez votre Stream. Si vous avez fourni les options cloudFiles.queueName ou cloudFiles.subscription (fourni une file d'attente préconfigurée), Auto Loader commence à découvrir les fichiers à l'aide de la file d'attente. Il effectue également un listage unique des répertoires pour s'assurer qu'aucun fichier n'a été manqué lors de la migration. Si vous n'avez **pas** fourni de file d'attente, Auto Loader tente de créer toutes les ressources nécessaires pour les notifications. Si vous constatez un échec lorsque vous redémarrez le Stream Auto Loader, Databricks pourrait ne pas avoir terminé la suppression des ressources de notification qu'il a créées pour les événements de fichier. Veuillez réessayer dans quelques minutes.