FileTables (SQL Server)

Berlaku untuk:SQL Server

Fitur FileTable menghadirkan dukungan untuk namespace dan kompatibilitas file Windows dengan aplikasi Windows ke data file yang disimpan di SQL Server. FileTable memungkinkan aplikasi mengintegrasikan komponen penyimpanan dan manajemen datanya, dan menyediakan layanan SQL Server terintegrasi - termasuk pencarian teks lengkap dan pencarian semantik - melalui data dan metadata yang tidak terstruktur.

Dengan kata lain, Anda dapat menyimpan file dan dokumen dalam tabel khusus di SQL Server yang disebut FileTables, tetapi mengaksesnya dari aplikasi Windows seolah-olah disimpan dalam sistem file, tanpa membuat perubahan apa pun pada aplikasi klien Anda.

Fitur FileTable dibangun di atas teknologi SQL Server FILESTREAM. Untuk mempelajari selengkapnya tentang FILESTREAM, lihat FILESTREAM (SQL Server).

Manfaat fitur FileTable

Tujuan fitur FileTable mencakup yang berikut ini:

  • Kompatibilitas Windows API untuk data file yang disimpan dalam database SQL Server. Kompatibilitas Windows API mencakup hal berikut:

    • Akses streaming non-transaksional dan pembaruan di tempat untuk data FILESTREAM.

    • Namespace hierarki direktori dan file.

    • Penyimpanan atribut file, seperti tanggal yang dibuat dan tanggal yang dimodifikasi.

    • Dukungan untuk API manajemen file dan direktori Windows.

  • Kompatibilitas dengan fitur SQL Server lainnya termasuk alat manajemen, layanan, dan kemampuan kueri relasional melalui FILESTREAM dan data atribut file.

Dengan demikian FileTables menghapus penghalang signifikan untuk penggunaan SQL Server untuk penyimpanan dan manajemen data yang tidak terstruktur yang saat ini berada sebagai file di server file. Perusahaan dapat memindahkan data ini dari server file ke FileTables untuk memanfaatkan administrasi dan layanan terintegrasi yang disediakan oleh SQL Server. Pada saat yang sama, mereka dapat mempertahankan kompatibilitas aplikasi Windows untuk aplikasi Windows yang ada yang melihat data ini sebagai file dalam sistem file.

Apa itu FileTable?

SQL Server menyediakan tabel file khusus, juga disebut sebagai FileTable, untuk aplikasi yang memerlukan penyimpanan file dan direktori dalam database, dengan kompatibilitas Windows API dan akses non-transaksi. FileTable adalah tabel pengguna khusus dengan skema yang telah ditentukan sebelumnya yang menyimpan data FILESTREAM, serta informasi hierarki file dan direktori dan atribut file.

FileTable menyediakan fungsionalitas berikut:

  • FileTable mewakili hierarki direktori dan file. Ini menyimpan data yang terkait dengan semua simpul dalam hierarki tersebut, untuk direktori dan file yang dikandungnya. Hierarki ini dimulai dari direktori akar yang Anda tentukan saat Membuat FileTable.

  • Setiap baris dalam FileTable mewakili file atau direktori.

  • Setiap baris berisi item berikut. Untuk informasi selengkapnya tentang skema FileTable, lihat Skema FileTable.

    • Kolom file_stream untuk data streaming dan stream_id pengidentifikasi (GUID). (Kolom file_stream adalah NULL untuk direktori.)

    • Baik kolom maupun path_locatorparent_path_locator untuk mewakili dan memelihara item saat ini (file atau direktori) dan hierarki direktori.

    • 10 atribut file seperti tanggal yang dibuat dan tanggal yang dimodifikasi yang berguna dengan API I/O file.

    • Kolom jenis yang mendukung pencarian teks lengkap dan pencarian semantik atas file dan dokumen.

  • FileTable memberlakukan batasan dan pemicu tertentu yang ditentukan sistem untuk mempertahankan semantik namespace file.

  • Ketika database dikonfigurasi untuk akses non-transaksional, hierarki file dan direktori yang diwakili dalam FileTable diekspos di bawah berbagi FILESTREAM yang dikonfigurasi untuk instans SQL Server. Ini menyediakan akses sistem file untuk aplikasi Windows.

Beberapa karakteristik tambahan FileTables

  • Data file dan direktori yang disimpan dalam FileTable diekspos melalui berbagi Windows untuk akses file non-transaksional untuk aplikasi berbasis Windows API. Untuk aplikasi Windows, ini terlihat seperti berbagi normal dengan file dan direktorinya. Aplikasi dapat menggunakan sekumpulan API Windows yang kaya untuk mengelola file dan direktori di bawah berbagi ini.

  • Hierarki direktori yang muncul melalui berbagi adalah struktur direktori logis murni yang dipertahankan dalam FileTable.

  • Panggilan untuk membuat atau mengubah file atau direktori melalui berbagi Windows disadap oleh komponen SQL Server dan tercermin dalam data relasional yang sesuai di FileTable.

  • Operasi Windows API bersifat non-transaksional, dan tidak terkait dengan transaksi pengguna. Namun, akses transaksional ke data FILESTREAM yang disimpan dalam FileTable didukung sepenuhnya, seperti halnya untuk kolom FILESTREAM apa pun dalam tabel biasa. Jika Anda perlu sering memodifikasi file dari beberapa koneksi dan memastikan perlindungan file yang tepat, gunakan akses FILESTREAM transaksi melalui OpenSqlFilestream(), daripada kunci file eksklusif di tingkat WINDOWS API.

  • FileTable juga dapat dikueri dan diperbarui melalui akses Transact-SQL normal. Mereka juga terintegrasi dengan alat manajemen SQL Server, dan fitur seperti cadangan.

  • Anda tidak dapat mengirim permintaan email melalui Email Database dan melampirkan file yang terletak di direktori FILESTREAM (dan oleh karena itu FileTable). Driver filter sistem file RsFx0420 memeriksa permintaan I/O masuk masuk masuk dan keluar dari folder FILESTREAM. Jika permintaan tidak berasal dari kode SQLServer yang dapat dieksekusi dan FILESTREAM, permintaan tersebut secara eksplisit tidak diizinkan.

Pertimbangan tambahan untuk menggunakan FileTables

Pertimbangan administratif

Tentang FILESTREAM dan FileTables

Anda mengonfigurasi FileTable secara terpisah dari FILESTREAM. Oleh karena itu, Anda dapat terus menggunakan fitur FILESTREAM tanpa mengaktifkan akses non-transaksional atau membuat FileTables.

Tidak ada akses non-transaksi ke data FILESTREAM kecuali melalui FileTables. Oleh karena itu, ketika Anda mengaktifkan akses non-transaksi, perilaku kolom dan aplikasi FILESTREAM yang ada tidak terpengaruh.

Tentang FileTables dan akses non-transaksi

Anda dapat mengaktifkan atau menonaktifkan akses non-transaksional di tingkat database.

Anda dapat mengonfigurasi atau menyempurnakan akses non-transaksional di tingkat database dengan menonaktifkannya, atau dengan mengaktifkan akses baca saja atau baca/tulis penuh.

FileTables tidak mendukung file yang dipetakan memori

FileTables tidak mendukung file yang dipetakan memori. Notepad dan Paint adalah dua contoh umum aplikasi yang menggunakan file yang dipetakan memori. Anda tidak dapat menggunakan aplikasi ini di komputer yang sama dengan SQL Server untuk membuka file yang disimpan dalam FileTable. Namun Anda dapat menggunakan aplikasi ini dari komputer jarak jauh untuk membuka file yang disimpan dalam FileTable, karena dalam keadaan ini fitur pemetaan memori tidak digunakan.