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.
Gilt für:
Databricks SQL
Databricks Runtime 18 LTS and above
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 stellt eine Referenz auf eine unstrukturierte Datei und deren Metadaten dar. Nutzen Sie es, um Dokumente, Bilder und Audiodateien zusammen mit strukturierten Daten im Unity Catalog zu verwalten und zu verarbeiten.
FILE Typ wird nur für Delta Lake-Tabellen unterstützt.
Hinweis
Der Typ FILE wird auf serverlosen Notebooks nicht unterstützt. Es wird auf Notizbüchern unterstützt, die an serverlose Databricks-SQL-Warehouses angeschlossen sind.
Syntax
{ FILE MANAGED | FILE EXTERNAL }
Verwenden FILE MANAGED Sie oder FILE EXTERNAL als Spaltentyp, wenn Sie eine Tabellenspalte mit CREATE TABLEdeklarieren. Man kann eine Tabellenspalte nicht als deklarieren FILE , ohne entweder MANAGED oder EXTERNAL.
FILE ist nur als Parameter oder Rückgabetyp in einem UDF, gespeicherter Prozedur oder beim Casting erlaubt.
Für einen Vergleich von FILE EXTERNAL und FILE MANAGED, einschließlich Architekturdiagrammen, siehe FILE EXTERNAL und FILE MANAGED.
Felder
Ein Wert enthält folgende Felder FILE :
| Feld | Typ | Description |
|---|---|---|
uri |
STRING |
Die URI der Datei. Dieses Feld kann nicht .null |
offset |
BIGINT |
Ein Offset in die Datei, in Bytes. |
size |
BIGINT |
Die Größe der Datei in Bytes. |
content_type |
STRING |
Der MIME-Typ der Datei, wenn bekannt. |
checksum |
STRING |
Ein Integritätstoken für die Bytes der Datei, in der Form <algorithm>:<digest>. Für die anerkannten Algorithmen siehe Checksums. |
Limits
- Der Typ
FILEgarantiert keine Bestellung. Man kann eine SpalteFILEnicht als Partitionierungsspalte, Clustering-Spalte, SchlüsselMAP, Join-Schlüssel oder Gruppierungsausdruck verwenden. Um nach einer Datei zu gruppieren, gruppieren Sie stattdessen nach ihremuriFeld.
Literals
Um einen FILE Wert zu erstellen, siehe die folgenden Funktionen:
-
to_fileFunktion erzeugt eineFILEReferenz aus einem Pfad. -
try_to_fileDie Funktion erstellt eineFILEReferenz aus einem Pfad und gibt zurück,NULLfalls die Datei nicht existiert. -
create_fileDie Funktion lädt Inhalte auf einen Pfad hoch und gibt eineFILEReferenz zurück. -
copy_fileDie Funktion kopiert eine Datei auf einen Zielpfad und gibt eineFILEReferenz zurück.
Zu CAST einem VARIANT oder STRUCT Wert zu FILE:
- A
STRUCTmuss genau diese Felder besitzen, mit diesen Namen und Typen:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. -
VARIANTEin Muss das Feldurieinbeziehen. Alle anderen Felder sind optional, und zusätzliche Schlüssel werden ignoriert.
Wirke auf FILE, nicht auf oder FILE EXTERNALFILE MANAGED. Die Zielspalte bestimmt, ob die resultierende Referenz extern oder verwaltet ist. Wenn du eine externe Referenz auf eine Spalte FILE MANAGED schreibst, speichert Databricks sie in den verwalteten Speicher.
Hinweise
- Als Tabellenspalte auf oberster Ebene muss als
FILE MANAGEDoderFILE EXTERNALdeklariert werden.FILEVerwendungFILEin allen anderen Fällen:- Als Parameter- oder Rückgabetyp in benutzerdefinierten SQL-, Python- und Scala-benutzerdefinierten Funktionen (UDFs) sowie in SQL-gespeicherten Prozeduren.
- Als Zieltyp von a
CASTaus einemVARIANToderSTRUCTWert. - Eingebettet in ein
STRUCT, einARRAY, der Wert einesMAP, oder einesVARIANT. Nur externe Dateien werden in einem unterstützt.VARIANT
- Um Dateimetadaten zu lesen, verwenden Sie zum Beispiel die
uriFelder ,offset,size,content_type, undchecksumdie Felder mit Punktnotation.file_column.uri - Um strukturierte Inhalte aus einer Datei zu extrahieren, gibt man einen
FILEWert an dieai_parse_documentFunktionsfunktion .
Examples
Um eine Tabelle mit einer externen FILE Spalte zu deklarieren:
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
Um sie aus Dateien zu füllen, die bereits in einem Volume existieren:
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
Um Dateimetadaten mit Dot-Notation zu lesen:
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
Um einen FILE Wert aus einer Struktur zu konstruieren:
SELECT named_struct(
'uri', '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
'offset', null,
'size', CAST(19494 AS BIGINT),
'content_type', 'application/pdf',
'checksum', 'ETAG:v1')::FILE;