唐山网站建设

设为主页 加入收藏 繁體中文

使用SQL Server 2008治理非结构化数据

核心提示:这篇论坛文章具体的讲授了使用SQL Server 2008治理非结构化数据的具体方法,更多内容请参考下文..

这篇论坛文章具体的讲授了使用SQL Server 2008治理非结构化数据的具体方法,更多内容请参考下文:

microsoft SQL Server™ 2008提供了1个灵活的解决方案,使得可以存储非结构化数据,并将它与关系数据合并起来建立使用全部公司范围内的数据的综合的解决方案。

1. 导言

在最近几年,个人和公司创建和存储的数字数据的数目急剧膨胀。过往,企业使用计算机系统和数据库以结构化格式例如关系表或固定的格式文档来存储它们的大部份贸易数据,软件利用程序使用这些结构化数据存储来履行贸易操纵。但是在当今,公司的很大1部份数据是存储在使用功能强大的工具例如Microsoft® Office Excel®和Microsoft Office Word所创建的文档中的,而数字摄影、文档扫描、视频产品和音频格式进1步的扩大了用于贸易数据的非结构化数据格式的范围。另外,在存储硬件和内存上的本钱的明显下降极大的影响了存储在计算机中的数据的数目和类型,并导致产生了新1代的贸易利用,这些贸易利用合并了传统的关系数据结构和非结构化数字内容。数字内容的丰富意味着公司现在正在试图能够在企业范围内治理关系数据和非结构化数据,并需要1个能够全面满足关系数据存储和非关系数据存储,同时下降治理和建立使用这些数据的利用程序的本钱的解决方案。

例如,考虑1个保险索赔利用程序在过往的15年里是怎样改变的。15年前,这个利用程序1般保护1列以简单的行和列来存储的保险索赔记录。而今天,1个保险索赔利用程序更趋向于治理1组包括图片、照片和文档的索赔记录。它还可能需要以基于XML的格式来显示索赔数据,以此来与其它的系统集成,并且它还可能包括更高级别的功能像空间可视化、报表和分析。

SQL Server 2008提供了1些超出传统的数据库系统、向能够存储、治理和查询所有类型的数据的数据平台发展的功能;包括非结构化2进制数据、XML和空间数据。这篇***集中讲述了非结构化数据,并描写了使用SQL Server 2008的存储、治理和使用非结构化数据的选项。

2. 贸易推动非结构化数据

大多数公司依托于存储在数据库中的关键业务数据,并在存储和操纵这些数据的数据治理系统和利用上投进很大。但是,日渐增长的业务产生了大量的数字图片、文档视频和其它多媒体格式的非关系和非结构化数据——这些新的数据格式迅速成为正式的和非正式的贸易处理的1个关键组成部份,它们与现有的贸易利用程序集成在1起,遵照调剂要求,或简单的提供了1个更加丰富的用户体验。

例如,在下面这些贸易情形中:

· 1个保险公司需要存储政策文档和依照要求处理来提取这些文档。

· 1个在线的零售商需要存储用于在1个电子商城中显示它的产品的视频胶片。

· 1个电话系统需要保存语音信息的音频流以便他们可以远程传送。

· 1个广播台需要制作1个在它的网站上用于下载的并可以搜索的广播库。

· 1个操纵需要存储文档的图片情势的电子拷贝,并能很轻易的获得与1个单独的客户端或例子相干的文档。

· 1个建筑合伙企业需要存储和提取数字计划和其相干联的客户端数据。

· 1个需要转换和保存大量的现有的文件和分类内容的库,用于在1个数字搜索工具中进行检索和使用。

这些是全球贸易中使用的非机构化数字数据的1些新的例子;并且随着创建数字内容变得越来越轻易,公司也在寻觅新的创新方式来使用这个数字内容来改进或扩大它们的贸易能力。

2.1 对非结构化数据的挑战

当新的非结构化数据的类型在不断增加的同时,数字内容带来了很多好处和贸易机遇,但是它同时还带来了1些针对需要合并这些非结构化数据源到计算机利用程序和服务中往的系统架构师、治理员和利用程序开发职员的挑战。

存储非结构化数据的挑战

要考虑的第1个挑战,同时也多是最明显的挑战,就是非结构化数据的大量存储。你值得具有1个使你可以灵活地满足存储非关系数据、同时将本钱和治理用度下降到最小的特定需求的系统。当你计划存储非结构化数据时你要考虑的主要题目包括:

· 存储你的非结构化数据的本钱,不只是包括硬件本钱,还包括治理本钱。

· 非结构化数据的物理存储位置,例如文件服务器和网络附加存储(NAS)设备。

· 治理持久力和存档政策。

· 将非结构化数据文件和相干联的关系数据集成起来,并保护结构化数据源和非结构化数据源间的事务1致性。

· 将与保护关系数据和非结构化数据相干的治理用度下降到最小。

· 性能和可扩大性。.

· 保护非结构化数据,并确保相干的关系数据的1致性。

· 非结构化数据的可用性和可恢复性。

使用非结构化数据的挑战

还有关于存储非结构化数据的相干题目,你必须考虑数据将怎样被你公司的利用程序使用。1些具有代表性的要考虑的事项包括:

· 在建立使用结构化数据和非结构化数据的利用程序时碰到的开发挑战包括编写代码来创建、提取、更新和删除非结构化数据,并保护相干联的关系数据源和非结构化数据源间的事务1致性。

· 索引和搜索非结构化数据。

· 显式提取可用的元数据(例如从表格区域或文件属性),并将它显示给用户。

· 将文档内容转换为可以搜索和查询的格式(例如,转换音频文件到文本情势,从而可以被数据库查询或纯文本引擎检索到。)

2.2 在SQL Server 2008中的非结构化数据的目标

非结构化数据面临的相干挑战反应了那些开始为数字内容建立解决方案的公司所关注的1些常见情况:

· 治理多个不同的平台来处理关系数据和非关系数据,从而导致没必要要的复杂性。

· 这些分散的数据存储使得对开发职员来讲增加了复杂度,并进步了经理的部署难度。

· 开发职员和数据库治理员缺少在这些不同的数据类型中可使用的服务。

SQL Server 2008旨在解决这些题目,通过:

· 下降治理这些不同的数据类型的本钱。

· 简化使用关系数据和非关系数据的利用程序的开发工作。

· 将现在只用于关系数据的功能扩大到非关系数据。

3. 在SQL Server 2008中存储非结构化数据

依托于关系数据和非关系数据的利用程序通常使用下面的3个架构中的1个:

· 数据库中的关系数据和文件系统和文件服务器上的非关系型2进制大对象(BLOB)。

· 数据库中的关系数据和只用于BLOB的存储中的非关系数据。

· 数据库中的关系数据和非关系数据。

1 2 下1页

核心提示:这篇论坛文章具体的讲授了使用SQL Server 2008治理非结构化数据的具体方法,更多内容请参考下文..

每1个方法都有其优劣的地方。例如,在文件服务器或只用于BLOB的存储中存储非结构化数据会下降每GB所花费的用度,但是通常会增加治理和建立利用程序的复杂性,由于利用程序不能不保护包括BLOB数据的数据库和单独的系统中的记录和这些记录所关联的对象间的完全性。另1方面,在数据库中存储BLOB数据方便地集中了数据存储,但是通常带来了更高的本钱并会导致性能降落。

SQL Server 2008推出了两个用于存储BLOB数据的新功能:

· FILESTREAM:是1个你可以在varbinary字段上设置的属性,以便数据存储在文件系统中(因此受益于它的快速流式功能和存储能力)但是直接在数据库的上下文中治理和访问。:

· 远程BLOB存储:1个客户端利用程序编程接口(API),它下降了建立依托于1个用于BLOB的外部存储和1个用于关系数据的数据库的利用程序的复杂性。

另外,SQL Server 2008继续通过varbinary 数据库类型支持标准的BLOB字段。

◆3.1 SQL Server BLOB

SQL Server 2005推出了varbinary(max)数据类型,它使得你可以在1个SQL Server字段或变量中存储最大为2,147,483,647字节的大型2进制数据值。当使用修订过的max时,你可以通过设置large value types out of row表选项来控制数据怎样存储在物理的表的数据页面中。当这个选项设置为ON时,所有的值存储在单独的链接页面上,而在这个记录的数据页面上会保存1个指向这些页面的16位的根指针。当这个选项设置为OFF时,最大为8000字节的值存储在这行的数据页面上,而更大的值存储在单独的链接页面上。

虽然新的FILESTREAM 和远程BLOB能力是设计用来提供比标准的varbinaryBLOB字段更好的性能和可治理性,但有1些场景是使用varbinary 字段更合适的(具有代表性的是当BLOB均匀范围小于250 KB的时候。)

◆3.2 FILESTREAM 属性

在SQL Server 2008中,你可以将FILESTREAM 属性利用到1个varbinary 字段,然后SQL Server 为这个字段在本地NTFS文件系统上存储数据。在文件系统上存储数据带来两个重大的上风:

· 性能可匹配文件系统的流性能。

· BLOB 范围只受文件系统的空间范围限制。

但是,字段可以像SQL Server中的其它任何BLOB字段1样来治理,所以治理员可使用SQL Server的可治理性和安全功能来集成BLOB数据治理和关系数据库中的其它数据——而不需要单独治理文件系统数据。在SQL Server中将数据定义为1个FILESTREAM字段还确保了在数据库中的关系数据和存储在文件系统中的非结构化数据在数据级的1致性。FILESTREAM字段的使用和BLOB字段1样,这意味着保护操纵的完全集成(例如备份和恢复)、和SQL Server安全模型的完全集成、和纯事务的支持。

利用程序开发职员可以通过两个编程模型中的1个来使用FILESTREAM数据;他们可使用Transact-SQL就像对待标准的BLOB字段1样的来访问和操纵数据,或他们可使用Win32流式API和Transact-SQL事务型语义来确保1致性,这意味着他们可以对FILESTREAM BLOB使用标准的Win32读/写调用,这和他们与文件系统上的文件交互时所做的1样。

在SQL Server 2008中,FILESTREAM 字段只可以将数据存储在本地磁盘空间,并且FILESTREAM 字段不支持像简单加密和以表为值的参数等功能。另外,你不能在数据库快照或数据库镜像会话中使用包括了FILESTREAM字段的表,不过支持日志传送功能。

◆3.3 远程BLOB存储API

虽然FILESTREAM 属性将文件系统的性能和可扩大性与在数据库中存储BLOB的可治理性和数据1致性结合起来,但是通常会出现在像EMC Centera、Fujitsu Nearline、Microsoft windows®这样的文件服务器或其它任何只用于BLOB的存储的系统中存储BLOB更有效或本钱利用率更高的场景。在SQL Server 2008中的远程BLOB存储API通过提供1个基于提供商的架构使得可以更轻易的将只用于远程BLOB存储解决方案和你的数据库中的关系数据集成起来,这个架构使得你的利用程序可使用任何BLOB存储而不需要特定的BLOB存储功能或代码。

在架构方面有两个关键部份:

· 客户端库:它是1个能够使得任何提供商和你的BLOB和关系数据1起使用的组件。客户端利用程序使用客户端库和任何适用的提供商库来插进、更新和查询存储在BLOB中的数据和数据库中存储的数据。

· 供给商库:它是1个由BLOB存储供给商提供的具有代表性的组件(虽然它可以定制开发)。供给商库实现了1个常规接口,提供了1组标准的服务,这些服务抽象了对这个特定的存储履行Create、Fetch、Enumerate、Delete和Garbage Collect操纵的细节。

.  当你的数据库BLOB需要存储在与数据库不同的服务器上并需要和其它系统协作时,远程BLOB存储API(Remote BLOB Store API)是1个理想的选择。它对BLOB存储没有任何限制。任何提供远程BLOB存储提供商的系统或任何可以建立于远程BLOB存储提供商的系统都支持它。由于与BLOB存储的交互细节被提供商库抽象出来了,所以你可以改变存储而没必要改动利用程序,这带来了很大的好处并且下降了开发职员和治理员的复杂度。Microsoft与业内的所有存储供给商合作,以确保提供1个适当的供给商库用于远程BLOB存储API。 使用远程BLOB存储API使你能够灵活地使用不同的系统来治理关系数据和非关系数据。远程BLOB存储API通过链接级别的1致性保护了数据库中的记录与在外部存储的BLOB之间的1致性。例如,假设你通过1个删除语句从数据库中删除BLOB参照,系统将从存储中删除BLOB。但是,使用远程BLOB存储API不能提供随着BLOB直接存储到数据库中而来的数据级别的1致性,要做到这1点你需要使用FILESTREAM或varbinary。

◆3.4 比较BLOB的存储选择

下表比较了SQL Server 2008中的BLOB数据的存储选择。

 

表1:BLOB存储选项对照

这些选项意味着SQL Server 2008为存储非结构化数据提供了1个最合适你的业务需求的灵活的解决方案。

4. 在SQL Server 2008中搜索非结构化数据

使用非关系数据的利用程序的1个最多见的要求是使得可以在数据上作纯文本搜索。

◆4.1 综合的纯文本搜索

SQL Server 在之前的版本中支持纯文本搜索。但是,它1直依托于1个外部的服务——Windows Search Service ——作为它的纯文本搜索引擎。使用外部服务产生了下面两个挑战:  · 对外部服务的依托使得部署更加复杂,也更难进行支持。  · 结合了纯文本搜索谓词和标准的SQL谓词的查询性能遭到影响,由于从搜索的纯文本部份得来的全部结果集不能不在标准的谓词利用之前放置在这个引擎上。查询优化器不能创建与纯文本搜索谓词协作的计划。  在SQL Server 2008,纯文本搜索是完全集成在数据库引擎中的。通过将纯文本引擎直接集成到SQL核心中,SQL Server 2008解决了之前版本中所面临的挑战,下降了治理和部署SQL Server的本钱,同时进步了搜索非结构化数据的性能。

5. 总结

SQL Server 2008为存储和搜索非结构化数据提供了1个灵活的解决方案。FILESTREAM加强了存储数据库中的非关系数据像BLOB和关系数据的性能,而没有下降可治理性。假设你需要使用1个只用于BLOB的存储,那末远程BLOB存储API能够帮助你集成你的BLOB数据和你的数据库中的关系数据,并提供1个1致的编程界面用于与这个数据交互,还提供了系统的独立性,用来存储数据。最后,当你需要通过使用在这篇***中讨论的任何解决方案来存储和使用大型文档库时,SQL Server 2008帮助你使得搜索非关系数据更加有效也更容易于治理。

上1页 1 2 http://www.fw8.net/


TAG:数据,程序,本钱,字段,关系
评论加载中...
内容:
评论者: 验证码: