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.
Häufig gestellte Fragen zum Autoloader von Databricks.
Verarbeitet der Autoloader die Datei erneut, wenn sie angefügt oder überschrieben wird?
Mit der Standardeinstellung (cloudFiles.allowOverwrites = false) werden Dateien genau einmal verarbeitet. Wenn eine Datei angefügt oder überschrieben wird, kann das automatische Laden nicht garantieren, welche Dateiversion verarbeitet wird.
Um den Auto Loader zuzulassen, die Datei erneut zu verarbeiten, können Sie die Einstellung auf cloudFiles.allowOverwrites ändern, wenn die Datei angefügt oder überschrieben wird. In diesem Fall ist garantiert, dass der Auto Loader die neueste Version der Datei verarbeitet. Das automatische Laden kann jedoch nicht garantieren, welche Zwischenversion verarbeitet wird.
Seien Sie vorsichtig, wenn Sie den Dateibenachrichtigungsmodus cloudFiles.allowOverwrites aktivieren. Im Dateibenachrichtigungsmodus kann das automatische Laden neue Dateien über Dateibenachrichtigungen und Verzeichnisauflistung identifizieren. Da die Zeit des Dateibenachrichtigungsereignisses und die Dateiänderungszeit unterschiedlich sein können, kann das automatische Laden zwei unterschiedliche Zeitstempel empfangen und dieselbe Datei zweimal aufnehmen, auch wenn die Datei nicht aktualisiert wurde.
Mit cloudFiles.allowOverwrites aktivierter Option müssen Sie doppelte Datensätze selbst behandeln. Der Auto Loader verarbeitet die gesamte Datei erneut, auch wenn sie angehängt oder teilweise aktualisiert wurde. Im Allgemeinen empfiehlt Azure Databricks die Verwendung des automatischen Ladens, um unveränderliche Dateien nur aufzunehmen und die Standardeinstellung zu verwenden cloudFiles.allowOverwrites = false. Wenn Sie weitere Fragen haben, wenden Sie sich an Ihr Azure Databricks-Kontoteam.
Wenn meine Dateien nicht fortlaufend, sondern in regelmäßigen Abständen (z. B. einmal täglich) eintreffen, sollte ich diese Quelle dann trotzdem nutzen und ergeben sich daraus Vorteile?
In diesem Fall können Sie einen Trigger.AvailableNow-Auftrag (verfügbar in Databricks Runtime 10.4 LTS und höher) für strukturiertes Streaming einrichten und so planen, dass er nach der voraussichtlichen Ankunftszeit der Datei ausgeführt wird. Autoloader funktioniert sowohl mit seltenen als auch häufigen Updates gut. Auch wenn die Updates letztlich sehr groß sind, lässt sich Autoloader gut auf die Eingabegröße skalieren. Die effizienten Methoden für die Dateiermittlung und die Schemaentwicklungsfunktionen von Auto Loader machen das automatische Laden zur empfohlenen Methode für die inkrementelle Datenaufnahme.
Was geschieht, wenn ich den Prüfpunktspeicherort beim Neustart des Streams ändere?
Am Prüfpunktspeicherort werden wichtige Informationen zur Identifizierung eines Streams verwaltet. Wenn Sie den Prüfpunktspeicherort ändern, bedeutet dies, dass Sie den vorherigen Stream abgebrochen haben und einen neuen Stream starten.
Muss ich die Ereignisbenachrichtigungsdienste vorab erstellen?
Nein. Wenn Sie den Dateibenachrichtigungsmodus auswählen und die erforderlichen Berechtigungen bereitstellen, kann der Autoloader Dateibenachrichtigungsdienste für Sie erstellen. Informationen finden Sie unter Verwalten von Dateibenachrichtigungswarteschlangen für jeden Auto Loader-Datenstrom separat (Legacy).
Wenn Dateiereignisse am externen Speicherort im Unity-Katalog aktiviert sind, kann der Dateiereignissedienst die Dateiereignisse in Ihrem Cloudanbieter erstellen, und Sie müssen Auto Loader nicht konfigurieren, um sie für jeden Datenstrom zu erstellen. Siehe Verwenden des Dateibenachrichtigungsmodus mit Dateiereignissen
Wie bereinige ich die vom Autoloader erstellten Ereignisbenachrichtigungsressourcen?
Sie können den Cloudressourcen-Manager verwenden, um Ressourcen aufzulisten und zu löschen. Sie können diese Ressourcen auch manuell mithilfe der Benutzeroberfläche oder APIs des Cloudanbieters löschen.
Kann ich mehrere Streamingabfragen aus verschiedenen Eingabeverzeichnissen im selben Bucket/Container ausführen?
Ja, solange es sich nicht um über- und untergeordnete Verzeichnisse handelt. Beispielsweise würde prod-logs/ und prod-logs/usage/ nicht funktionieren, da /usage ein untergeordnetes Verzeichnis von /prod-logs ist.
Kann ich dieses Feature nutzen, wenn bereits Dateibenachrichtigungen für meinen Bucket oder Container vorhanden sind?
Ja, solange Ihr Eingabeverzeichnis nicht mit dem vorhandenen Benachrichtigungspräfix in Konflikt steht (z. B. die oben genannten übergeordneten/untergeordneten Verzeichnisse).
Wie leitet der Autoloader das Schema ab?
Wenn der Dataframe zum ersten Mal definiert wird, listet der Autoloader Ihr Quellverzeichnis auf und wählt die neuesten (nach Dateiänderungszeit) 50 GB an Daten oder 1000 Dateien aus und verwendet diese, um Ihr Datenschema abzuleiten.
Autoloader leitet auch Partitionsspalten ab, indem er die Quellverzeichnisstruktur untersucht und nach Dateipfaden sucht, die die /key=value/-Struktur enthalten. Wenn das Quellverzeichnis eine inkonsistente Struktur aufweist, z. B.:
base/path/partition=1/date=2020-12-31/file1.json
// inconsistent because date and partition directories are in different orders
base/path/date=2020-12-31/partition=2/file2.json
// inconsistent because the date directory is missing
base/path/partition=3/file3.json
Der Autoloader leitet die Partitionsspalten als leer ab. Verwenden Sie cloudFiles.partitionColumns, um explizit Spalten aus der Verzeichnisstruktur zu analysieren.
Wie verhält sich der Autoloader, wenn der Quellordner leer ist?
Wenn das Quellverzeichnis leer ist, müssen Sie dem Autoloader ein Schema bereitstellen, da keine Daten für Rückschlüsse vorhanden sind.
Wann leitet der Autoloader ein Schema ab? Wird es nach jedem Mikrobatch automatisch weiterentwickelt?
Das Schema wird abgeleitet, wenn der Dataframe zum ersten Mal in Ihrem Code definiert wird. Bei jedem Mikrobatch werden Schemaänderungen ad-hoc ausgewertet; daher müssen Sie sich keine Gedanken über Leistungseinbußen machen. Wenn der Stream neu gestartet wird, holt er sich das entwickelte Schema vom Schemaspeicherort und beginnt mit der Ausführung, ohne dass ein Overhead durch Rückschlüsse entsteht.
Welche Auswirkungen hat das Einspeisen der Daten auf die Leistung beim Verwenden der Auto Loader-Schemaerkennung?
Sie sollten davon ausgehen, dass der Schemarückschluss bei sehr großen Quellverzeichnissen während des anfänglichen Schemarückschlusses einige Minuten in Anspruch nimmt. Sie sollten während der Ausführung des Streams keine signifikanten Leistungseinbußen beobachten. Wenn Sie Ihren Code in einem Azure Databricks Notebook ausführen, werden Statusaktualisierungen angezeigt, die angeben, wann Autoloader Ihr Verzeichnis für das Sampling aufnehmen und Ihr Datenschema ableiten wird.
Aufgrund eines Fehlers hat eine fehlerhafte Datei mein Schema drastisch verändert. Wie kann ich ein Rollback für eine Schemaänderung ausführen?
Wenden Sie sich an den Databricks-Support, um Hilfe zu erhalten.
Wie bestimmt das automatische Laden, ob eine Datei aufgenommen wurde oder nicht?
Auto Loader verarbeitet jede Datei normalerweise nur einmal basierend auf ihrem Dateipfad. Wenn Sie jedoch die allowOverwrites Option true festlegen, verwendet Auto Loader auch den zuletzt geänderten Zeitstempel der Datei, um zu bestimmen, ob eine Datei neu ist oder aktualisiert wurde und erneut aufgenommen werden muss. Lesen Sie Verarbeitet der Auto-Loader die Datei erneut, wenn die Datei angefügt oder überschrieben wird?