Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Typ:
Dotyczy:
, sprawdź, czy usługa SQL databricks
Databricks Runtime 18 LTS lub nowsza
Important
Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Typ ten FILE odnosi się do pliku nieustrukturyzowanego i jego metadanych. Używaj go do zarządzania i przetwarzania dokumentów, obrazów i dźwięku wraz z danymi strukturalnymi w Unity Catalog.
FILE typ jest obsługiwany tylko dla tabel Delta Lake.
Uwaga / Notatka
Ten FILE typ nie jest obsługiwany na notebookach serwerowych. Jest obsługiwany na notatnikach podłączonych do bezserwerowych magazynów SQL Databricks.
Składnia
{ FILE MANAGED | FILE EXTERNAL }
Użyj FILE MANAGED lub FILE EXTERNAL jako typu kolumny, gdy deklarujesz kolumnę tabelową z .CREATE TABLE Nie można zadeklarować kolumny tabeli jako bez FILE określenia albo MANAGEDEXTERNAL.
FILE jest dozwolony tylko jako parametr lub typ zwrotu w UDF, procedurze przechowywanej lub podczas przesyłania.
Porównanie FILE EXTERNAL i FILE MANAGED, w tym diagramów architektury, można porównać FILE EXTERNAL oraz FILE MANAGED.
Pola
Wartość zawiera FILE następujące pola:
| Pole | Typ | Description |
|---|---|---|
uri |
STRING |
URI pliku. To pole nie może być .null |
offset |
BIGINT |
Przesunięcie do pliku, w bajtach. |
size |
BIGINT |
Rozmiar pliku w bajtach. |
content_type |
STRING |
Typ pliku MIME, gdy jest znany. |
checksum |
STRING |
Token integralności dla bajtów pliku o postaci <algorithm>:<digest>. Dla rozpoznanych algorytmów zobacz sumy kontrolne. |
Limits
- Typ
FILEnie gwarantuje zamówienia. Nie możesz używać kolumnyFILEjako kolumny partycjonującej, klasteryzującej, kluczaMAP, klucza łączenia ani wyrażenia grupowania. Aby grupować według pliku, grupuj według jegouripola.
Literals
Aby utworzyć wartość FILE , zobacz następujące funkcje:
-
to_filefunkcja tworzy referencjęFILEze ścieżki. -
try_to_filefunkcja tworzy referencjęFILEze ścieżki i zwraca,NULLjeśli plik nie istnieje. -
create_filefunkcja przesyła zawartość do ścieżki i zwraca referencjęFILE. -
copy_filefunkcja kopiuje plik do docelowej ścieżki i zwraca referencjęFILE.
Do CAST wartości lub VARIANTSTRUCT do FILE:
- A
STRUCTmusi mieć dokładnie te pola, o następujących nazwach i typach:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - A
VARIANTmusi zawieraćurito pole. Wszystkie pozostałe pola są opcjonalne, a dodatkowe klawisze są ignorowane.
Rzucaj na FILE, nie na FILE EXTERNAL lub FILE MANAGED. Kolumna docelowa decyduje, czy powstałe odniesienie jest zewnętrzne, czy zarządzane. Gdy zapisujesz zewnętrzną referencję do kolumny FILE MANAGED , Databricks pobiera ją do zarządzanej pamięci.
Notatki
- Jako kolumna tabeli najwyższego poziomu musi
FILEbyć zadeklarowana jakoFILE MANAGEDlubFILE EXTERNAL. ZastosowanieFILEwe wszystkich innych przypadkach:- Jako parametr lub typ zwrotu w SQL, Python i Scala funkcje zdefiniowane przez użytkownika (UDF) oraz w procedurach przechowywanych SQL.
- Jako typ docelowy wartości a
CASTz wartości aVARIANTSTRUCT. - Zagnieżdżone wewnątrz
STRUCT, ,ARRAYwartości ,MAPlub .VARIANTObsługiwane są tylko pliki zewnętrzne wewnątrz .VARIANT
- Aby odczytać metadane plików, użyj , , , , oraz
checksumpól z notacją kropkową, na przykładfile_column.uri.content_typesizeoffseturi - Aby wyodrębnić strukturyzowaną zawartość z pliku, należy przekazać
FILEwartość funkcjiai_parse_documentfunkcyjnej.
Examples
Aby zadeklarować tabelę z zewnętrzną FILE kolumną:
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
Aby zapełnić go z plików, które już istnieją w woluminie:
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
Aby odczytać metadane plików z użyciem notacji kropkowej:
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
Aby skonstruować FILE wartość ze struktury:
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;