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.
Aby uzyskać informacje o typie, zobacz FILE typ.
Poniższy diagram przedstawia kolumnę FILE o nazwie, video która odnosi się do klipów jazdy obok ustrukturyzowanych kolumn, takich jak trasa, opis scen i etykieta zagrożeń:
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:
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. Skutkuje to niepotrzebnymi obliczeniami i wolnymi zapytaniami. |
|
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 obciążenie usunie plik, tabela zawiera nieaktualne informacje. Jeśli usuniesz wiersz tabeli, plik z referencjami pozostaje w pamięci do czasu usunięcia ręcznie. |
|
Sum kontrolnych
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. Czytelnicy ignorują sumę kontrolną z nierozpoznanym przedrostkiem.
Suma kontrolna nie zawsze jest dostępna.
to_file funkcja, create_file funkcja i funkcja wypełniają copy_file sumę kontrolną, gdy magazyn obiektów zwraca .ETAG
list_files Funkcja tabelowa i read_files tabelowa nie wypełniają sumy kontrolnej.
Pole używa checksum jednego z następujących prefiksów:
| prefiks | Kodowanie digest | Description |
|---|---|---|
ETAG |
Opaque | ETag magazynu obiektów dla całego pliku. Dostarczane dosłownie przez sklep, używane wyłącznie do porównania równości, a nie do ponownego obliczania. |
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 | Digest SHA-256 (RFC 6234), 64 znaki szesteksię. |
Na przykład suma kontrolna MD5 wygląda jak MD5:d41d8cd98f00b204e9800998ecf8427e, a eTag magazynu obiektowego jak ETAG:"686897696a7c876b7e", wraz z otaczającymi podwójnymi cudzysłowami zwracanymi przez magazyn obiektów.
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 ZEWNĘTRZNY i ZARZĄDZANY PLIKAMI
Typ ten FILE wspiera dwa podejścia do zarządzania plikami:
-
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. -
FILE MANAGEDKolumny kopiują pliki do zarządzanej pamięci. Ustaw właściwość tabelidatabricks.filespace-previewna zarządzaną ścieżkę woluminów, aby Unity Catalog mógł używać jako magazyn. Stosuj to podejście, gdy chcesz uproszczonych uprawnień, które są zarządzane przez tabelę dla obciążeń uzyskujących dostęp do plików tylko przez tabelę, takich jak trening ML lub generowanie generowane przez pobieranie (RAG). Aby poznać wzorce pobierania, zobacz pliki Ingest jako typ PLIKU.
W przypadku zapytań nie ma różnicy między plikami zewnętrznymi a zarządzanymi.
Poniższy diagram pokazuje, jak typ FILE łączy Twój kod z plikami w chmurze obiektowej:
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. Przyznanie tabeli ujawnia metadane pliku, ale odczyt bajtów pliku wymaga READ VOLUME również uprawnień na bazowym woluminie.
Zewnętrzny plik mapuje każdy wiersz tabeli na plik na jego istniejącej ścieżce 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 zapłynąć tabelę z woluminu, przypisując każdemu plikowi unikalne identyfikatory:
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
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 odnoszą.
Następujące zachowania dotyczą :FILE MANAGED
- Deklarowanie wymaga
FileSpacewłasnościdatabricks.filespace-previewtabeli. - Odczyt lub zapis pliku zarządzanego wymaga dostępu zarówno do tabeli, jak i woluminu, który wspiera .
FileSpace - Automatyczne zbieranie śmieci z plików bez referencji nie jest obsługiwane.
Pliki nieustrukturyzowane przechowywane w zewnętrznych źródłach, takich jak SharePoint, Google Drive, OneDrive i SFTP, muszą być pobierane jako pliki zarządzane, zanim można ich używać z funkcjami takimi jak ai_parse_document funkcje i funkcje zdefiniowane przez użytkownika (UDF). Aby poznać wzorce pobierania, zobacz pliki Ingest jako typ PLIKU.
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. Cykl życia plików w a FileSpace jest powiązany z wierszami, które do nich odwołują. Usunięcie tych wierszy sprawia, że pliki kwalifikują się do zbierania śmieci.
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 błędów.
Porównanie zarządzania i cyklu życia
Poniższa tabela porównuje, jak i FILE MANAGED jak FILE EXTERNAL zarządzać dostępem do plików oraz zarządzać cyklem życia plików:
| Typ kolumny | FILE EXTERNAL |
FILE MANAGED |
|---|---|---|
| Kontrola dostępu do plików | Regulowane przez uprawnienia woluminacyjne, takie jak READ VOLUME. |
Regulowane przez uprawnienia do tabeli i woluminu, takie jak SELECT na stole i READ VOLUME na woluminie. |
| Cykl życia i zbieranie śmieci | Sam zarządzasz plikami. Usunięcie wiersza tabeli nie wpływa na plik bazowy w woluminie. | Pliki są powiązane z wierszami, które się do nich odnoszą. Usunięcie tych wierszy sprawia, że pliki kwalifikują się do zbierania śmieci. Automatyczne zbieranie śmieci nie jest obsługiwane. |
Przypadki użycia typu FILE
Zarówno typy zewnętrzne, jak i zarządzane FILE odpowiadają na następujące wyzwania dotyczące przypadków użycia danych nieustrukturyzowanych:
| Wyzwanie | Typ wspierany FILE |
Benefits |
|---|---|---|
Pliki zbyt duże, by przechowywać je inline jako BINARY |
FILE MANAGED lub FILE EXTERNAL |
Kolumna przechowuje FILE referencję, 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. |