[鐵人賽][Denali 新特性探險13]FileTables(1)

[鐵人賽][Denali 新特性探險13]FileTables(1)

FileTables概述

FileTable 主要基於 FILESTREAM 功能而建立,是用來儲存非結構化的檔案或文件,

FileTable所儲存的資料紀錄會直接對應NTFS檔案系統下的目錄或檔案層次結構,

這表示透過FileTable就可突破以往DBMS 存取NTFS檔案系統的限制,

而且也可以利用DBMS優勢來管理非結構化檔案和文件,

(與SQL Server Services 整合:全文檢索和語意擷取 full-text search and semantic search),

而這樣的概念及功能和 Oracle 11g SecureFiles相當類似。

 

FileTables主要特性

1.一個FileTable代表檔案系統中的目錄和檔案層次結構

   (儲存資料包含該檔案系統中的所有目錄和檔案層次結構)。

2.FileTable中每一列即對應到一個檔案或目錄。

3.FileTable中每一列包含以下項目。

*FILESTREAM欄位:代表 stream 資料和一個檔案編號( file_id)採GUID。(如果該欄位 is null 即表示為一個目錄)

*path_locator and parent_path_locator 欄位:檔案和目錄層次結構,

*10種檔案屬性資訊,如建立、修改.等,這些都是透過檔案 API進行處理。

*type 欄位:支援全文檢索和語意擷取。

4.FileTable會強制執行系統預設所定義的約束和觸發運作,

   主要是用來維護 Windows File namespace semantics(NTFS檔案系統就是一個檔案名稱空間)。

5.可提供 Windows applications 進行檔案存取操作。

 

FileTable Schema

image

image

 

FileTable層次結構示意圖

image

1:Server Name

2.FileStream Share Name

3.FileStream Directory Name

4.FileTable Directory/Table Name

5.FileTable Row

 

SQL Server 和 NTFS 檔案系統同步示意圖

image

 

參考 FileTables (SQL Server)