FILE jenis

Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime 18 LTS ke atas

Important

Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.

Tipe ini FILE mewakili referensi ke file yang tidak terstruktur dan metadatanya. Gunakan untuk mengelola dan memproses dokumen, gambar, dan audio bersama data terstruktur di Unity Catalog.

FILE tipe hanya didukung untuk tabel Delta Lake.

Catatan

Tipe ini FILE tidak didukung pada notebook serverless. Ini didukung pada notebook yang terhubung ke gudang SQL Databricks tanpa server.

Syntax

{ FILE MANAGED | FILE EXTERNAL }

Gunakan FILE MANAGED atau FILE EXTERNAL sebagai tipe kolom saat Anda mendeklarasikan kolom tabel dengan CREATE TABLE. Anda tidak dapat mendeklarasikan kolom tabel sebagai tanpa FILE menentukan salah satu MANAGED atau EXTERNAL. FILE hanya diperbolehkan sebagai parameter atau tipe return dalam UDF, prosedur tersimpan, atau saat casting.

Untuk perbandingan dan FILE EXTERNALFILE MANAGED, termasuk diagram arsitektur, lihat FILE EXTERNAL dan FILE MANAGED.

Bidang

Sebuah FILE nilai berisi bidang-bidang berikut:

Ladang Tipe Description
uri STRING URI dari file. Medan ini tidak mungkin .null
offset BIGINT Offset ke dalam file, dalam byte.
size BIGINT Ukuran file dalam satuan byte.
content_type STRING Jenis MIME dari file, jika diketahui.
checksum STRING Token integritas untuk byte file, berbentuk <algorithm>:<digest>. Untuk algoritma yang diakui, lihat Checksums.

Limits

  • Jenis ini FILE tidak menjamin pemesanan. Anda tidak dapat menggunakan FILE kolom sebagai kolom partisi, kolom pengelompokan, MAP kunci, kunci gabungan, atau ekspresi pengelompokan. Untuk mengelompokkan berdasarkan file, kelompok berdasarkan bidangnya uri sebagai gantinya.

Literals

Untuk membuat FILE nilai, lihat fungsi berikut:

Ke CASTVARIANTSTRUCT atau nilai ke :FILE

  • A STRUCT harus memiliki bidang-bidang berikut persis, dengan nama dan tipe berikut: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • A VARIANT harus menyertakan uri kolomnya. Semua kolom lain bersifat opsional, dan kunci tambahan diabaikan.

Lempar ke FILE, bukan ke FILE EXTERNAL atau FILE MANAGED. Kolom target menentukan apakah referensi yang dihasilkan bersifat eksternal atau dikelola. Saat Anda menulis referensi eksternal ke FILE MANAGED kolom, Databricks mengambilnya ke dalam penyimpanan terkelola.

Catatan

  • Sebagai kolom tabel tingkat atas, FILE harus dinyatakan sebagai FILE MANAGED atau FILE EXTERNAL. Penggunaan FILE dalam semua kasus lainnya:
    • Sebagai parameter atau tipe pengembalian dalam fungsi yang didefinisikan pengguna (UDF) SQL, Python, dan Scala serta dalam prosedur tersimpan SQL.
    • Sebagai tipe target dari nilai a CAST dari a VARIANT atau STRUCT
    • Bersarang di dalam , STRUCTan ARRAY, nilai dari a MAP, atau a VARIANT. Hanya file eksternal yang didukung di dalam sebuah VARIANT.
  • Untuk membaca metadata file, gunakan field , urioffset, size, content_type, dan checksum dengan notasi titik, misalnya file_column.uri.
  • Untuk mengekstrak konten terstruktur dari file, berikan nilai FILE ke ai_parse_document fungsi fungsi .

Examples

Untuk mendeklarasikan tabel dengan kolom eksternal FILE :

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

Untuk mengisinya dari file yang sudah ada dalam volume:

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

Untuk membaca metadata file menggunakan notasi titik:

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

Untuk membangun FILE nilai dari sebuah struct:

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;