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.
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 przechowuje uporządkowaną referencję do pliku nieustrukturyzowanego, z metadanymi takimi jak ścieżka i rozmiar. Używaj FILE kolumn w Unity Catalog do przechowywania dokumentów, obrazów i nagrań audio obok danych strukturalnych.
W przypadku kolumn FILE MANAGED Unity Catalog przechowuje kopie plików i zarządza nimi poprzez tabelę: usunięcie wierszy sprawia, że pliki, do których odwołuje się tabela, kwalifikują się do usunięcia w ramach oczyszczania, dzięki czemu tabela i jej pliki pozostają zsynchronizowane.
Aby uzyskać informacje o typie, zobacz FILE typ.
Poniższy diagram przedstawia kolumnę FILE o nazwie video, która odwołuje się do nagrań z jazdy, obok ustrukturyzowanych kolumn, takich jak trasa, opis sceny i etykieta zagrożenia:
Metadane i przechowywanie pliku FILE
Dla każdego wiersza FILE typ przechowuje metadane oraz uporządkowany link do pliku w pamięci. Wartość FILE obejmuje uripola size, , content_type, oraz checksum metadanych. Zapytania metadanych nie wymagają pełnego odczytu plików, co poprawia wydajność zapytań.
Możesz przekazywać FILE wartości do funkcji AI, takich jak ai_parse_document funkcja, oraz do funkcji definiowanych przez użytkownika (UDF).
Poniższy diagram przedstawia przykładową kolumnę zarządzaną FILE , zawierającą metadane ścieżek i rozmiarów oraz odniesienia do plików znajdujących się w pamięci:
Metadane i dostęp do treści
Wartość składa FILE się z dwóch części, a dostęp do każdej z nich jest regulowany inaczej:
- metadane plików (
uri,size,content_type, orazchecksum) są przechowywane w własnych plikach danych tabeli. Każdy, kto maSELECTna stole, może go przeczytać. - Zawartość plików pozostaje przechowywana. Do ich odczytu wymagany jest dostęp do pliku:
READ VOLUMEna bazowym woluminie dlaFILE EXTERNAL, lub dostęp zarówno do tabeli, jak i do woluminu stanowiącego podstawęFileSpacedlaFILE MANAGED.
Rzutowanie wartości FILE na BINARY lub STRING, przekazanie jej do funkcji AI lub UDF oraz podglądanie jej w tabeli wyników skutkują odczytem zawartości pliku. Ponieważ metadane są częścią tabeli, ścieżka i rozmiar pliku są widoczne dla każdego, kto może zapytać tabelę, nawet bez dostępu do jej treści.
Aby zobaczyć podgląd plików w wynikach zapytań, zobacz Podgląd plików w kolumnach FILE.
Dlaczego używać FILE zamiast BINARY lub STRING
Poniższa tabela opisuje wyzwania związane z obsługą dużych, nieustrukturyzowanych plików z BINARY typami lub STRING typami:
| Typ kolumny | Description | Diagram |
|---|---|---|
BINARY |
Materializuje cały obiekt przy każdym odczytie, nawet gdy potrzebujesz tylko metadanych, takich jak rozmiar pliku czy ścieżka. Powoduje to niepotrzebne obliczenia i powolne zapytania. |
|
STRING |
Przechowuje ścieżkę pliku bez metadanych, takich jak rozmiar czy informacje o wersji, oraz bez uregulowanego połączenia między tabelą a plikiem. Jeśli inne zadanie usunie plik, tabela zawiera nieaktualne informacje. Jeśli usuniesz wiersz tabeli, plik z referencjami pozostaje w pamięci do czasu usunięcia ręcznie. |
|
Sumy kontrolne
Pole checksum to token integralności dla bajtów pliku o postaci <prefix>:<digest>. Użyj go do porównania plików lub weryfikacji, że dane się nie zmieniły. Czytniki ignorują sumę kontrolną z nierozpoznanym prefiksem.
Suma kontrolna nie zawsze jest dostępna.
to_file funkcja, create_file funkcja i copy_file funkcja uzupełniają sumę kontrolną, gdy magazyn obiektów zwraca obiekt ETAG.
list_files funkcja zwracająca tabelę i read_files funkcja zwracająca tabelę nie uzupełniają sumy kontrolnej.
Pole checksum używa jednego z następujących prefiksów:
| prefiks | Kodowanie digest | Description |
|---|---|---|
ETAG |
Opaque | ETag magazynu obiektów dla całego pliku. Dostarczony przez sklep w niezmienionej postaci, używany wyłącznie do sprawdzania równości i niepodlegający ponownemu obliczeniu. |
MD5 |
Mała litera hex | Skrót MD5 (RFC 1321), 32 znaki sześciokątne. |
CRC32 |
Mała litera hex | Suma kontrolna CRC32 (RFC 2083), 8 znaków sześciokątnych. |
CRC32C |
Mała litera hex | Suma kontrolna CRC32C (RFC 3385), 8 znaków szestekowych. |
SHA-256 |
Mała litera hex | Skrót SHA-256 (RFC 6234), 64 znaki szesnastkowe. |
Na przykład suma kontrolna MD5 wygląda jak MD5:d41d8cd98f00b204e9800998ecf8427e, a znacznik eTag pamięci obiektowej wygląda jak ETAG:"686897696a7c876b7e", łącznie z otaczającymi go podwójnymi cudzysłowami zwracanymi przez pamięć obiektową.
Wybierz pomiędzy FILE i BINARY
Poniższa tabela porównuje opcje pracy z plikami nieustrukturyzowanymi:
| Typ kolumny | Values | Przypadek użycia |
|---|---|---|
FILE |
Uporządkowane odniesienie do pliku, plus metadane (uri, size, content_type, ). checksum |
Zastosowanie do zarządzania i przetwarzania plików nieustrukturyzowanych wraz ze strukturyzowanymi danymi oraz do przekazywania plików do wbudowanych i AI funkcji. |
BINARY |
Surowe bajty pliku, wpisane w kolumnę. | Zastosowanie dla małych obiektów (domyślnie do 64 KB) przechowywanych bezpośrednio w pliku danych. To przydatne, gdy potrzebujesz niskiego narzutu metadanych i uproszczonego zarządzania plikami. Na przykład użyj tego do przechowywania miniatur w linii z danymi wiersza. |
PLIK ZARZĄDZANY i PLIK ZEWNĘTRZNY
Typ ten FILE wspiera dwa podejścia do zarządzania plikami:
-
FILE MANAGEDKolumny kopiują pliki do zarządzanej pamięci. Uprawnienia są uproszczone i zarządzane przez tabelę. Gdy usuwasz wiersze lub aktualizujesz je, by odwoływały się do różnych plików, pliki bez referencji stają się kwalifikowane do zbierania śmieci, więc tabela i jej pliki pozostają zsynchronizowane. Stosuj to podejście dla obciążeń uzyskujących dostęp do plików przez tabelę, takich jak trening ML lub generowanie generowania z dodatkiem wyszukiwania (RAG), oraz dla plików pobieranych z zewnętrznych źródeł. Informacje o wzorcach pozyskiwania danych znajdziesz w sekcji Pozyskiwanie plików jako typ FILE. -
FILE EXTERNALkolumny odnoszą się do istniejących plików w tomie katalogu Unity. Pliki są zabezpieczone uprawnieniami woluminów Unity Catalog, ale ich cykl życia nie jest zarządzany przez Unity Catalog i nie są kopiowane. Stosuj takie podejście, gdy musisz odwołać się do plików bez przenoszenia danych lub zakłócania narzędzi odczytujących z istniejącego woluminu.
Azure Databricks zaleca FILE MANAGED dla obciążeń, którym służą uprawnienia na poziomie plików i wbudowane mechanizmy zgodności: dostęp do każdego pliku jest kontrolowany przez tabelę, która się do niego odwołuje, a usunięcie wierszy sprawia, że pliki, do których istnieją odwołania, kwalifikują się do odśmiecania. Używaj FILE EXTERNAL , gdy pliki muszą pozostać na swoich obecnych ścieżkach woluminów dla narzędzi, które odczytują je poza tabelą.
W przypadku zapytań nie ma różnicy między plikami zarządzanymi a zewnętrznymi.
Poniższy diagram pokazuje, jak typ FILE łączy Twój kod z plikami w chmurze obiektowej:
FILE MANAGED
FILE MANAGED kolumny przechowują kopie plików w FileSpace, woluminie Unity Catalog, który deklarujesz, aby tabela służyła jako zarządzana pamięć masowa. Ich cykl życia jest powiązany z tabelami, które się do nich odwołują: usuwanie wierszy sprawia, że pliki, do których się odwołują, mogą zostać usunięte w procesie odśmiecania, dzięki czemu tabela i jej pliki pozostają zsynchronizowane.
Poniższe zachowania odnoszą się do FILE MANAGED:
- Zadeklarowanie
FileSpacewymaga właściwości tabelidatabricks.filespace-preview. - Odczytywanie lub zapisywanie zarządzanego pliku wymaga dostępu zarówno do tabeli, jak i do woluminu, który stanowi podstawę dla
FileSpace. - Automatyczne zbieranie śmieci plików bez referencji nie jest obsługiwane w wersji beta.
Pliki nieustrukturyzowane przechowywane w zewnętrznych źródłach, takich jak SharePoint, Google Drive, OneDrive i SFTP, muszą zostać zaimportowane jako pliki zarządzane, zanim będzie można ich używać z funkcjami takimi jak ai_parse_document function i funkcje definiowane przez użytkownika (UDF). Informacje o wzorcach pozyskiwania danych zawiera sekcja Pozyskiwanie plików jako typu FILE.
Aby użyć plików zarządzanych, stwórz tabelę z kolumną FILE MANAGED i zadeklaruj wolumin FileSpace , ustawiając właściwość tabeli databricks.filespace-preview na ścieżkę woluminu:
'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'
Pełne przykłady można znaleźć w poniższych FILE MANAGED przykładach.
przykłady FILE MANAGED
Aby utworzyć tabelę z kolumną FILE MANAGED :
CREATE TABLE reports (id BIGINT, file FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
Aby dodać kolumnę FILE MANAGED do istniejącej tabeli, ustaw właściwość tabeli databricks.filespace-preview przed dodaniem kolumny, tak jak w następującym kodzie:
ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;
Dodanie kolumny FILE MANAGED do tabeli, która nie ma FileSpace, kończy się niepowodzeniem.
Usuń pliki zarządzane bez referencji
Ponieważ automatyczne zbieranie śmieci nie jest obsługiwane, usuń pliki bez referencji samodzielnie. Poniższy notatnik znajduje pliki w FileSpace, do których nie odwołuje się żadna wersja tabeli, i opcjonalnie je usuwa:
Notes odśmiecania pamięci FileType
FILE EXTERNAL
FILE EXTERNAL kolumny to odniesienia do plików, które już istnieją w woluminie Unity Catalog.
Jeśli masz wymagane uprawnienia na woluminie, możesz je aktualizować lub usuwać. Databricks zaleca używanie plików niezmiennych. Uprawnienie do tabeli udostępnia metadane pliku, ale odczyt bajtów pliku wymaga również uprawnienia READ VOLUME w bazowym woluminie.
Zewnętrzny plik przypisuje każdy wiersz tabeli do pliku pod jego istniejącą ścieżką w woluminie Unity Catalog:
przykłady FILE EXTERNAL
Aby utworzyć tabelę z kolumną FILE EXTERNAL :
CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);
Aby dodać kolumnę FILE EXTERNAL do istniejącej tabeli:
ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;
Aby utworzyć i wypełnić tabelę na podstawie woluminu, przypisując każdemu plikowi unikalny identyfikator:
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
Porównanie zarządzania i cyklu życia
Poniższa tabela porównuje, jak FILE MANAGED i FILE EXTERNAL zarządzają dostępem do plików oraz obsługują cykl życia pliku:
| Typ kolumny | FILE MANAGED |
FILE EXTERNAL |
|---|---|---|
| Kontrola dostępu do plików | Kontrolowane przez uprawnienia tabeli i woluminu, takie jak SELECT dla tabeli i READ VOLUME dla woluminu. |
Zależy od uprawnień zbiorczych, takich jak READ VOLUME. |
| Cykl życia i zbieranie śmieci | Pliki są powiązane z wierszami, które się do nich odwołują. Usunięcie tych wierszy sprawia, że pliki kwalifikują się do zbierania śmieci. Automatyczne zbieranie śmieci nie jest obsługiwane. | Sam zarządzasz plikami. Usunięcie wiersza tabeli nie wpływa na plik bazowy w woluminie. |
Przypadki użycia typu FILE
Zarówno zarządzane, jak i FILE zewnętrzne typy odpowiadają na następujące wyzwania dotyczące zastosowań danych nieustrukturyzowanych:
| Wyzwanie | Typ wspierany FILE |
Benefits |
|---|---|---|
Pliki zbyt duże, by przechowywać je inline jako BINARY |
FILE MANAGED lub FILE EXTERNAL |
Kolumna FILE przechowuje odwołanie, więc plik jest odczytywany tylko wtedy, gdy funkcja AI lub UDF go przetwarza. To zapobiega materializowaniu dużych obiektów w linii na stole. |
| Rozłączony cykl życia i zarządzanie między systemem plików a tabelą | FILE MANAGED |
Azure Databricks wiąże cykl życia każdego pliku z tabelą, więc usunięcie wierszy sprawia, że pliki kwalifikują się do czyszczenia, zamiast zostawiać osierocone pliki w pamięci. |
| Równoczesne obciążenia wymagające pozostania plików w tym samym miejscu | FILE EXTERNAL |
Pliki pozostają na swoich obecnych ścieżkach woluminów, nie wpływając na cykl życia tabeli, więc inne narzędzia czytające te same pliki nie są zakłócane. |