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.
Note
cloudFiles.cleanSource est disponible en Databricks Runtime 16.4 et versions ultérieures.
Utilisez cloudFiles.cleanSource pour déplacer ou supprimer des fichiers du répertoire source après leur traitement. Supprimer les fichiers traités réduit les coûts de stockage et raccourcit la durée des futures opérations de listage.
| Mode | Description |
|---|---|
OFF (valeur par défaut) |
Les fichiers du répertoire source ne sont ni déplacés ni supprimés. |
MOVE |
Les fichiers du répertoire source sont déplacés vers le chemin spécifié par cloudFiles.cleanSource.moveDestination après la durée de conservation (par défaut 30 jours) définie par les cloudFiles.cleanSource.retentionDuration écoulements. |
DELETE |
Les fichiers du répertoire source sont supprimés après la durée de conservation (par défaut 30 jours) définie par les cloudFiles.cleanSource.retentionDuration écoulements. |
| Option supplémentaire | Default | Valeurs valides | Description |
|---|---|---|---|
cloudFiles.cleanSource.retentionDuration |
30 days |
Chaîne CalendarInterval telle que 14 days, 2 weeksou 1 month |
Délai d’attente avant que les fichiers traités ne deviennent candidats à un nettoyage avec Clean Source. Doit être supérieur à 7 jours pour DELETE. Aucune restriction minimale pour MOVE. |
cloudFiles.cleanSource.waitForCompletion |
false |
true, false |
Cette option est disponible dans Databricks Runtime 19 et versions ultérieures. Clean source est par défaut une opération de meilleur effort. Si le flux termine le traitement des fichiers avant que le code source propre ne termine de déplacer ou supprimer des fichiers, l’opération du code source propre est terminée. Le réglage cloudFiles.cleanSource.waitForCompletion force le flux à rester actif jusqu’à ce que le code source propre ait fini de déplacer ou supprimer les fichiers. Cela peut augmenter le temps d’exécution du flux s’il y a beaucoup de fichiers à supprimer.Cela ne s’applique que lorsque le flux se termine seul (par exemple, un availableNow déclencheur qui vide tous les fichiers). Arrêter ou annuler manuellement le flux met fin immédiatement à l’opération de source propre, même lorsque cette option est activée. |
cloudFiles.cleanSource.moveDestination |
None | Un chemin de volume de stockage cloud ou de catalogue Unity | Chemin d’accès pour archiver des fichiers traités lorsque cloudFiles.cleanSource est défini sur MOVE. Il peut s’agir d’un chemin de stockage cloud ou d’un chemin de volume du catalogue Unity (par exemple). /Volumes/my_catalog/my_schema/my_volume/archive/L’emplacement de déplacement doit :
Le chargeur automatique doit disposer d’autorisations d’écriture dans ce répertoire. |
Considérations avant d’activer cloudFiles.cleanSource
- Azure Databricks ne recommande pas d’utiliser cette option lorsque plusieurs flux consomment des données provenant du même répertoire source. Le flux le plus rapide nettoie les fichiers, donc les flux plus lents ne les consomment jamais.
- L’activation de cette fonctionnalité nécessite que le chargeur automatique conserve un état supplémentaire dans son point de contrôle, ce qui entraîne une surcharge de performances, mais permet une observabilité améliorée par le biais de la
cloud_files_statefonction table. Consultezcloud_files_stateTVF. - Le code source propre utilise le paramètre actuel pour décider s’il le
MOVEfait ouDELETEun fichier donné. Par exemple, supposons que le paramètre étaitMOVElorsque le fichier a été traité à l’origine, mais qu’il a été modifiéDELETElorsque le fichier est devenu candidat pour le nettoyage 30 jours plus tard. Dans ce cas, un code source propre supprime le fichier. - Les fichiers ne sont pas assurés d’être nettoyés dès l’expiration
cloudFiles.cleanSource.retentionDuration. Pour maintenir les coûts bas, Auto Loader nettoie les fichiers en même temps que le traitement du flux et se termine dès que le traitement du flux est terminé ou terminé. Les fichiers qui étaient candidats à nettoyage, mais qui n’ont pas pu être nettoyés pendant le traitement du flux, sont récupérés la prochaine fois qu’Auto Loader s’exécute.
Notes sur la source propre
Clean Source ne s’exécute que s’il y a un lot de fichiers à traiter. Ce n’est pas un processus en arrière-plan qui fonctionne indépendamment de l’ingestion. S’il n’y a pas de nouveaux fichiers à ingérer dans le répertoire source, le code source propre ne démarre pas pour l’exécution du flux en cours. En conséquence, si un flux cesse de recevoir de nouveaux fichiers, les fichiers ayant déjà dépassé leur durée de conservation ne sont pas nettoyés avant qu’un flux ultérieur ne traite pas un nouveau lot.
Cette exigence de lot s’applique indépendamment de
cloudFiles.cleanSource.waitForCompletion. Cette option ne permet au stream de rester vivant que le temps de terminer un nettoyage en cours en une seule partie. Il ne démarre pas la source propre lorsqu’il n’y a pas de lot à traiter.Si un fichier est ingéré lors de la N-ième exécution du flux, le
commit_timepour le fichier est défini sur la série N+1 du flux.commit_timedoit être défini avant qu’une source propre puisse déterminer si un fichier est éligible à déplacer ou à supprimer, afin qu’un fichier puisse devenir candidat au nettoyage soit l’exécution du flux N+2.Le cadre
commit_timeest nécessaire mais pas suffisant. Un fichier n’est effacé qu’une fois sa durée de conservation écoulée, mesurée à partir de soncommit_timefichier . Par exemple, avec un défautcloudFiles.cleanSource.retentionDurationde 30 jours, un fichier traité aujourd’hui n’est pas éligible au nettoyage avant 30 jours après sacommit_timedéfinition. Cela est vrai quel que soit le nombre de ruisseaux qui se produisent entre les deux. Les deux conditions doivent être remplies avant que le fichier ne soit déplacé ou supprimé.