Freigeben über


Auslösen von Aufträgen beim Eintreffen neuer Dateien

Sie können Dateiankunftstrigger verwenden, um eine Ausführung Ihres Auftrags auszulösen, wenn neue Dateien an einem externen Speicherort wie Amazon S3, Azure Storage oder Google Cloud Storage ankommen. Diese Funktion ist nützlich, wenn die Effizienz eines geplanten Auftrags durch unregelmäßige neue Datenankünfte beeinträchtigt wird.

Wie funktionieren Dateiankunftsauslöser?

Dateieingangstrigger bemühen sich, im Minutentakt auf neue Dateien zu überprüfen, obwohl dies durch die Leistung des zugrunde liegenden Cloudspeichers beeinträchtigt werden kann. Dateieingangstrigger verursachen keine zusätzlichen Kosten außer Cloudanbieterkosten, die mit dem Auflisten von Dateien am Speicherort verbunden sind.

Ein Dateieingangstrigger kann so konfiguriert werden, dass der Stamm eines externen Unity Catalog-Speicherorts oder -Volumes oder ein Unterpfad eines externen Speicherorts oder Volumes überwacht wird. Zum Beispiel sind für das Unity Catalog Volume /Volumes/mycatalog/myschema/myvolume/ die folgenden gültigen Pfade für einen Dateieingangs-Trigger:

/Volumes/mycatalog/myschema/myvolume/
/Volumes/mycatalog/myschema/myvolume/mydirectory/

Ein Dateiankunftsauslöser überprüft rekursiv auf neue Dateien in allen Unterverzeichnissen des konfigurierten Speicherorts. Sie erstellen z. B. einen Dateiankunftsauslöser für den Speicherort /Volumes/mycatalog/myschema/myvolume/mydirectory/ und dieser Speicherort hat die folgenden Unterverzeichnisse:

/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirA
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirB
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirC/subdirD

Der Trigger prüft auf neue Dateien in „mydirectory“, „subdirA“, „subdirB“, „subdirC“ und „subdirC/subdirD“.

Dateiankunftsauslöser mit Dateievents

Um eine optimale Leistung zu erzielen, sollte der externe Speicherort für Dateiereignisse aktiviert werden. Wenn Datei-Ereignisse für einen externen Speicherort aktiviert sind, verwendet Azure Databricks einen internen Dienst, um Erfassungsmetadaten durch die Verarbeitung von Änderungsbenachrichtigungen von Cloudanbietern nachzuverfolgen. Dieser Dienst behält die Metadaten für die neuesten Dateien bei, die über einen vom Dienst festgelegten rollierenden Aufbewahrungszeitraum erstellt oder aktualisiert wurden, wodurch die Effizienz der Dateiverarbeitung verbessert wird.

Innerhalb von Minuten nach dem Aktivieren von Dateiereignissen an einem externen Speicherort profitieren vorhandene Dateiankunftsauslöser, die Pfade überwachen, die von diesem externen Speicherort abgedeckt werden, von der Aktivierung von Dateiereignissen, und neue Auslöser profitieren innerhalb von Sekunden.

Weitere Informationen über die Leistungs- und Kapazitätsvorteile von Datei-Ereignissen an externen Speicherorten finden Sie unter Einschränkungen.

Bevor Sie anfangen

Für die Verwendung von Dateiankunftstriggern sind folgende Voraussetzungen erforderlich:

Hinzufügen eines Dateiankunftstriggers

Zum Hinzufügen eines Dateieingangstriggers zu einem Auftrag:

  1. Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf Aufträge und Pipelines.
  2. Wählen Sie optional die Filter "Jobs " und "Owned by me" aus .
  3. Klicken Sie auf den Name-Link Ihres Jobs.
  4. Im Bereich Auftragsdetails rechts klicken Sie auf Trigger hinzufügen.
  5. Wählen Sie im TriggertypDateiankunft aus.
  6. Geben Sie unter Speicherort die URL des Stammverzeichnisses oder eines Unterpfads eines externen Unity Catalog-Speicherorts oder das Stammverzeichnis oder einen Unterpfad eines zu überwachenden Unity Catalog-Volumes ein.
  7. (Optional) Konfigurieren Sie erweiterte Einstellungen:
    • Minimale Zeit zwischen Auslösern in Sekunden: Die minimale Wartezeit, um einen Auslöser nach dem Abschluss eines vorherigen Ausführens zu starten. Dateien, die in diesem Zeitraum eingehen, lösen eine Ausführung erst nach Ablauf der Wartezeit aus. Verwenden Sie diese Einstellung, um die Häufigkeit der Ausführungserstellung zu steuern.
    • Warte nach der letzten Änderung in Sekunden: Die Wartezeit, um einen Auslöser nach dem Datei-Eingang auszuführen. Ein anderer Dateieingang innerhalb dieses Zeitraums setzt den Timer zurück. Diese Einstellung kann verwendet werden, wenn Dateien in Batches eingehen, und der gesamte Batch muss verarbeitet werden, nachdem alle Dateien eingegangen sind.
  8. Klicken Sie auf Verbindung testen, um die Konfiguration zu überprüfen.
  9. Klicken Sie auf Speichern.

Empfangen von Benachrichtigungen über fehlerhafte Dateieingangstrigger

Um benachrichtigt zu werden, wenn ein Dateieingangstrigger nicht ausgewertet werden kann, konfigurieren Sie E-Mail- oder Systemzielbenachrichtigungen bei Auftragsfehlern. Weitere Informationen finden Sie unter Hinzufügen von Benachrichtigungen zu einem Auftrag.

Begrenzungen

  • Der pfad, der für einen Dateiankunftstrigger verwendet wird, darf keine externen Tabellen oder verwalteten Speicherorte von Katalogen und Schemas enthalten.
  • Der für einen Datei-Ankunfts-Trigger verwendete Pfad darf keine Platzhalter enthalten, zum Beispiel * oder ?.
  • Wenn der Speicherort als externer Speicherort im Unity-Katalog konfiguriert ist und dieser externe Speicherort für Dateiereignisse aktiviert ist:
    • Maximal 1.000 Aufträge können mit einem Dateiankunftsauslöser in einem Azure Databricks-Arbeitsbereich konfiguriert werden.
    • Es gibt keine Einschränkungen für die Anzahl der Dateien am Speicherort.
    • Wenn Trigger einen Unterpfad eines Speicherorts überwachen, etwa das Volumen eines externen Speicherorts, kann die Anzahl der Änderungen im Stammverzeichnis dazu führen, dass der Auslöser die zulässige Zeit zur Verarbeitung der Änderungen überschreitet. In diesem Fall wird der Trigger in einen Fehlerzustand gesetzt. Sie können dies verhindern, indem Sie den Trigger so konfigurieren, dass der Stamm eines Speicherorts überwacht wird. Sie können z. B. ein Unity-Katalogvolume im Unterpfad erstellen, aber den Auslöser im Stammverzeichnis des Volumes konfigurieren.
    • Wenn eine vorhandene Datei geändert wird und die Metadaten außerhalb des rollierenden Aufbewahrungszeitraums liegen, wird diese Änderung als neue Dateieinkunft behandelt, wodurch eine Auftragsausführung ausgelöst wird. Sie können dies verhindern, indem Sie nur unveränderliche Dateien erfassen oder Datei-Eingangs-Trigger mit Auto Loader verwenden, um den Erfassungsfortschritt zu verfolgen.
  • Wenn der Speicherort nicht für Dateivorgänge aktiviert ist:
    • Nur neue Dateien triggern Ausführungen. Das Überschreiben einer bestehenden Datei mit einer Datei mit demselben Namen löst keinen Auslöser aus.
    • Es können maximal 50 Aufträge mit einem Auslöser für Dateieingang an diesen Speicherorten in einem Azure Databricks-Arbeitsbereich konfiguriert werden.
    • Der Speicherort kann bis zu 10.000 Dateien enthalten. Wenn der konfigurierte Speicherort ein Unterpfad eines externen Unity Catalog-Speicherorts oder -Volumes ist, gilt der Grenzwert von 10.000 Dateien für den Unterpfad und nicht für das Stammverzeichnis des Speicherorts. Der Stamm des Speicherorts kann z. B. mehr als 10.000 Dateien in seinen Unterverzeichnissen enthalten, das konfigurierte Unterverzeichnis darf jedoch den Grenzwert von 10.000 Dateien nicht überschreiten.

Siehe auch Datei-Ereignis-Grenzwerte.