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.
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 KI-Funktionen, wie Funktionenai_parse_document, und an benutzerdefinierte Funktionen (UDFs) weitergebenFILE.
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. |
EXTERNE DATEI UND DATEI VERWALTET
Der Typ FILE unterstützt zwei Ansätze zur Verwaltung der Dateien:
-
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. -
FILE MANAGEDSpalten kopieren Dateien in verwalteten Speicher. Setzen Sie diedatabricks.filespace-previewTabelleneigenschaft auf einen verwalteten Volumenpfad, den Unity Catalog als Speicher verwenden kann. Verwenden Sie diesen Ansatz, wenn Sie vereinfachte Berechtigungen möchten, die über die Tabelle verwaltet werden, für Workloads, die nur über eine Tabelle auf Dateien zugreifen, wie ML-Training oder Retrieval-Augmented Generation (RAG). Für Eingabemuster siehe Ingest-Dateien als DATEITYP.
Bei Abfragen gibt es keinen Unterschied zwischen externen und verwalteten Dateien.
Das folgende Diagramm zeigt, wie der FILE Typ Ihren Code mit Dateien im Cloud-Objektspeicher verbindet:
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/');
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 sie referenzieren.
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 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. Der Lebenszyklus von Dateien in einem FileSpace ist an die Zeilen gebunden, die auf sie verweisen. Das Löschen dieser Zeilen macht die Dateien für die Garbage Collection geeignet.
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.
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 EXTERNAL |
FILE MANAGED |
|---|---|---|
| Dateizugriffskontrolle | Regelt durch Volumenberechtigungen, wie zum Beispiel READ VOLUME. |
Sie werden durch Tabellen- und Volumenberechtigungen geregelt, wie SELECT etwa auf der Tabelle und READ VOLUME auf dem Volumen. |
| Lebenszyklus und Garbage Collection | Du verwaltest die Dateien selbst. Das Löschen einer Tabellenzeile beeinflusst nicht die zugrundeliegende Datei im Volume. | 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. |
FILE-Typ-Anwendungsfälle
Sowohl externe als auch verwaltete FILE Typen lösen folgende Herausforderungen für Anwendungsfälle 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. |