Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.
Het FILE type slaat een beheerde verwijzing op naar een ongestructureerd bestand, met metadata zoals pad en grootte. Gebruik FILE kolommen in de Unity Catalog om documenten, afbeeldingen en audio op te slaan naast gestructureerde data.
Met FILE MANAGED kolommen slaat Unity Catalog kopieën van de bestanden op en beheert deze met de tabel: het verwijderen van rijen maakt de gerefereerde bestanden geschikt voor garbage collection, zodat de tabel en de bestanden synchroon blijven.
Voor de typereferentie, zie FILE type.
Het volgende diagram toont een FILE kolom met de naam video die verwijst naar rijclips, naast gestructureerde kolommen zoals route, scenebeschrijving en gevarenlabel:
FILE-metadata en opslag
Voor elke rij slaat het FILE type metadata en een bestuurde link naar het bestand in opslag op. Een FILE waarde bevat uri, size, content_type, en checksum metadatavelden. Metadata-query's vereisen geen volledige bestandslezingen, wat de queryprestaties verbetert.
Je kunt waarden doorgeven FILE aan AI-functies, zoals ai_parse_document functie, en aan door de gebruiker gedefinieerde functies (UDF's).
Het volgende diagram toont een voorbeeld van een beheerde FILE kolom, met metadata van paden en grootte en verwijzingen naar de bestanden in opslag:
Toegang tot metadata en inhoud
Een FILE waarde bestaat uit twee delen, en de toegang tot elk wordt anders geregeld:
- Bestandsmetadata (
uri,size,content_type, enchecksum) wordt opgeslagen in de eigen databestanden van de tabel. Iedereen metSELECTop tafel kan het lezen. - De inhoud van bestanden blijft in opslag. Het lezen ervan vereist toegang tot het bestand:
READ VOLUMEop het onderliggende volume voorFILE EXTERNAL, of toegang tot zowel de tabel als het volume dat deFileSpacevoorFILE MANAGEDondersteunt.
Het converteren van een FILE-waarde naar BINARY of STRING, het doorgeven ervan aan een AI-functie of UDF en het weergeven van een voorbeeld ervan in de resultaattabel lezen allemaal de inhoud van het bestand. Omdat de metadata deel uitmaakt van de tabel, zijn het pad en de grootte van een bestand zichtbaar voor iedereen die de tabel kan opvragen, zelfs zonder toegang tot de inhoud.
Om bestanden te bekijken in queryresultaten, zie Voorbeeldbestanden in de kolommen FILE.
Waarom FILE gebruiken in plaats van BINARY of STRING
De volgende tabel beschrijft de uitdagingen bij het omgaan met grote ongestructureerde bestanden met BINARY of STRING types:
| Kolomtype | Description | Diagram |
|---|---|---|
BINARY |
Materialiseert het volledige object voor elke lezing, zelfs als je alleen metadata nodig hebt zoals de bestandsgrootte of het pad. Dit resulteert in onnodige berekeningen en trage zoekopdrachten. |
|
STRING |
Slaat een bestandspad op zonder metadata, zoals grootte of versie-informatie, en zonder bestuurde link tussen de tabel en het bestand. Als een andere werklast het bestand verwijdert, bevat de tabel verouderde informatie. Als je een tabelrij verwijdert, blijft het gerefereerde bestand opgeslagen totdat je het handmatig verwijdert. |
|
Controlesommen
Het checksum veld is een integriteitstoken voor de bytes van het bestand, van de vorm <prefix>:<digest>. Gebruik het om bestanden te vergelijken of te controleren of een bestand niet is veranderd. Lezers negeren een checksum met een niet-herkend voorvoegsel.
Een checksum is niet altijd beschikbaar.
to_file functie, create_file functie, en copy_file functie vullen de checksum in wanneer de objectopslag een ETAG terugstuurt.
list_files Tabelwaarde functie en read_files tabelwaarde functie vullen de controlesum niet.
Het checksum veld maakt gebruik van een van de volgende voorvoegsels:
| voorvoegsel | Hashcodering | Description |
|---|---|---|
ETAG |
Opaque | De eTag van de objectstore voor het hele bestand. Letterlijk geleverd door de winkel, alleen gebruikt voor gelijkheidsvergelijking en niet herberekenbaar. |
MD5 |
Kleine hex | Een MD5-digest (RFC 1321), 32 hex-tekens. |
CRC32 |
Kleine hex | Een CRC32-checksum (RFC 2083), 8 hex-tekens. |
CRC32C |
Kleine hex | Een CRC32C-checksum (RFC 3385), 8 hex-tekens. |
SHA-256 |
Kleine hex | Een SHA-256 digest (RFC 6234), 64 hex-tekens. |
Bijvoorbeeld, een MD5-checksum ziet eruit als MD5:d41d8cd98f00b204e9800998ecf8427e, en een object-store eTag als ETAG:"686897696a7c876b7e", inclusief de omliggende dubbele quotes die door de objectopslag worden teruggegeven.
Kies tussen FILE en BINARY
De volgende tabel vergelijkt de opties voor het werken met ongestructureerde bestanden:
| Kolomtype | Values | Gebruiksituatie |
|---|---|---|
FILE |
Een gereguleerde verwijzing naar een bestand, plus metadata (uri, size, content_type, ). checksum |
Gebruik voor het beheren en verwerken van ongestructureerde bestanden naast gestructureerde data, en het doorgeven van bestanden aan ingebouwde en AI-functies. |
BINARY |
De ruwe bytes van een bestand, inline in een kolom. | Gebruik voor kleine objecten (standaard tot 64 KB) die direct in het databestand zijn opgeslagen. Dit is handig wanneer je weinig metadata-overhead en vereenvoudigd bestandsbeheer nodig hebt. Gebruik dit bijvoorbeeld om miniaturen in lijn met rijgegevens op te slaan. |
BESTANDSBEHEER en EXTERN BESTAND
Het FILE type ondersteunt twee benaderingen voor het beheren van de bestanden:
-
FILE MANAGEDkolommen kopiëren bestanden naar beheerde opslag. Rechten worden vereenvoudigd en beheerd via de tabel. Wanneer je rijen verwijdert of bijwerkt om naar andere bestanden te verwijzen, komen de niet-gerefereerde bestanden in aanmerking voor garbage collection, zodat de tabel en de bestanden synchroon blijven. Gebruik deze aanpak voor workloads die bestanden via een tabel benaderen, zoals ML-training of retrieval-augmented generation (RAG), en voor bestanden die van externe bronnen zijn ingevoerd. Voor invoerpatronen, zie Ingest-bestanden als het BESTANDSTYPE. -
FILE EXTERNALkolommen verwijzen naar bestaande bestanden in een Unity Catalog-volume. De bestanden zijn beveiligd met volumerechten van Unity Catalog, maar hun levenscyclus wordt niet beheerd door Unity Catalog en ze worden niet gekopieerd. Gebruik deze aanpak wanneer je bestanden moet refereren zonder data te verplaatsen of tools te verstoren die van een bestaand volume lezen.
Azure Databricks beveelt FILE MANAGED aan voor workloads die profiteren van bestandsniveau-permissies en ingebouwde compliance: toegang tot elk bestand wordt geregeld via de tabel die ernaar verwijst, en het verwijderen van rijen maakt de gerefereerde bestanden geschikt voor garbage collection. Gebruik FILE EXTERNAL wanneer bestanden op hun bestaande volumepaden moeten blijven voor tools die ze buiten de tabel lezen.
Voor queries is er geen verschil tussen beheerde en externe bestanden.
Het volgende diagram laat zien hoe het FILE type je code verbindt met bestanden in cloudobjectopslag:
FILE MANAGED
FILE MANAGED kolommen slaan kopieën van bestanden op in een FileSpace, een Unity Catalog-volume dat je voor de tabel aanduidt om te gebruiken als beheerde opslag. Hun levenscyclus is gekoppeld aan de tabellen die naar hen verwijzen: het verwijderen van rijen maakt de gerefereerde bestanden geschikt voor garbage collection, zodat de tabel en de bestanden synchroon blijven.
De volgende gedragingen gelden voor:FILE MANAGED
- Het declareren van
FileSpacevereist dedatabricks.filespace-previewtabeleigenschap. - Het lezen of schrijven van een beheerd bestand vereist toegang tot zowel de tabel als het volume dat ten grondslag ligt aan
FileSpace. - Automatisch opschonen van bestanden waarnaar niet wordt verwezen, wordt niet ondersteund in de bètaversie.
Ongestructureerde bestanden die zijn opgeslagen in externe bronnen zoals SharePoint, Google Drive, OneDrive en SFTP moeten als beheerde bestanden worden ingevoerd voordat je ze kunt gebruiken met functies zoals ai_parse_document functie en gebruikersgedefinieerde functies (UDF's). Voor invoerpatronen, zie Ingest-bestanden als het BESTANDSTYPE.
Om beheerde bestanden te gebruiken, maak je een tabel met een FILE MANAGED kolom aan en declareer je een volume als de FileSpace door de databricks.filespace-preview tabeleigenschap in te stellen op een volumepad:
'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'
Voor volledige voorbeelden, zie de volgende FILE MANAGED voorbeelden.
voorbeelden van FILE MANAGED
Om een tabel met een FILE MANAGED kolom te maken:
CREATE TABLE reports (id BIGINT, file FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
Om een FILE MANAGED kolom toe te voegen aan een bestaande tabel, stel je de databricks.filespace-preview tabeleigenschap in voordat je de kolom toevoegt, zoals in de volgende code:
ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;
Het toevoegen van een FILE MANAGED kolom aan een tabel zonder FileSpace faalt.
Verwijder beheerde bestanden zonder referenties
Omdat automatische opschoning niet wordt ondersteund, moet je bestanden waarnaar niet wordt verwezen zelf verwijderen. Het volgende notitieboekje vindt de bestanden in een FileSpace waar geen tabelversie naar verwijst, en verwijdert ze optioneel:
FileType-garbagecollectionnotebook
FILE EXTERNAL
FILE EXTERNAL kolommen zijn referenties naar bestanden die al bestaan in een Unity Catalog-volume.
Als je de vereiste rechten op het volume hebt, kun je deze bestanden bijwerken of verwijderen. Databricks raadt aan om onveranderlijke bestanden te gebruiken. Een table grant maakt de bestandsmetadata bloot, maar het lezen van de bytes van het bestand vereist ook het READ VOLUME privilege op het onderliggende volume.
Een extern bestand koppelt elke tabelrij aan een bestand op het bestaande pad in een Unity Catalog-volume:
voorbeelden van FILE EXTERNAL
Om een tabel met een FILE EXTERNAL kolom te maken:
CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);
Om een FILE EXTERNAL kolom toe te voegen aan een bestaande tabel:
ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;
Om een tabel te maken en te vullen vanuit een volume, waarbij unieke ID's aan elk bestand worden toegewezen:
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
Vergelijking van bestuur en levenscyclus
De volgende tabel vergelijkt hoe FILE EXTERNAL en FILE MANAGED bestandstoegang regelen en de levenscyclus van bestanden afhandelen:
| Kolomsoort | FILE MANAGED |
FILE EXTERNAL |
|---|---|---|
| Bestandstoegangscontrole | Geregeld door tabel- en volumerechten, zoals SELECT op de tabel en READ VOLUME op het volume. |
Beheerd door volumemachtigingen, zoals READ VOLUME. |
| Levenscyclus en garbagecollectie | Bestanden zijn gekoppeld aan de rijen die ernaar verwijzen. Het verwijderen van die rijen maakt de bestanden geschikt voor garbage collection. Automatisch opschonen wordt niet ondersteund. | Je beheert de bestanden zelf. Het verwijderen van een tabelrij beïnvloedt het onderliggende bestand in het volume niet. |
FILE-type gebruikssituaties
Zowel beheerde als externe FILE types behandelen de volgende uitdagingen voor use cases met ongestructureerde data:
| Uitdaging | Ondersteund FILE type |
Benefits |
|---|---|---|
Bestanden te groot om inline op te slaan als BINARY |
FILE MANAGED of FILE EXTERNAL |
Een FILE kolom slaat een referentie op, dus een bestand wordt alleen gelezen wanneer een AI-functie of UDF het verwerkt. Dit voorkomt dat grote objecten in de tabel worden gematerialiseerd. |
| Losgekoppelde levenscyclus en governance tussen het bestandssysteem en de tabel | FILE MANAGED |
Azure Databricks koppelt de levenscyclus van elk bestand aan de tabel, waardoor het verwijderen van rijen de bestanden geschikt maakt voor opruiming in plaats van verweesde bestanden in opslag te laten. |
| Gelijktijdige workloads waarbij bestanden op dezelfde locatie moeten blijven | FILE EXTERNAL |
Bestanden blijven op hun bestaande paden op het volume, zonder dat de levenscyclus van de tabel daarop van invloed is, zodat andere tools die dezelfde bestanden lezen niet worden onderbroken. |