[鐵人賽][Denali 新特性探險13]FileTables(1)
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層次結構示意圖
1:Server Name
2.FileStream Share Name
3.FileStream Directory Name
4.FileTable Directory/Table Name
5.FileTable Row
SQL Server 和 NTFS 檔案系統同步示意圖