Tipe FILE dan data tidak terstruktur

Important

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

Tipe menyimpan FILE referensi yang diatur ke file tidak terstruktur, dengan metadata seperti path dan ukuran. Gunakan FILE kolom di Unity Catalog untuk menyimpan dokumen, gambar, dan audio bersama data terstruktur.

Untuk referensi tipe, lihat FILE tipe.

Diagram berikut menunjukkan kolom bernama FILEvideo yang merujuk klip mengemudi bersama kolom terstruktur seperti rute, deskripsi adegan, dan label bahaya:

Tabel klip penggerak di mana kolom video adalah tipe FILE. Setiap baris memasangkan kolom terstruktur (ID klip, rute, deskripsi adegan, label bahaya, dan embedding) dengan referensi file video yang menampilkan thumbnail dan ukuran seperti 1,8 GB.

Metadata dan penyimpanan FILE

Untuk setiap baris, tipe menyimpan FILE metadata dan tautan yang diatur ke file yang sedang disimpan. Sebuah FILE nilai mencakup uribidang , size, content_type, dan checksum metadata. Kueri metadata tidak memerlukan pembacaan file penuh, sehingga meningkatkan kinerja kueri.

Anda dapat meneruskan FILE nilai ke fungsi AI, seperti ai_parse_document fungsi, dan ke fungsi yang didefinisikan pengguna (UDF).

Diagram berikut menunjukkan contoh kolom terkelola FILE , berisi metadata jalur dan ukuran serta referensi ke file yang disimpan:

Tabel klip dengan kolom video yang disimpan sebagai tipe FILE, ditampilkan sebagai pasangan path dan ukuran. Panah menghubungkan setiap baris ke filenya yang disimpan, menggambarkan referensi yang diatur antara tabel dan file.

Mengapa menggunakan FILE daripada BINARY atau STRING

Tabel berikut merinci tantangan saat menangani file besar yang tidak terstruktur dengan BINARY atau STRING tipe:

Jenis kolom Description Diagram
BINARY Mematerialisasi objek penuh untuk setiap pembacaan, bahkan ketika Anda hanya memerlukan metadata seperti ukuran file atau jalur. Hal ini menghasilkan perhitungan yang tidak perlu dan kueri yang lambat. Tabel klip dengan kolom video yang disimpan sebagai BINARY. Byte mentah dari setiap video multi-gigabyte dimaterialkan secara inline dalam kolom.
STRING Menyimpan jalur file tanpa metadata, seperti ukuran atau informasi versi, dan tanpa tautan yang diatur antara tabel dan file. Jika beban kerja lain menghapus file, tabel tersebut memiliki informasi yang sudah tidak relevan. Jika Anda menghapus baris tabel, file yang direferensikan tetap berada di penyimpanan sampai Anda menghapusnya secara manual. Tabel klip dengan kolom video yang disimpan sebagai jalur STRING, seperti s3://.../NW-0142. Satu path tidak lagi menyelesaikan ke file di volume, menunjukkan bahwa jalur string tidak menjamin file ada dan bahwa tata kelola tidak terhubung.

Checksum

Bidang ini checksum adalah token integritas untuk byte file, berbentuk <prefix>:<digest>. Gunakan untuk membandingkan file atau memverifikasi bahwa file tidak berubah. Pembaca mengabaikan checksum dengan awalan yang tidak dikenali.

Checksum tidak selalu tersedia. to_file fungsi, create_file fungsi, dan copy_file fungsi mengisi checksum ketika penyimpanan objek mengembalikan .ETAG list_files Fungsi bernilai tabel dan read_files fungsi bernilai tabel tidak mengisi checksum.

Bidang ini checksum menggunakan salah satu awalan berikut:

Awalan Pengkodean digest Description
ETAG Opaque eTag penyimpanan objek untuk seluruh file. Disediakan secara verbatim oleh toko, hanya digunakan untuk perbandingan kesetaraan, dan tidak dapat dihitung ulang.
MD5 Heksagon huruf kecil Ringkasan MD5 (RFC 1321), 32 karakter hex.
CRC32 Heksagon huruf kecil Checksum CRC32 (RFC 2083), 8 karakter hex.
CRC32C Heksagon huruf kecil Checksum CRC32C (RFC 3385), 8 karakter heksadesimal.
SHA-256 Heksagon huruf kecil Ringkasan SHA-256 (RFC 6234), 64 karakter hex.

Misalnya, checksum MD5 terlihat seperti MD5:d41d8cd98f00b204e9800998ecf8427e, dan eTag store-objek terlihat seperti ETAG:"686897696a7c876b7e", termasuk tanda kutip ganda di sekitarnya yang dikembalikan oleh object store.

Pilih antara FILE dan BINARY

Tabel berikut membandingkan opsi untuk bekerja dengan file tidak terstruktur:

Jenis kolom Values Skenario penggunaan
FILE Referensi yang diatur ke sebuah file, ditambah metadata (uri, size, content_type, checksum). Digunakan untuk mengelola dan memproses file tidak terstruktur bersama data terstruktur, serta meneruskan file ke fungsi bawaan dan AI.
BINARY Byte mentah dari sebuah file, inline dalam kolom. Gunakan untuk objek kecil (hingga 64 KB secara default) yang disimpan langsung di file data. Ini berguna ketika Anda membutuhkan overhead metadata rendah dan manajemen file yang disederhanakan. Misalnya, gunakan ini untuk menyimpan thumbnail secara sejajar dengan data baris.

FILE EKSTERNAL dan FILE DIKELOLA

Tipe ini FILE mendukung dua pendekatan untuk mengelola file:

  • FILE EXTERNAL kolom merujuk pada file yang sudah ada dalam volume Unity Catalog. File tersebut diamankan dengan izin volume Unity Catalog, tetapi siklus hidupnya tidak dikelola oleh Unity Catalog, dan file tersebut tidak disalin. Gunakan pendekatan ini saat Anda perlu mereferensikan file tanpa memindahkan data atau mengganggu alat yang membaca dari volume yang sudah ada.
  • FILE MANAGED Kolom menyalin file ke penyimpanan terkelola. Atur databricks.filespace-preview properti tabel ke jalur volume terkelola untuk digunakan Unity Catalog sebagai penyimpanan. Gunakan pendekatan ini ketika Anda ingin izin yang disederhanakan yang dikelola melalui tabel untuk beban kerja yang hanya mengakses file melalui tabel, seperti pelatihan ML atau generasi yang ditambah dengan pengambilan (RAG). Untuk pola intake, lihat Ingest file sebagai tipe FILE.

Untuk kueri, tidak ada perbedaan antara file eksternal dan file yang dikelola.

Diagram berikut menunjukkan bagaimana tipe menghubungkan FILE kode Anda ke file di penyimpanan objek cloud:

Diagram arsitektur tipe FILE. Antarmuka klien seperti Python, SQL, Scala, dan UDF bekerja dengan satu tipe FILE yang mendukung pemuatan malas. Tipe ini memiliki dua varian: FILE EXTERNAL, di mana sistem file mengelola siklus hidup, dan FILE MANAGED, di mana UC mengoptimalkan tata kelola melalui tabel. File eksternal dipetakan ke volume eksternal yang diatur pada tingkat volume, dan file yang dikelola dipetakan ke FileSpace yang diatur pada tingkat tabel, baik dalam penyimpanan objek cloud seperti S3, ADLS, atau Google Cloud Storage.

FILE EXTERNAL

FILE EXTERNAL kolom adalah referensi ke file yang sudah ada di volume Unity Catalog.

Jika Anda memiliki hak istimewa yang diperlukan pada volume, Anda dapat memperbarui atau menghapus file-file tersebut. Databricks merekomendasikan Anda menggunakan file yang tidak dapat diubah. Table grant menampilkan metadata file, tetapi membaca byte file juga memerlukan READ VOLUME hak istimewa pada volume dasarnya.

File eksternal memetakan setiap baris tabel ke file pada jalur yang sudah ada dalam volume Unity Catalog:

Diagram volume UC yang berisi file percobaan yang diorganisir di bawah folder fase, dipetakan ke kolom EXTERNAL FILE. Setiap baris tabel merujuk file berdasarkan jalur volumenya dan menambahkan kolom terstruktur seperti Cohort dan Study Phase.

FILE EXTERNAL contoh

Untuk membuat tabel dengan kolom FILE EXTERNAL :

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

Untuk menambahkan FILE EXTERNAL kolom ke tabel yang sudah ada:

ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;

Untuk membuat dan mengisi tabel dari volume, menetapkan ID unik untuk setiap file:

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

FILE MANAGED

FILE MANAGED kolom menyimpan salinan file dalam sebuah FileSpace, volume Unity Catalog yang Anda deklarasikan untuk tabel tersebut digunakan sebagai penyimpanan terkelola. Siklus hidupnya terikat pada tabel yang merujuk pada mereka.

Perilaku berikut berlaku untuk FILE MANAGED:

  • Mendeklarasikan memerlukan FileSpacedatabricks.filespace-preview properti tabel.
  • Membaca atau menulis file yang dikelola memerlukan akses ke tabel dan volume yang mendukung FileSpace.
  • Pengumpulan sampah otomatis untuk file tanpa referensi tidak didukung.

File tidak terstruktur yang disimpan di sumber eksternal seperti SharePoint, Google Drive, OneDrive, dan SFTP harus dimasukkan sebagai file yang dikelola sebelum Anda dapat menggunakannya dengan fungsi seperti ai_parse_document fungsi danfungsi yang ditentukan pengguna (UDF). Untuk pola intake, lihat Ingest file sebagai tipe FILE.

Untuk menggunakan file terkelola, buat tabel dengan FILE MANAGED kolom dan deklarasikan volume sebagai dengan FileSpace mengatur databricks.filespace-preview properti tabel ke jalur volume:

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

Untuk contoh lengkap, lihat contoh berikut FILE MANAGED . Siklus hidup file dalam a FileSpace terikat pada baris yang mereferensikannya. Menghapus baris tersebut membuat file memenuhi syarat untuk pengumpulan sampah.

FILE MANAGED contoh

Untuk membuat tabel dengan kolom FILE MANAGED :

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

Untuk menambahkan FILE MANAGED kolom ke tabel yang sudah ada, atur databricks.filespace-preview properti tabel sebelum Anda menambahkan kolom, seperti dalam kode berikut:

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

ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;

Menambahkan FILE MANAGED kolom ke tabel yang tidak FileSpace memiliki gagal.

Perbandingan tata kelola dan siklus hidup

Tabel berikut membandingkan bagaimana FILE EXTERNAL dan FILE MANAGED mengatur akses file serta menangani siklus hidup file:

Tipe Kolom FILE EXTERNAL FILE MANAGED
Kontrol akses file Diatur oleh izin volume, seperti READ VOLUME. Diatur oleh izin tabel dan volume, seperti SELECT pada tabel dan READ VOLUME volume.
Siklus hidup dan pengumpulan sampah Anda mengelola file sendiri. Menghapus baris tabel tidak memengaruhi file dasar di volume tersebut. File terikat pada baris yang merujuknya. Menghapus baris tersebut membuat file memenuhi syarat untuk pengumpulan sampah. Pengumpulan sampah otomatis tidak didukung.

Kasus penggunaan tipe FILE

Baik tipe eksternal maupun terkelola FILE menangani tantangan berikut untuk kasus penggunaan data tidak terstruktur:

Tantangan Tipe yang didukung FILE Benefits
File terlalu besar untuk disimpan secara inline sebagai BINARY FILE MANAGED atau FILE EXTERNAL Sebuah FILE kolom menyimpan referensi, sehingga file hanya dibaca ketika fungsi AI atau UDF memprosesnya. Ini menghindari materialisasi objek besar secara inline di dalam tabel.
Siklus hidup dan tata kelola yang terputus antara sistem file dan tabel FILE MANAGED Azure Databricks mengaitkan siklus hidup setiap file dengan tabel, sehingga menghapus baris membuat file tersebut memenuhi syarat untuk dibersihkan, bukan meninggalkan file yatim piatu di penyimpanan.
Beban kerja bersamaan yang mengharuskan file tetap di lokasi yang sama FILE EXTERNAL File tetap berada di jalur volume yang ada, tidak terpengaruh oleh siklus hidup tabel, sehingga alat lain yang membaca file yang sama tidak terganggu.

Langkah berikutnya