FILE típus

A következőre vonatkozik:yes Databricks SQL check mark yes Databricks Runtime 18 LTS and above

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 strukturálatlan fájlra és annak metaadataira vonatkozó hivatkozást képviseli. Használd dokumentumok, képek és hangok kezelésére és feldolgozására, valamint strukturált adatokat a Unity Catalogban.

FILE a type csak Delta Lake táblákhoz van támogatva.

Jegyzet

Ez a FILE típus szerver nélküli notebookokon nem támogatott. Támogatott olyan notebookokon is, amelyek szerver nélküli Databricks SQL raktárakhoz csatlakoznak.

Szemantika

{ FILE MANAGED | FILE EXTERNAL }

Használd FILE MANAGED az or FILE EXTERNAL oszloptípust, amikor egy táblázatoszlopot jelentesz be.CREATE TABLE Nem lehet táblázatoszlopot bejelenteni anélkül, FILE hogy megadnád vagy vagy MANAGEDEXTERNAL. FILE csak paraméterként vagy visszaküldési típusként engedélyezett egy UDF-ben, tárolt eljárásban vagy castingkor.

Az és , architektúradiagramok összehasonlításához FILE MANAGED lásd a FILE MANAGED és FILE EXTERNAL.FILE EXTERNAL

Mezők

Egy FILE érték a következő mezőket tartalmazza:

Field Típus Description
uri STRING A fájl URI-je. Ez a mező nem lehet null.
offset BIGINT Egy elmozdulás a fájlba, bájtokban.
size BIGINT A fájl mérete bájtban.
content_type STRING A fájl MIME típusa, ha ismert.
checksum STRING Egy integritási token a fájl bájtjaira, az alábbi formában <algorithm>:<digest>. Az elismert algoritmusokról lásd: Ellenzőösszegek.

Limits

  • Ez a FILE típus nem garantálja a rendelést. Nem használhatsz oszlopot FILE partíciós oszlopként, klaszterező oszlopként, MAP kulcsként, csatlakozási kulcsként vagy csoportosító kifejezésként. Ha fájlhoz csoportosítsuk, inkább a mezője uri alapján csoportosíts.

Literals

Az érték létrehozásához FILE lásd az alábbi függvényeket:

A CASTVARIANT vagy STRUCT értékre :FILE

  • A-nak STRUCT pontosan ezekkel a mezőkkel kell rendelkeznie, ezekkel a nevekkel és típusokkal: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • A VARIANT kötelező a uri terület is. Minden más mező opcionális, és minden további kulcsot figyelmen kívül hagynak.

Varázslat , FILEnem vagy FILE EXTERNALFILE MANAGED. A céloszlop határozza meg, hogy a kapott referencia külső vagy kezelt volt-e. Amikor külső hivatkozást írsz egy FILE MANAGED oszlophoz, a Databricks beviszi azt a kezelt tárolóba.

Jegyzetek

  • Felső szintű táblázatoszlopként FILE a vagy FILE MANAGED-ként kell kihirdetniFILE EXTERNAL. Használat FILE minden más esetben:
    • Paraméter- vagy visszaküldési típusként SQL, Python és Scala felhasználó által definiált függvényekben (UDF-ekben) és SQL tárolt eljárásokban.
    • Cél típusként CAST az a vagy VARIANTSTRUCT értékből.
    • Egy STRUCT, an ARRAY, a MAPértéke , vagy a VARIANT. Csak külső fájlok támogatottak egy VARIANT.
  • A fájl metaadatok olvasásához használjuk az , , , , és uri a mezőket pontjelöléssel, például offset. sizecontent_typechecksumfile_column.uri
  • A fájlból strukturált tartalom kinyeréséhez egy értéket továbbítsunk FILE a ai_parse_document függvényfüggvénynek .

Examples

Egy kezelt FILE oszloptal rendelkező tábla bevallásához állítsuk be a databricks.filespace-preview tábla tulajdonságát arra a kötetútra, amelyet a Unity Catalog kezelt tárolóként használ:

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

Külső oszlopos táblázat FILE bevallása:

CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);

A kötetben már létező fájlokból való feltöltéshez:

INSERT INTO attachments
  SELECT row_number() OVER (ORDER BY file.uri), file
  FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');

Fájl metaadat olvasásához pontjelöléssel:

SELECT attachment.uri, attachment.size, attachment.checksum
  FROM attachments;

Egy szerkezetből értéket FILE építeni:

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;