FÁJL típus és strukturálatlan adatok

Important

Ez a funkció bétaverzióban érhető el. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a funkcióhoz való hozzáférést. Lásd: Az Azure Databricks előzetes verziójának kezelése.

A FILE típus egy szabályozott hivatkozást tárol egy strukturálatlan fájlra, metaadatokkal, mint az út és a méret. Használd FILE az oszlopokat a Unity Catalogban dokumentumok, képek és hangok tárolására a strukturált adatok mellett.

Az FILE MANAGED oszlopokkal a Unity Catalog tárolja a fájlok másolatait, és a táblával kezeli őket: a sorok törlése miatt a hivatkozott fájlok alkalmassá válnak a szemétgyűjtésre, így a tábla és fájlok összhangban maradnak.

A típusreferenciáért lásd: FILE típus.

A következő ábra egy FILE oszlopot mutat, video amely vezetés klipjeire hivatkozik strukturált oszlopok mellett, mint az útvonal, helyszínleírás és veszélyjelzés:

Egy táblázat a meghajtó klipekről, ahol a videóoszlop FÁJL típusú. Minden sor összepárosítja a strukturált oszlopokat (klip azonosító, útvonal, jelenetleírás, veszélycímke és beágyazás) egy videófájl hivatkozással, amely egy thumbna-t és például 1,8 GB méretet mutat.

FÁJL metaadatok és tárolás

Minden sorhoz a FILE típus tárol metaadatokat és egy szabályozott linket a fájlhoz a tárolóban. Az érték FILE tartalmazza uri, size, content_type, és checksum metaadatmezőket. A metaadat-lekérdezésekhez nem kell teljes fájlolvasás követelménye, ami javítja a lekérdezések teljesítményét.

Értékeket adhatsz FILEát AI függvényeknek, például ai_parse_document függvényeknek, és a felhasználó által definiált függvényeknek (UDF-ek).

Az alábbi ábra egy példát mutat egy kezelt FILE oszlopot, amely út- és méretmetaadatokat, valamint hivatkozásokat tartalmaz a tárolóban lévő fájlokra:

A klips táblázat, ahol a videóoszlop FILE típusként van tárolva, út- és méretpárként látható. A nyilak minden sort a tárolóban lévő fájlhoz kötnek, illusztrálva a tábla és a fájlok közötti szabályozott hivatkozást.

Miért használunk FILE-t a BINARY vagy STRING helyett

Az alábbi táblázat részletezi a nagy, strukturálatlan fájlok kezelésével kapcsolatos kihívásokat, amelyek BINARY vagy STRING típusok esetén:

Oszloptípus Description Diagram
BINARY Minden olvasás során a teljes objektumot materializálja, még akkor is, ha csak metaadat, például a fájlméret vagy az út szükséges. Ez felesleges számításokat és lassú lekérdezéseket eredményez. A klipek táblázata, ahol a videóoszlop BINARY-ként van tárolva. Minden többgigabájtos videó nyers bájtjai sorban materializálódnak az oszlopban.
STRING Fájlút tárol metaadat nélkül, például méret- vagy verzióinformációval, valamint a tábla és a fájl közötti szabályozott kapcsolat nélkül. Ha egy másik munkaterhelés eltávolítja a fájlt, a táblán elavult információk vannak. Ha eltávolítasz egy táblázatsort, a hivatkozott fájl tárolva marad, amíg kézzel nem távolítod. A klips táblázat, ahol a videóoszlop STRING útként van tárolva, például s3://.../NW-0142. Egy út már nem oldódik meg egy fájlra a kötetben, ami azt mutatja, hogy a string útvonalak nem garantálják a fájlok létezését, és hogy az irányítás nincs összekapcsolva.

Ellenőrző összegek

A checksum mező egy integritási tokenként szolgál a fájl bájtjaihoz, az alábbi formában <prefix>:<digest>. Használd a fájlok összehasonlítására vagy annak ellenőrzésére, hogy a fájl nem változott-e meg. Az olvasók figyelmen kívül hagyják az ismeretlen előtagú ellenőrző összeget.

Ellenőrző összeg nem mindig elérhető. to_file függvény, create_file függvény és copy_file függvény tölti fel az ellenőrző összeget, amikor az objektum tároló visszaadja a ETAG-t. list_files A táblázatértékű függvény és read_files a táblázatértékű függvény nem tölti ki az ellenőrzőösszeget.

A checksum mező az alábbi előtagok egyikét használja:

Előtag Digest kódolás Description
ETAG Opaque Az objektumtároló eTagje az egész fájlhoz. Szó szerint a bolt szállítja, csak egyenlőségi összehasonlításra használják, és nem újraszámolhatók.
MD5 Kisbetűs hatszög Egy MD5 összefoglaló (RFC 1321), 32 hex karakter.
CRC32 Kisbetűs hatszög Egy CRC32 ellenőrzőösszeg (RFC 2083), 8 hex karakter.
CRC32C Kisbetűs hatszög Egy CRC32C ellenőrzőösszeg (RFC 3385), 8 hexkarakter.
SHA-256 Kisbetűs hatszög Egy SHA-256 összefoglaló (RFC 6234), 64 hex karakter.

Például egy MD5 ellenőrző összeg úgy néz ki, mint MD5:d41d8cd98f00b204e9800998ecf8427e, és egy objektum-tároló eTag úgy néz ki, mint ETAG:"686897696a7c876b7e", beleértve a környező idézőjeleket, amelyeket az objektum tároló ad.

Válassz a FILE és között BINARY

Az alábbi táblázat összehasonlítja a strukturálatlan fájlokkal való munkavégzés lehetőségeit:

Oszloptípus Értékek Felhasználási eset
FILE Egy szabályzott hivatkozás egy fájlra, plusz metaadat (uri, size, content_type, checksum). Felhasználás strukturálatlan fájlok kezelésére és feldolgozására, valamint fájlok átadására beépített és mesterséges intelligencia funkcióknak.
BINARY Egy fájl nyers bájtjai, egy oszlopban sorban. Kis objektumok (alapértelmezés szerint akár 64 KB) esetén használat, amelyeket közvetlenül az adatfájlban tárolnak. Ez akkor hasznos, ha alacsony metaadat-terhelésre és egyszerűsített fájlkezelésre van szükség. Például ezt használhatjuk a thumbnailok soradatokkal együtt tárolásához.

FÁJLKEZELŐ és KÜLSŐ fájl

A típus FILE két megközelítést támogat a fájlok kezelésére:

  • FILE MANAGED oszlopok a fájlokat másolják a kezelt tárolóba. Az engedélyeket leegyszerűsítik és a táblázaton keresztül kezelik. Amikor törlöd a sorokat, vagy frissíted őket, hogy különböző fájlokra hivatkozzanak, a hivatkozás nélküli fájlok jogosulttá válnak a szemétgyűjtésre, így a tábla és a fájlok szinkronban maradnak. Ezt a megközelítést alkalmazzuk olyan munkaterheléseknél, amelyek táblázaton keresztül érnek hozzá fájlokat, például ML képzés vagy lekérdezés-augmentált generálás (RAG), valamint külső forrásokból származó fájlokat is. A felvételi mintákért lásd: Ingest fájlok FILE típusként.
  • FILE EXTERNAL oszlopok hivatkoznak a Unity Catalog kötetben meglévő fájlokra. A fájlokat a Unity Catalog kötetengedélyei védik, de az életciklusukat nem a Unity Catalog kezeli, és nem másolják le őket. Használd ezt a megközelítést, amikor fájlokat kell referálnod anélkül, hogy adatokat mozgatnál vagy megzavarnád a meglévő kötetről olvasó eszközöket.

Az Azure Databricks olyan munkaterheléseket ajánlFILE MANAGED, amelyek fájlszintű jogosultságokat és beépített megfelelőséget élveznek: minden fájlhoz való hozzáférést a hivatkozó tábla szabályozza, és a sorok törlése miatt a hivatkozott fájlok alkalmassá teszik a hulladékgyűjtésre. Akkor használd, FILE EXTERNAL amikor a fájloknak a meglévő kötetútvonalaikon kell maradniuk olyan eszközök számára, amelyek a táblán kívül olvassák őket.

Lekérdezéseknél nincs különbség a menedzselt és külső fájlok között.

A következő ábra bemutatja, hogyan köti össze a FILE típus a kódodat a felhőalapú objektumtárolásban lévő fájlokkal:

A FILE típus architektúra ábra. A Python, SQL, Scala és UDF kliensek egyetlen FÁJL típussal dolgoznak, amely metaadatokat olvas anélkül, hogy fájlbájtokat kellene lekérni. A FILE MANAGED fájlokat egy FileSpace-ben tárol, ahol a hozzáférést táblázat szinten szabályozzák, és a sorok törlése miatt a fájlok alkalmasak a szemétgyűjtésre. FILE KÜLSŐ hivatkozásokat a meglévő útjaikon jelenít meg egy UC kötetben, amelyeket kötetjogosultságok szabályoznak. Mindkét mód fájlokat tárol felhőobjektum-tárolóban, például S3-ban, ADLS-ben vagy Google Cloud Storage-ben.

FILE MANAGED

FILE MANAGED az oszlopok tárolják a fájlok másolatait egy FileSpaceUnity Catalog kötetben, amelyet a táblázat számára bejelenthetsz kezelt tárolóként. Az életciklusuk a táblákhoz kötött: a sorok törlése alkalmassá teszi a hivatkozott fájlokat a szemétgyűjtésre, így a tábla és a fájlok szinkronban maradnak.

Az alábbi viselkedések érvényesek a következő helyzetekre FILE MANAGED:

  • A deklaráláshoz FileSpace a databricks.filespace-preview tábla tulajdonság szükséges.
  • Egy menedzselt fájl olvasásához vagy írásához hozzáférést igényel mind a táblához, mind a kötethez, amely a FileSpace-t támogatja.
  • Az automatikus szemétgyűjtés a hivatkozás nélküli fájlokról nem támogatott a Bétában.

A külső forrásokban, például a SharePoint, Google Drive, OneDrive és SFTP által tárolt strukturálatlan fájlokat menedzselt fájlként kell felvenni, mielőtt olyan funkciókkal és ai_parse_document) használhatnánk. A felvételi mintákért lásd: Ingest fájlok FILE típusként.

A menedzselt fájlok használatához hozz létre egy táblát oszloppal FILE MANAGED , és deklaráljunk egy kötetet úgy, FileSpace hogy a databricks.filespace-preview tábla tulajdonságát kötetútnak állítsuk be:

'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'

Teljes példákért lásd az alábbi FILE MANAGED példákat.

FILE MANAGED példák

Egy oszlopos táblázat FILE MANAGED létrehozásához:

CREATE TABLE reports (id BIGINT, file FILE MANAGED)
  TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');

Ha egy FILE MANAGED oszlopot szeretnél hozzáadni egy meglévő táblához, állítsuk be a databricks.filespace-preview tábla tulajdonságát az oszlop hozzáadása előtt, mint a következő kódban:

ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');

ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;

Egy oszlop hozzáadása FILE MANAGED egy táblázathoz, amelynek nincs FileSpace hibája.

Töröld a hivatkozás nélküli menedzselt fájlokat

Mivel az automatikus szemétgyűjtés nem támogatott, töröld magad a hivatkozás nélküli fájlokat. A következő jegyzetfüzet megtalálja azokat a FileSpace fájlokat, amelyekre nincs táblázatverzió hivatkozva, és opcionálisan törli őket:

FileType szemétgyűjtő jegyzetfüzet

Jegyzetfüzet szerezz

FILE EXTERNAL

FILE EXTERNAL az oszlopok olyan fájlokra utalnak, amelyek már léteznek egy Unity Catalog kötetben.

Ha megvannak a szükséges jogosultságok a köteten, frissítheted vagy törölheted ezeket a fájlokat. A Databricks azt javasolja, hogy használj változatlan fájlokat. A táblázat megadása feltárja a fájl metaadatait, de a fájl bájtjainak olvasásához is szükség van az READ VOLUME alapul szolgáló kötetre vonatkozó jogosultságra.

Egy külső fájl minden táblázatsort egy Unity Catalog kötetben lévő meglévő útján lévő fájlhoz képezi:

Egy UC kötetről készült diagram, amely próbafájlokat tartalmaz, fázismappák alatt rendezve, és egy KÜLSŐ FÁJL oszlophoz van leképezve. Minden tábla sor a térfogatút alapján hivatkozik egy fájlra, és strukturált oszlopokat ad hozzá, mint például a Kohort és a Tanulmányi fázis.

FILE EXTERNAL példák

Egy oszlopos táblázat FILE EXTERNAL létrehozásához:

CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);

Egy oszlop hozzáadása FILE EXTERNAL egy meglévő táblához:

ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;

Egy kötetből egy tábla létrehozásához és feltöltéséhez egyedi azonosítók hozzárendelése minden fájlhoz:

CREATE TABLE documents AS
  SELECT monotonically_increasing_id() AS id, file
  FROM list_files('/Volumes/samples/sec/contracts/');

Kormányzás és életciklus összehasonlítása

Az alábbi táblázat összehasonlítja, hogyan FILE MANAGED irányítja FILE EXTERNAL a fájlhozzáférést és kezeli a fájléletciklust:

Oszloptípus FILE MANAGED FILE EXTERNAL
Fájlhozzáférés-ellenőrzés A táblázat és kötet engedélyei szabályozzák, például SELECT az asztalon és READ VOLUME a köteten. A kötetengedélyek szabályozzanak, mint READ VOLUMEpéldául .
Életciklus-kezelés és szemétgyűjtés A fájlok azokhoz a sorokhoz vannak kötve, amelyek hivatkoznak rájuk. Ezeknek a soroknak a törlése miatt a fájlok alkalmasak a szemétszállításra. Az automatikus szemétszállítás nem támogatott. Te magad kezeled a fájlokat. Egy táblázatsorának törlése nem befolyásolja a kötet alatta lévő fájlt.

FILE típusú felhasználási esetek

Mind a menedzs, mind a külső FILE típusok a strukturálatlan adatok felhasználásával kapcsolatos használati esetek következő kihívásait kezelik:

Kihívás Támogatott FILE típus Benefits
Fájlok túl nagy ahhoz, hogy sorban tárolják BINARY FILE MANAGED vagy FILE EXTERNAL Egy FILE oszlop tárol egy hivatkozást, így egy fájl csak akkor olvasható, ha egy AI függvény vagy UDF feldolgozza azt. Ez elkerüli, hogy nagy objektumok a táblázatban beilleszkedjenek a lényegre.
A fájlrendszer és a tábla közötti elszakadt életciklus és irányítás FILE MANAGED Az Azure Databricks minden fájl életciklusát a táblához köti, így a sorok törlése lehetővé teszi a fájlok tisztítására való alkalmasságot, nem pedig a rejtélybe hagyott árva fájlokat.
Egyidejű munkaterhelések, amelyekhez a fájlok ugyanabban a helyen kell maradniuk FILE EXTERNAL A fájlok a meglévő kötetútvonalaikon maradnak, a tábla életciklusa nem befolyásolja őket, így más eszközök, amelyek ugyanazokat a fájlokat olvassák, nem sérülnek meg.

Következő lépések