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.
Important
Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.
Der Typ FILE speichert eine kontrollierte Referenz auf eine unstrukturierte Datei mit Metadaten wie Pfad und Größe. Verwenden Sie FILE Spalten im Unity-Katalog, um Dokumente, Bilder und Audiodateien neben strukturierten Daten zu speichern.
Mit Spalten speichert Unity Catalog Kopien der Dateien und verwaltet sie mit der Tabelle: Das FILE MANAGED Löschen von Zeilen macht die referenzierten Dateien für die Garbage Collection geeignet, sodass die Tabelle und ihre Dateien synchron bleiben.
Für die Typreferenz siehe FILE Typ.
Das folgende Diagramm zeigt eine Spalte FILE , die video auf Fahrclips verweist, neben strukturierten Spalten wie Route, Szenenbeschreibung und Gefahrenlabel:
FILE-Metadaten und Speicher
Für jede Zeile speichert der Typ FILE Metadaten und einen verwalteten Link zur gespeicherten Datei. Ein FILE Wert enthält uri, size, content_type, und checksum Metadatenfelder. Metadaten-Abfragen erfordern keine vollständigen Dateilesungen, was die Abfrageleistung verbessert.
Man kann Werte an FILE, wie , und an ai_parse_document weitergeben.
Das folgende Diagramm zeigt ein Beispiel für eine verwaltete Spalte FILE , die Pfad- und Größenmetadaten sowie Verweise auf die gespeicherten Dateien enthält:
Warum FILE statt BINARY oder STRING verwenden
Die folgende Tabelle beschreibt die Herausforderungen beim Umgang mit großen unstrukturierten Dateien mit BINARY oder STRING Typen:
| Spaltentyp | Description | Diagramm |
|---|---|---|
BINARY |
Materialisiert das vollständige Objekt für jede Lesung, selbst wenn man nur Metadaten wie Dateigröße oder Pfad benötigt. Dies führt zu unnötigen Berechnungen und langsamen Abfragen. |
|
STRING |
Speichert einen Dateipfad ohne Metadaten, wie etwa Größe oder Versionsinformationen, und ohne kontrollierte Verbindung zwischen Tabelle und Datei. Wenn eine andere Arbeitslast die Datei entfernt, enthält die Tabelle veraltete Informationen. Wenn du eine Tabellenzeile entfernst, bleibt die referenzierte Datei im Speicher, bis du sie manuell entfernst. |
|
Prüfsummen
Das Feld checksum ist ein Integritätstoken für die Bytes der Datei, in der Form <prefix>:<digest>. Nutze es, um Dateien zu vergleichen oder zu überprüfen, ob sich eine Datei nicht verändert hat. Leser ignorieren eine Prüfsumme mit einem nicht anerkannten Präfix.
Eine Schecksumme ist nicht immer verfügbar.
to_file Funktion, create_file Funktion und copy_file Funktion füllen die Prüfsumme aus, wenn der Objektspeicher ein ETAGFormular zurückgibt.
list_files Tabellenwerte Funktionen und read_files tabellenwertige Funktionen füllen die Prüfsumme nicht aus.
Das Feld checksum verwendet eines der folgenden Präfixe:
| Präfix | Digest-Codierung | Description |
|---|---|---|
ETAG |
Opaque | Das eTag des Objektspeichers für die gesamte Datei. Wortwörtlich vom Laden geliefert, nur zum Vergleich der Gleichheit verwendet und nicht rekonchabel. |
MD5 |
Kleinbuchstaben-Hex | Ein MD5-Digest (RFC 1321), 32 Hexzeichen. |
CRC32 |
Kleinbuchstaben-Hex | Eine CRC32-Prüfsumme (RFC 2083), 8 Hexzeichen. |
CRC32C |
Kleinbuchstaben-Hex | Eine CRC32C-Prüfsumme (RFC 3385), 8 Hexzeichen. |
SHA-256 |
Kleinbuchstaben-Hex | Ein SHA-256-Digest (RFC 6234), 64 Hexzeichen. |
Zum Beispiel sieht eine MD5-Prüfsumme so MD5:d41d8cd98f00b204e9800998ecf8427eaus, und ein objektspeichernder eTag sieht aus wie ETAG:"686897696a7c876b7e", einschließlich der umgebenden doppelten Anführungszeichen, die vom Objektspeicher zurückgegeben werden.
Wählen Sie zwischen FILE und BINARY
Die folgende Tabelle vergleicht die Optionen für die Arbeit mit unstrukturierten Dateien:
| Spaltentyp | Werte | Anwendungsfall |
|---|---|---|
FILE |
Eine kontrollierte Referenz auf eine Datei plus Metadaten (uri, size, content_type, checksum). |
Verwendung zur Verwaltung und Verarbeitung unstrukturierter Dateien zusammen mit strukturierten Daten sowie zur Weitergabe von Dateien an integrierte und KI-Funktionen. |
BINARY |
Die Rohbytes einer Datei, inline in einer Spalte. | Verwendung für kleine Objekte (standardmäßig bis zu 64 KB), die direkt in der Datendatei gespeichert sind. Das ist nützlich, wenn man einen geringen Metadaten-Overhead und eine vereinfachte Dateiverwaltung benötigt. Verwenden Sie diese zum Beispiel, um Miniaturen in einer Reihe mit Zeilendaten zu speichern. |
DATEIVERWALTUNG und EXTERNE Datei
Der Typ FILE unterstützt zwei Ansätze zur Verwaltung der Dateien:
-
FILE MANAGEDSpalten kopieren Dateien in verwalteten Speicher. Die Berechtigungen werden vereinfacht und über die Tabelle verwaltet. Wenn Sie Zeilen löschen oder sie aktualisieren, um auf andere Dateien zu referenzieren, werden die unreferenzierten Dateien für die Garbage Collection geeignet, sodass die Tabelle und ihre Dateien synchron bleiben. Verwenden Sie diesen Ansatz für Arbeitslasten, die über eine Tabelle auf Dateien zugreifen, wie ML-Training oder Retrieval-Augmented Generation (RAG), sowie für Dateien, die von externen Quellen importiert wurden. Für Eingabemuster siehe Ingest-Dateien als DATEITYP. -
FILE EXTERNALSpalten beziehen sich auf bestehende Dateien in einem Unity-Katalog-Volume. Die Dateien sind durch Unity-Katalog-Volume-Berechtigungen gesichert, aber ihr Lebenszyklus wird nicht von Unity Catalog verwaltet und sie werden nicht kopiert. Verwenden Sie diesen Ansatz, wenn Sie Dateien referenzieren müssen, ohne Daten zu verschieben oder Werkzeuge zu stören, die von einem bestehenden Volume lesen.
Azure Databricks empfiehlt FILE MANAGED für Workloads, die von Dateiberechtigungen und integrierter Compliance profitieren: Der Zugriff auf jede Datei erfolgt über die Tabelle, die sie referenziert, und das Löschen von Zeilen macht die referenzierten Dateien für die Garbage Collection geeignet. Verwenden FILE EXTERNAL Sie, wenn Dateien auf ihren vorhandenen Volumenpfaden bleiben müssen, um Werkzeuge zu verwenden, die sie außerhalb der Tabelle lesen.
Bei Abfragen gibt es keinen Unterschied zwischen verwalteten und externen Dateien.
Das folgende Diagramm zeigt, wie der FILE Typ Ihren Code mit Dateien im Cloud-Objektspeicher verbindet:
FILE MANAGED
FILE MANAGED Spalten speichern Kopien von Dateien in einem FileSpaceUnity-Katalog-Volume, das Sie für die Tabelle als verwalteten Speicher deklarieren. Ihr Lebenszyklus ist an die Tabellen gebunden, die auf sie verweisen: Das Löschen von Zeilen macht die referenzierten Dateien für die Garbage Collection geeignet, sodass die Tabelle und ihre Dateien synchron bleiben.
Die folgenden Verhaltensweisen gelten für FILE MANAGED:
- Die Deklaration erfordert
FileSpacediedatabricks.filespace-previewTabelleneigenschaft. - Das Lesen oder Schreiben einer verwalteten Datei erfordert Zugriff sowohl auf die Tabelle als auch auf das Volumen, das das
FileSpaceunterstützt. - Automatische Garbage Collection von unreferenzierten Dateien wird in der Beta nicht unterstützt.
Unstrukturierte Dateien, die in externen Quellen wie SharePoint, Google Drive, OneDrive und SFTP gespeichert sind, müssen als verwaltete Dateien importiert werden, bevor Sie sie mit Funktionen wie ai_parse_document Funktion und benutzerdefinierten Funktionen (UDFs) verwenden können. Für Eingabemuster siehe Ingest-Dateien als DATEITYP.
Um verwaltete Dateien zu verwenden, erstellen Sie eine Tabelle mit einer Spalte FILE MANAGED und deklarieren Sie ein Volumen als die FileSpace , indem Sie die databricks.filespace-preview Tabelleneigenschaft auf einen Volumenpfad setzen:
'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'
Vollständige Beispiele finden Sie in den folgenden FILE MANAGED Beispielen.
Beispiele für FILE MANAGED
Um eine Tabelle mit einer Spalte FILE MANAGED zu erstellen:
CREATE TABLE reports (id BIGINT, file FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
Um eine FILE MANAGED Spalte zu einer bestehenden Tabelle hinzuzufügen, setze die databricks.filespace-preview Tabelleneigenschaft vor dem Hinzufügen der Spalte, wie im folgenden Code:
ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;
Eine Spalte zu einer Tabelle hinzuzufügen FILE MANAGED , die keine Fehler FileSpace hat.
Lösche von unreferenzierten verwalteten Dateien
Da automatische Garbage Collection nicht unterstützt wird, lösche unreferenzierte Dateien selbst. Das folgende Notizbuch findet die Dateien in einer FileSpace Version, auf die keine Tabelle verweist, und löscht sie optional:
FileType Garbage Collection Notizbuch
FILE EXTERNAL
FILE EXTERNAL Spalten sind Verweise auf Dateien, die bereits in einem Unity-Katalog-Volume existieren.
Wenn du die erforderlichen Rechte auf dem Volume hast, kannst du diese Dateien aktualisieren oder löschen. Databricks empfiehlt, unveränderliche Dateien zu verwenden. Eine Table Grant stellt die Dateimetadaten frei, aber das Lesen der Dateibytes erfordert auch das READ VOLUME Privileg auf dem zugrunde liegenden Volume.
Eine externe Datei weist jede Tabellenzeile auf eine Datei auf ihrem bestehenden Pfad in einem Unity-Catalog-Volume zu:
Beispiele für FILE EXTERNAL
Um eine Tabelle mit einer Spalte FILE EXTERNAL zu erstellen:
CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);
Um eine FILE EXTERNAL Spalte zu einer bestehenden Tabelle hinzuzufügen:
ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;
Um eine Tabelle aus einem Volume zu erstellen und zu füllen, wobei jeder Datei eindeutige IDs zugewiesen werden:
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
Governance und Lebenszyklusvergleich
Die folgende Tabelle vergleicht, FILE MANAGED wie und wie FILE EXTERNAL der Dateizugriff sowie der Umgang mit dem Dateilebenszyklus geregelt wird:
| Spaltentyp | FILE MANAGED |
FILE EXTERNAL |
|---|---|---|
| Dateizugriffskontrolle | Sie werden durch Tabellen- und Volumenberechtigungen geregelt, wie SELECT etwa auf der Tabelle und READ VOLUME auf dem Volumen. |
Regelt durch Volumenberechtigungen, wie zum Beispiel READ VOLUME. |
| Lebenszyklus und Garbage Collection | Dateien sind mit den Zeilen verknüpft, die sie referenzieren. Das Löschen dieser Zeilen macht die Dateien für die Garbage Collection geeignet. Automatische Garbage Collection wird nicht unterstützt. | Du verwaltest die Dateien selbst. Das Löschen einer Tabellenzeile beeinflusst nicht die zugrundeliegende Datei im Volume. |
FILE-Typ-Anwendungsfälle
Sowohl verwaltete als auch externe FILE Typen adressieren folgende Herausforderungen bei Anwendungsfällen mit unstrukturierten Daten:
| Herausforderung | Unterstützter FILE Typ |
Benefits |
|---|---|---|
Dateien sind zu groß, um sie inline zu speichern als BINARY |
FILE MANAGED oder FILE EXTERNAL |
Eine Spalte speichert eine Referenz, sodass eine Datei nur gelesen wird, wenn eine KI-Funktion oder UDF sie verarbeitet.FILE Dadurch wird verhindert, dass große Objekte in einer Reihe in der Tësche materialisiert werden. |
| Getrennter Lebenszyklus und Governance zwischen Dateisystem und Tabelle | FILE MANAGED |
Azure Databricks verknüpft den Lebenszyklus jeder Datei an die Tabelle, sodass das Löschen von Zeilen die Dateien für die Bereinigung geeignet macht, anstatt verwaiste Dateien im Speicher zu lassen. |
| Gleichzeitige Arbeitslasten, bei denen Dateien am selben Ort bleiben müssen | FILE EXTERNAL |
Dateien bleiben auf ihren bestehenden Volumenpfaden und werden vom Lebenszyklus der Tabelle nicht beeinflusst, sodass andere Tools, die dieselben Dateien lesen, nicht gestört werden. |