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.
Die cloudFiles.useManagedFileEvents Option mit Auto Loader ermöglicht eine effiziente Datei-Erkennung.
Wie funktioniert Auto Loader mit Dateiereignissen?
Auto Loader mit Dateiereignissen verwendet dateiereignisbenachrichtigungsfunktionen, die von Cloudanbietern bereitgestellt werden. Sie können Cloudspeichercontainer so konfigurieren, dass Benachrichtigungen bei Dateiereignissen veröffentlicht werden, z. B. beim Erstellen und Ändern neuer Dateien. Bei Amazon S3-Ereignisbenachrichtigungen kann beispielsweise eine neue Dateiankunft eine Benachrichtigung an ein Amazon SNS-Thema auslösen (details hierzu finden Sie in der Inhaltsstruktur der Amazon S3-Benachrichtigung ). Anschließend können Sie eine Amazon SQS-Warteschlange zum SNS-Thema für die asynchrone Verarbeitung des Ereignisses registrieren.
Azure Databricks-Dateiereignisse ist ein Dienst, der Cloudressourcen zum Abhören auf Dateiereignisse einrichtet. Alternativ können Sie die Cloudressourcen selbst einrichten und Ihre eigene Speicherwarteschlange bereitstellen.
Nachdem Sie die Cloudressourcen konfiguriert haben, verarbeitet der Dienst Dateiereignisbenachrichtigungen und speichert Dateimetadaten zwischen. Auto Loader verwendet diesen Cache, um Dateien zu ermitteln, wenn bei seiner Ausführung cloudFiles.useManagedFileEvents auf true gesetzt ist.
Wenn ein Datenstrom zum ersten Mal ausgeführt ist, wenn cloudFiles.useManagedFileEvents auf true gesetzt ist, führt Auto Loader eine vollständige Verzeichnisauflistung des Ladepfads durch, um alle Dateien zu ermitteln und in Bezug auf den Dateiereigniscache auf dem aktuellen Stand zu bleiben (eine gültige Leseposition im Cache sichern und im Prüfpunkt des Datenstroms speichern). Nachfolgende Ausführungen von Auto Loader entdecken neue Dateien, indem sie direkt den Dateiereignis-Cache mithilfe der gespeicherten Leseposition lesen und benötigen keine Verzeichnisauflistung.
Databricks empfiehlt, mindestens einmal alle sieben Tage Ihre Auto Loader-Datenströme auszuführen, um die inkrementelle Dateiermittlung aus dem Cache zu nutzen. Wenn Sie den Auto Loader nicht mindestens so häufig ausführen, wird die gespeicherte Leseposition ungültig, und der Auto Loader muss eine vollständige Verzeichnisliste ausführen, um sich mit dem Datei-Ereignis-Cache zu synchronisieren.
Dateiereignismodus im Vergleich zum klassischen Dateibenachrichtigungsmodus
Dieses Diagramm vergleicht den Modus der Dateiereignisse mit dem klassischen Modus der Dateibenachrichtigungen.
Im Dateiereignissemodus stellt ein einzelner verwalteter Dateiereignissedienst eine Verbindung mit dem Cloudspeicher des Kunden bereit. Er erstellt ein gemeinsames SNS-Thema, eine SQS-Warteschlange und ein SNS-zu-SQS-Abonnement, das von mehreren Consumern verwendet wird, darunter Auto Loader und Trigger. Im klassischen Modus für Dateibenachrichtigungen benötigt jeder Consumer ein eigenes Ereignisabonnement und eine eigene Warteschlange, wodurch pro Bucket mehrere separate Benachrichtigungs-Pipelines entstehen.
Der Modus für Dateiereignisse hat mehrere Vorteile im Vergleich zu dem klassischen Dateibenachrichtigungsmodus. In erster Linie ist nur eine Warteschlange für alle Datenströme des automatischen Ladeprogramms in einem Bucket erforderlich, sodass Sie den Grenzwert für Benachrichtigungen pro Bucket vermeiden können. Weitere Informationen finden Sie im Dateibenachrichtigungsmodus mit und ohne Dateiereignisse, die an externen Speicherorten aktiviert sind.
Wann verwendet die automatische Ladefunktion bei Dateiereignissen die Verzeichnisauflistung?
Auto Loader führt eine vollständige Verzeichnisliste durch, wenn:
- Starten eines neuen Streams.
- Migration eines Streams aus einem Verzeichnislisting oder klassischen Datei-Benachrichtigungen.
- Auto Loader mit Dateiereignissen wird nicht länger als sieben Tage lang ausgeführt.
- Sie nehmen Aktualisierungen des externen Speicherorts vor, die die Leseposition von Auto Loader ungültig machen. Beispiele hierfür sind, wenn Sie Dateiereignisse deaktivieren und wieder aktivieren, wenn Sie den Pfad des externen Speicherorts ändern oder eine andere Warteschlange für den externen Speicherort angeben.
Auto Loader führt immer eine vollständige Auflistung bei der ersten Ausführung durch, selbst wenn includeExistingFiles auf false gesetzt ist. Mit dieser Flagge können Sie alle Dateien importieren, die nach der Startzeit des Datenstroms erstellt wurden. Auto Loader listet das gesamte Verzeichnis auf, um alle Dateien zu ermitteln, die nach der Startzeit des Datenstroms erstellt wurden, legt eine Leseposition im Cache für Dateiereignisse fest und speichert sie im Prüfpunkt. Nachfolgende Ausführungen werden direkt aus dem Cache für Dateiereignisse gelesen und erfordern keine Verzeichnisauflistung.
Der Azure Databricks-Dateiereignissedienst führt außerdem vollständige Verzeichnisauflistungen für den externen Speicherort durch, um sicherzustellen, dass keine Dateien übersehen wurden (z. B. wenn die bereitgestellte Warteschlange falsch konfiguriert ist). Die erste vollständige Verzeichnisauflistung beginnt, sobald Dateiereignisse am externen Speicherort aktiviert sind. Jede nachfolgende Auflistung erfolgt 24 Stunden nach dem letzten vollständigen Scan, solange mindestens ein Auto Loader-Datenstrom vorhanden ist, der Dateiereignisse nutzt, um Daten aufzunehmen.
Bewährte Methoden für Auto Loader mit Dateiereignissen
Befolgen Sie diese bewährten Methoden, um die Leistung und Zuverlässigkeit bei der Nutzung von Auto Loader mit Dateiereignissen zu optimieren.
Verwenden Sie Volumes für eine optimale Dateisuche.
Für eine verbesserte Leistung empfiehlt Databricks, für jeden Pfad oder jedes Unterverzeichnis, aus dem Auto Loader Daten lädt, ein externes Volume zu erstellen und Volumepfade (z. B. /Volumes/someCatalog/someSchema/someVolume) anstelle von Cloudpfaden (z. B. s3://bucket/path/to/volume) für den Auto Loader anzugeben. Dadurch wird die Dateisuche optimiert, da der Auto Loader das Datenvolumen mithilfe eines optimierten Datenzugriffsmusters auflisten kann.
Ziehen Sie Dateiankunftstrigger für ereignisgesteuerte Pipelines in Betracht
Bei der ereignisgesteuerten Datenverarbeitung sollten Sie anstelle einer fortlaufenden Pipeline einen Dateiankunftstrigger verwenden. Dateiankunftstrigger starten Ihre Pipeline automatisch, wenn neue Dateien ankommen, was eine bessere Ressourcenauslastung und Kosteneffizienz bietet, da Ihr Cluster nur ausgeführt wird, wenn neue Dateien verarbeitet werden sollen.
Konfigurieren Sie geeignete Intervalle mit kontinuierlichen Triggern
Databricks empfiehlt die Verwendung von Dateiankunftstriggern , um Dateien zu verarbeiten, sobald sie ankommen. Wenn Ihr Anwendungsfall jedoch eine geringere Latenz mit kontinuierlichen Triggern wie Trigger.ProcessingTime erfordert, empfiehlt Databricks, die Triggerintervalle auf 1 minute oder höher zu konfigurieren. Legen Sie diesen Wert in Lakeflow-Pipelines mit pipelines.trigger.interval fest. Dadurch wird die Abrufhäufigkeit verringert, um zu überprüfen, ob neue Dateien eingegangen sind, und ermöglicht eine höhere Anzahl von Datenströmen, die gleichzeitig aus Ihrem Arbeitsbereich ausgeführt werden können.
Bei sehr geringen Latenzanforderungen sollten Sie stattdessen den klassischen Dateibenachrichtigungsmodus in Betracht ziehen. Dateiereignisse fügen zwischen Cloudspeicher und Auto Loader einen zusätzlichen Cache-Hop hinzu, was im Vergleich zum direkten Lesen aus der Cloudwarteschlange zu zusätzlicher Latenz führen kann.
Einschränkungen von Auto Loader mit Dateiereignissen
Auto Loader unterstützt keine Pfadumschreibungen. Pfad-Umstrukturierungen kommen zur Anwendung, wenn mehrere Buckets oder Container unter DBFS eingebunden sind, was ein veraltetes Nutzungsmuster darstellt.
Eine allgemeine Liste der Einschränkungen von Dateiereignissen finden Sie unter Dateiereignisseinschränkungen.