Typ: FILE

Dotyczy:sprawdź, czy zaznaczono tak, sprawdź, czy usługa SQL databricks została oznaczona jako tak 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 FILE nie gwarantuje zamówienia. Nie możesz używać kolumny FILE jako kolumny partycjonującej, klasteryzującej, klucza MAP , klucza łączenia ani wyrażenia grupowania. Aby grupować według pliku, grupuj według jego uri pola.

Literals

Aby utworzyć wartość FILE , zobacz następujące funkcje:

Do CAST wartości lub VARIANTSTRUCT do FILE:

  • A STRUCT musi 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 VARIANT musi zawierać uri to 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 FILE być zadeklarowana jako FILE MANAGED lub FILE EXTERNAL. Zastosowanie FILE we 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 CAST z wartości a VARIANTSTRUCT .
    • Zagnieżdżone wewnątrz STRUCT, , ARRAYwartości , MAPlub .VARIANT Obsługiwane są tylko pliki zewnętrzne wewnątrz .VARIANT
  • Aby odczytać metadane plików, użyj , , , , oraz checksum pól z notacją kropkową, na przykład file_column.uri. content_typesizeoffseturi
  • Aby wyodrębnić strukturyzowaną zawartość z pliku, należy przekazać FILEwartość funkcjiai_parse_document funkcyjnej.

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;