Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
cloudFiles.cleanSource ist ab Databricks Runtime 16.4 verfügbar.
Verwenden cloudFiles.cleanSource Sie, um Dateien aus dem Quellverzeichnis zu verschieben oder zu löschen, nachdem sie verarbeitet wurden. Das Entfernen bearbeiteter Dateien senkt die Speicherkosten und verkürzt die Dauer zukünftiger Listing-Operationen.
| Modus | Description |
|---|---|
OFF (Standardwert) |
Die Dateien im Quellverzeichnis werden nicht verschoben oder gelöscht. |
MOVE |
Die Dateien im Quellverzeichnis werden auf den von definierten Pfad nach der durch Ablauf definierten Speicherdauer (standardmäßig 30 Tage) verschoben cloudFiles.cleanSource.moveDestinationcloudFiles.cleanSource.retentionDuration . |
DELETE |
Die Dateien im Quellverzeichnis werden nach der durch cloudFiles.cleanSource.retentionDuration Ablauf definierten Aufbewahrungsdauer (standardmäßig 30 Tage) gelöscht. |
| Zusätzliche Option | Vorgabe | Gültige Werte | Description |
|---|---|---|---|
cloudFiles.cleanSource.retentionDuration |
30 days |
Eine CalendarInterval-Zeichenfolge wie 14 days, oder 2 weeks1 month |
Zeit, die man warten muss, bevor bearbeitete Dateien mit sauberer Quelle als Kandidaten für eine Bereinigung geeignet sind. Für DELETE muss es größer als 7 Tage sein. Keine Mindesteinschränkung für MOVE. |
cloudFiles.cleanSource.waitForCompletion |
false |
true, false |
Diese Option ist in Databricks Runtime 19 und höher verfügbar. Clean Source ist standardmäßig eine Best-Effort-Operation. Wenn der Strom die Dateien fertig verarbeitet, bevor die Clean Source fertig ist, Dateien zu verschieben oder zu löschen, wird die Clean-Source-Operation beendet. Die Einstellung cloudFiles.cleanSource.waitForCompletion zwingt den Stream, lebendig zu bleiben, bis die Clean Source Dateien verschoben oder gelöscht hat. Das kann die Laufzeit des Streams verlängern, wenn viele Dateien gelöscht werden müssen.Dies gilt nur, wenn der Stream von selbst abgeschlossen wird (zum Beispiel ein availableNow Trigger, der alle Dateien entleert). Das manuelle Stoppen oder Abbrechen des Stroms beendet die Reinigung der Quellfunktion sofort, selbst wenn diese Option aktiviert ist. |
cloudFiles.cleanSource.moveDestination |
Nichts | Ein Cloudspeicher- oder Unity-Katalog-Volumepfad | Pfad zum Archivieren verarbeiteter Dateien, wenn cloudFiles.cleanSource auf MOVE gesetzt wird. Dies kann ein Cloudspeicherpfad oder ein Unity Catalog-Volumepfad sein (z. B /Volumes/my_catalog/my_schema/my_volume/archive/. ).Der Speicherort muss:
Auto Loader muss Schreibberechtigungen für dieses Verzeichnis besitzen. |
Überlegungen vor der Ermöglichung cloudFiles.cleanSource
- Azure Databricks empfiehlt nicht, diese Option zu verwenden, wenn mehrere Streams Daten aus demselben Quellverzeichnis verbrauchen. Der schnellste Stream bereinigt die Dateien, sodass die langsameren Streams sie nie einnehmen.
- Zum Aktivieren dieses Features ist das automatische Laden erforderlich, um zusätzlichen Zustand im Prüfpunkt beizubehalten, was zu Leistungsaufwand kommt, aber eine verbesserte Observierbarkeit über die
cloud_files_stateTabellenwertfunktion ermöglicht. Siehecloud_files_stateTabellenwertfunktion. - Clean Source verwendet die aktuelle Einstellung, um zu entscheiden, ob sie oder
DELETEeine bestimmte Datei sein sollMOVE. Angenommen, die Einstellung warMOVE, als die Datei ursprünglich verarbeitet wurde, wurde aber inDELETEgeändert, als die Datei 30 Tage später zum Kandidaten für die Bereinigung wurde. In diesem Fall löscht der Clean Source die Datei. - Dateien werden nicht garantiert bereinigt, sobald die
cloudFiles.cleanSource.retentionDurationDateien ablaufen. Um die Kosten niedrig zu halten, bereinigt Auto Loader Dateien gleichzeitig mit der Stream-Verarbeitung und beendet die Dateien, sobald die Stream-Verarbeitung abgeschlossen oder beendet wird. Dateien, die für die Bereinigung geeignet waren, aber während der Stream-Verarbeitung nicht gelöscht werden konnten, werden beim nächsten Start von Auto Loader aufgerufen.
Anmerkungen zur sauberen Quelle
Clean Source läuft nur, wenn eine Charge von Dateien verarbeitet werden muss. Es handelt sich nicht um einen Hintergrundprozess, der unabhängig von der Aufnahme abläuft. Wenn keine neuen Dateien im Quellverzeichnis eingetragen werden müssen, startet der Clean Source nicht für den aktuellen Stream-Lauf. Wenn ein Strom keine neuen Dateien mehr erhält, werden Dateien, die ihre Aufbewahrungsdauer bereits überschritten haben, erst beseitigt, wenn ein späterer Stream einen neuen Batch verarbeitet.
Diese Chargenanforderung gilt unabhängig von
cloudFiles.cleanSource.waitForCompletion. Diese Option hält den Stream nur lange genug am Leben, um eine laufende Aufräumaktion innerhalb eines Durchlaufs abzuschließen. Es startet keine Clean Source, wenn kein Batch zur Verarbeitung vorhanden ist.Wenn eine Datei beim N-ten Stream-Run aufgenommen wird, wird der
commit_timefür die Datei auf dem N+1-Stream-Run gesetzt.commit_timemuss gesetzt werden, bevor Clean Source bestimmen kann, ob eine Datei für Verschieben oder Löschen geeignet ist, daher kann eine Datei frühestens als Kandidat für die Bereinigung gelten der N+2-Stream-Durchlauf sein.Setting
commit_timeist notwendig, aber nicht ausreichend. Eine Datei wird erst gereinigt, wenn ihre Aufbewahrungsdauer abgelaufen ist, gemessen aus ihrercommit_time. Zum Beispiel ist eine heute bearbeitete Datei mit dem StandardcloudFiles.cleanSource.retentionDurationvon 30 Tagen erst 30 Tage nach ihrercommit_timeEinstellung zur Bereinigung berechtigt. Dies gilt unabhängig davon, wie viele Bachläufe dazwischen stattfinden. Beide Bedingungen müssen erfüllt sein, bevor die Datei verschoben oder gelöscht wird.