這篇論壇文章詳細的講解了使用SQL Server 2008管理非結構化數(shù)據的具體方法,更多內容請參考下文:
microsoft SQL Server? 2008提供了一個靈活的解決方案,使得可以存儲非結構化數(shù)據,并將它與關系數(shù)據合并起來建立使用整個公司范圍內的數(shù)據的綜合的解決方案。
1. 導言
在最近幾年,個人和公司創(chuàng)建和存儲的數(shù)字數(shù)據的數(shù)量急劇膨脹。過去,企業(yè)使用計算機系統(tǒng)和數(shù)據庫以結構化格式例如關系表或固定的格式文檔來存儲它們的大部分商業(yè)數(shù)據,軟件應用程序使用這些結構化數(shù)據存儲來執(zhí)行商業(yè)操作。然而在現(xiàn)今,公司的很大一部分數(shù)據是存儲在使用功能強大的工具例如Microsoft? Office Excel?和Microsoft Office Word所創(chuàng)建的文檔中的,而數(shù)字攝影、文檔掃描、視頻產品和音頻格式進一步的擴大了用于商業(yè)數(shù)據的非結構化數(shù)據格式的范圍。此外,在存儲硬件和內存上的成本的顯著降低極大的影響了存儲在計算機中的數(shù)據的數(shù)量和類型,并導致產生了新一代的商業(yè)應用,這些商業(yè)應用合并了傳統(tǒng)的關系數(shù)據結構和非結構化數(shù)字內容。數(shù)字內容的豐富意味著公司現(xiàn)在正在試圖能夠在企業(yè)范圍內管理關系數(shù)據和非結構化數(shù)據,并需要一個能夠全面滿足關系數(shù)據存儲和非關系數(shù)據存儲,同時降低管理和建立使用這些數(shù)據的應用程序的成本的解決方案。
例如,考慮一個保險索賠應用程序在過去的15年里是怎樣改變的。15年前,這個應用程序一般維護一列以簡單的行和列來存儲的保險索賠記錄。而今天,一個保險索賠應用程序更趨向于管理一組包括圖片、照片和文檔的索賠記錄。它還可能需要以基于XML的格式來顯示索賠數(shù)據,以此來與其它的系統(tǒng)集成,并且它還可能包括更高級別的功能像空間可視化、報表和分析。
SQL Server 2008提供了一些超出傳統(tǒng)的數(shù)據庫系統(tǒng)、向能夠存儲、管理和查詢所有類型的數(shù)據的數(shù)據平臺發(fā)展的功能;包括非結構化二進制數(shù)據、XML和空間數(shù)據。這篇白皮書集中講述了非結構化數(shù)據,并描述了使用SQL Server 2008的存儲、管理和使用非結構化數(shù)據的選項。
2. 商業(yè)推動非結構化數(shù)據
大多數(shù)公司依賴于存儲在數(shù)據庫中的關鍵業(yè)務數(shù)據,并在存儲和操縱這些數(shù)據的數(shù)據管理系統(tǒng)和應用上投入很大。然而,日漸增長的業(yè)務產生了大量的數(shù)字圖片、文檔視頻和其它多媒體格式的非關系和非結構化數(shù)據——這些新的數(shù)據格式迅速成為正式的和非正式的商業(yè)處理的一個關鍵組成部分,它們與現(xiàn)有的商業(yè)應用程序集成在一起,遵守調整要求,或者簡單的提供了一個更加豐富的用戶體驗。
例如,在下面這些商業(yè)情景中:
· 一個保險公司需要存儲政策文檔和按照要求處理來提取這些文檔。
· 一個在線的零售商需要存儲用于在一個電子商城中顯示它的產品的視頻膠片。
· 一個電話系統(tǒng)需要保存語音信息的音頻流以便他們可以遠程傳送。
· 一個廣播臺需要制作一個在它的網站上用于下載的并可以搜索的廣播庫。
· 一個操作需要存儲文檔的圖片形式的電子拷貝,并能很容易的獲取與一個單獨的客戶端或例子相關的文檔。
· 一個建筑合伙企業(yè)需要存儲和提取數(shù)字計劃和其相關聯(lián)的客戶端數(shù)據。
· 一個需要轉換和保存大量的現(xiàn)有的文件和分類內容的庫,用于在一個數(shù)字搜索工具中進行檢索和使用。
這些是全球商業(yè)中使用的非機構化數(shù)字數(shù)據的一些新的例子;并且隨著創(chuàng)建數(shù)字內容變得越來越容易,公司也在尋找新的創(chuàng)新方式來使用這個數(shù)字內容來改進或擴展它們的商業(yè)能力。
2.1 對于非結構化數(shù)據的挑戰(zhàn)
當新的非結構化數(shù)據的類型在不斷增加的同時,數(shù)字內容帶來了很多好處和商業(yè)機遇,但是它同時還帶來了一些針對需要合并這些非結構化數(shù)據源到計算機應用程序和服務中去的系統(tǒng)架構師、管理員和應用程序開發(fā)人員的挑戰(zhàn)。
存儲非結構化數(shù)據的挑戰(zhàn)
要考慮的第一個挑戰(zhàn),同時也可能是最明顯的挑戰(zhàn),就是非結構化數(shù)據的大量存儲。你值得擁有一個使你可以靈活地滿足存儲非關系數(shù)據、同時將成本和管理費用降低到最小的特定需求的系統(tǒng)。當你計劃存儲非結構化數(shù)據時你要考慮的主要問題包括:
· 存儲你的非結構化數(shù)據的成本,不只是包括硬件成本,還包括管理成本。
· 非結構化數(shù)據的物理存儲位置,例如文件服務器和網絡附加存儲(NAS)設備。
· 管理持久力和存檔政策。
· 將非結構化數(shù)據文件和相關聯(lián)的關系數(shù)據集成起來,并維護結構化數(shù)據源和非結構化數(shù)據源間的事務一致性。
· 將與維護關系數(shù)據和非結構化數(shù)據相關的管理費用降低到最小。
· 性能和可擴展性。.
· 保護非結構化數(shù)據,并確保相關的關系數(shù)據的一致性。
· 非結構化數(shù)據的可用性和可恢復性。
使用非結構化數(shù)據的挑戰(zhàn)
還有關于存儲非結構化數(shù)據的相關問題,你必須考慮數(shù)據將怎樣被你公司的應用程序使用。一些具有代表性的要考慮的事項包括:
· 在建立使用結構化數(shù)據和非結構化數(shù)據的應用程序時遇到的開發(fā)挑戰(zhàn)包括編寫代碼來創(chuàng)建、提取、更新和刪除非結構化數(shù)據,并維護相關聯(lián)的關系數(shù)據源和非結構化數(shù)據源間的事務一致性。
· 索引和搜索非結構化數(shù)據。
· 顯式提取可用的元數(shù)據(例如從表格區(qū)域或文件屬性),并將它顯示給用戶。
· 將文檔內容轉換為可以搜索和查詢的格式(例如,轉換音頻文件到文本形式,從而可以被數(shù)據庫查詢或純文本引擎檢索到。)
2.2 在SQL Server 2008中的非結構化數(shù)據的目標
非結構化數(shù)據面臨的相關挑戰(zhàn)反應了那些開始為數(shù)字內容建立解決方案的公司所關注的一些常見情況:
· 管理多個不同的平臺來處理關系數(shù)據和非關系數(shù)據,從而導致不必要的復雜性。
· 這些分散的數(shù)據存儲使得對于開發(fā)人員來說增加了復雜度,并提高了經理的部署難度。
· 開發(fā)人員和數(shù)據庫管理員缺乏在這些不同的數(shù)據類型中可以使用的服務。
SQL Server 2008旨在解決這些問題,通過:
· 降低管理這些不同的數(shù)據類型的成本。
· 簡化使用關系數(shù)據和非關系數(shù)據的應用程序的開發(fā)工作。
· 將現(xiàn)在只用于關系數(shù)據的功能擴展到非關系數(shù)據。
3. 在SQL Server 2008中存儲非結構化數(shù)據
依賴于關系數(shù)據和非關系數(shù)據的應用程序通常使用下面的三個架構中的一個:
· 數(shù)據庫中的關系數(shù)據以及文件系統(tǒng)和文件服務器上的非關系型二進制大對象(BLOB)。
· 數(shù)據庫中的關系數(shù)據和只用于BLOB的存儲中的非關系數(shù)據。
· 數(shù)據庫中的關系數(shù)據和非關系數(shù)據。
每一個方法都有其優(yōu)劣之處。例如,在文件服務器或只用于BLOB的存儲中存儲非結構化數(shù)據會降低每GB所花費的費用,但是通常會增加管理和建立應用程序的復雜性,因為應用程序不得不維護包含BLOB數(shù)據的數(shù)據庫和單獨的系統(tǒng)中的記錄以及這些記錄所關聯(lián)的對象間的完整性。另一方面,在數(shù)據庫中存儲BLOB數(shù)據方便地集中了數(shù)據存儲,但是通常帶來了更高的成本并會導致性能下降。
SQL Server 2008推出了兩個用于存儲BLOB數(shù)據的新功能:
· FILESTREAM:是一個你可以在varbinary字段上設置的屬性,以便數(shù)據存儲在文件系統(tǒng)中(因此受益于它的快速流式功能和存儲能力)但是直接在數(shù)據庫的上下文中管理和訪問。:
· 遠程BLOB存儲:一個客戶端應用程序編程接口(API),它降低了建立依賴于一個用于BLOB的外部存儲和一個用于關系數(shù)據的數(shù)據庫的應用程序的復雜性。
此外,SQL Server 2008繼續(xù)通過varbinary 數(shù)據庫類型支持標準的BLOB字段。
◆3.1 SQL Server BLOB
SQL Server 2005推出了varbinary(max)數(shù)據類型,它使得你可以在一個SQL Server字段或變量中存儲最大為2,147,483,647字節(jié)的大型二進制數(shù)據值。當使用修訂過的max時,你可以通過設置large value types out of row表選項來控制數(shù)據怎樣存儲在物理的表的數(shù)據頁面中。當這個選項設置為ON時,所有的值存儲在單獨的鏈接頁面上,而在這個記錄的數(shù)據頁面上會保存一個指向這些頁面的16位的根指針。當這個選項設置為OFF時,最大為8000字節(jié)的值存儲在這行的數(shù)據頁面上,而更大的值存儲在單獨的鏈接頁面上。
盡管新的FILESTREAM 和遠程BLOB能力是設計用來提供比標準的varbinaryBLOB字段更好的性能和可管理性,但有一些場景是使用varbinary 字段更適合的(具有代表性的是當BLOB平均規(guī)模小于250 KB的時候。)
◆3.2 FILESTREAM 屬性
在SQL Server 2008中,你可以將FILESTREAM 屬性應用到一個varbinary 字段,然后SQL Server 為這個字段在本地NTFS文件系統(tǒng)上存儲數(shù)據。在文件系統(tǒng)上存儲數(shù)據帶來兩個重大的優(yōu)勢:
· 性能可匹配文件系統(tǒng)的流性能。
· BLOB 規(guī)模只受文件系統(tǒng)的空間規(guī)模限制。
然而,字段可以像SQL Server中的其它任何BLOB字段一樣來管理,所以管理員可以使用SQL Server的可管理性和安全功能來集成BLOB數(shù)據管理和關系數(shù)據庫中的其它數(shù)據——而不需要單獨管理文件系統(tǒng)數(shù)據。在SQL Server中將數(shù)據定義為一個FILESTREAM字段還確保了在數(shù)據庫中的關系數(shù)據和存儲在文件系統(tǒng)中的非結構化數(shù)據在數(shù)據級的一致性。FILESTREAM字段的使用和BLOB字段一樣,這意味著維護操作的完全集成(例如備份和恢復)、和SQL Server安全模型的完全集成、以及純事務的支持。
應用程序開發(fā)人員可以通過兩個編程模型中的一個來使用FILESTREAM數(shù)據;他們可以使用Transact-SQL就像對待標準的BLOB字段一樣的來訪問和操縱數(shù)據,或者他們可以使用Win32流式API和Transact-SQL事務型語義來確保一致性,這意味著他們可以對FILESTR
關鍵詞標簽:SQL Server 2008
相關閱讀
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數(shù)據庫用戶、角色、架構的關系
人氣排行 配置和注冊ODBC數(shù)據源-odbc數(shù)據源配置教程 如何遠程備份(還原)SQL2000數(shù)據庫 SQL2000數(shù)據庫遠程導入(導出)數(shù)據 SQL2000和SQL2005數(shù)據庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法