Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
pemeriksaan Databricks SQL
Databricks Runtime 18 LTS ke atas
Important
Fitur ini ada di Beta.
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
FILE Tipe membutuhkan versi lingkungan 6 atau lebih tinggi pada notebook tanpa server. Untuk memilih versi lingkungan untuk notebook, lihat Pilih lingkungan dasar.
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 MANAGEDFILE EXTERNAL, termasuk diagram arsitektur, lihat FILE MANAGED dan FILE EXTERNAL.
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
FILEtidak menjamin pemesanan. Anda tidak dapat menggunakanFILEkolom sebagai kolom partisi, kolom pengelompokan,MAPkunci, kunci gabungan, atau ekspresi pengelompokan. Untuk mengelompokkan berdasarkan file, kelompok berdasarkan bidangnyaurisebagai gantinya.
Literals
Untuk membuat FILE nilai, lihat fungsi berikut:
-
to_filefungsi membuatFILEreferensi dari jalur. -
try_to_fileFungsi membuatFILEreferensi dari jalur, dan mengembalikanNULLjika file tersebut tidak ada. -
create_filefungsi mengunggah konten ke jalur dan mengembalikan referensiFILE. -
copy_filefungsi menyalin file ke jalur target dan mengembalikanFILEreferensi.
Ke CASTVARIANTSTRUCT atau nilai ke :FILE
- A
STRUCTharus memiliki bidang-bidang berikut persis, dengan nama dan tipe berikut:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - A
VARIANTharus menyertakanurikolomnya. 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,
FILEharus dinyatakan sebagaiFILE MANAGEDatauFILE EXTERNAL. PenggunaanFILEdalam 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
CASTdari aVARIANTatauSTRUCT - Bersarang di dalam ,
STRUCTanARRAY, nilai dari aMAP, atau aVARIANT. Hanya file eksternal yang didukung di dalam sebuahVARIANT.
- Untuk membaca metadata file, gunakan field ,
urioffset,size,content_type, danchecksumdengan notasi titik, misalnyafile_column.uri. - Untuk mengekstrak konten terstruktur dari file, berikan nilai
FILEkeai_parse_documentfungsi fungsi . - Untuk pratinjau isi file dalam hasil kueri, lihat Pratinjau file di kolom FILE. Pratinjau membaca isi file, yang memerlukan akses ke file selain tabel. Lihat Metadata dan akses konten.
Examples
Untuk mendeklarasikan tabel dengan kolom terkelola FILE , atur databricks.filespace-preview properti tabel ke jalur volume yang digunakan Unity Catalog sebagai penyimpanan terkelola:
CREATE TABLE reports (id BIGINT, attachment FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/filespace/');
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;