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. 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
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 .
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;