使用SQLServer2008管理非结构化数据

使用SQLServer2008管理非结构化数据,第1张

使用SQLServer2008管理非结构化数据,第2张

microsoft SQL Server & # 84822008提供了一个灵活的解决方案,它可以存储非结构化数据,并将其与关系数据相结合,以构建一个使用整个公司数据的集成解决方案。
1。引言
近年来,个人和公司创建和存储的数字数据量急剧膨胀。过去,企业使用计算机系统和数据库以结构化格式(如关系表或固定格式文档)存储其大部分业务数据,软件应用程序使用这些结构化数据存储来执行业务操作。然而如今,公司的很大一部分数据是由微软& reg等强大的工具存储的。Office Excel & reg而数字摄影、文档扫描、视频产品和音频格式进一步扩大了业务数据的非结构化数据格式的范围。此外,存储硬件和内存成本的显著降低极大地影响了存储在计算机中的数据的数量和类型,并导致了新一代的商业应用程序,这些应用程序将传统的关系数据结构与非结构化数字内容相结合。数字内容的丰富意味着公司现在正在尝试管理企业内部的关系数据和非结构化数据,需要一个能够完全满足关系数据存储和非关系数据存储要求的解决方案,同时降低管理和构建使用这些数据的应用程序的成本。
例如,考虑一下保险索赔申请在过去15年中的变化。15年前,这个应用程序通常维护一个以简单的行和列存储的保险索赔记录列表。如今,保险索赔应用程序倾向于管理一组索赔记录,包括图片、照片和文档。它可能还需要以基于XML的格式显示索赔数据,以便与其他系统集成,它还可能包括更高级别的功能,例如空之间的可视化、报告和分析。
SQL Server 2008提供了一些超越传统数据库系统的功能,发展成为一个可以存储、管理和查询所有类型数据的数据平台;包括非结构化二进制数据、XML和空之间的数据。本白皮书重点关注非结构化数据,并介绍了使用SQL Server 2008存储、管理和使用非结构化数据的选项。
2。业务推动非结构化数据
大多数公司依赖于存储在数据库中的关键业务数据,并在存储和操作这些数据的数据管理系统和应用程序上投入大量资金。然而,不断增长的业务产生了大量数字图片、文档、视频和其他多媒体格式的无关和非结构化数据,这些新的数据格式已迅速成为正式和非正式业务流程的关键组成部分。它们与现有的业务应用程序集成,符合调整要求,或者只是提供更丰富的用户体验。
例如,在以下业务场景中:
保险公司需要存储保单文档,并根据需要对其进行处理以提取它们。
…一家在线零售商需要存储用于在电子商城中展示其产品的视频胶片。
…电话系统需要保存语音消息的音频流,以便可以远程传输。
广播电台需要做一个广播库,可以在自己的网站上下载搜索。
…一个操作需要以图片的形式存储文档的电子副本,并且可以方便地获取与单个客户或实例相关的文档。
建筑合作伙伴需要存储和提取数字平面图及其相关的客户数据。
…需要转换和保存大量现有文件和分类内容以便在数字搜索工具中检索和使用的库。
这些是全球商务中使用的非机构数字数据的一些新例子;随着创建数字内容变得越来越容易,公司也在寻找新的和创新的方法来使用这些数字内容来提高或扩展他们的业务能力。2.1对非结构化数据的挑战
在新的非结构化数据类型不断增加的同时,数字内容带来了许多好处和商机,但也给需要将这些非结构化数据源融合到计算机应用程序和服务中的系统架构师、管理员和应用程序开发人员带来了一些挑战。
存储非结构化数据的挑战
要考虑的第一个挑战,也可能是最明显的挑战,是非结构化数据的大规模存储。您应该拥有一个系统,它允许您灵活地满足存储非关系数据的特定需求,同时最大限度地降低成本和管理费用。当您计划存储非结构化数据时,您应该考虑的主要问题包括:
存储非结构化数据的成本不仅包括硬件成本,还包括管理成本。
…非结构化数据的物理存储位置,如文件服务器和网络连接存储(NAS)设备。
管理持续能力和归档策略。
…集成非结构化数据文件和相关的关系数据,并维护结构化数据源和非结构化数据源之间的事务一致性。
…最大限度地减少与维护关系数据和非结构化数据相关的管理费用。
…性能和可伸缩性。
…保护非结构化数据并确保相关关系数据的一致性。
非结构化数据的可用性和可恢复性。
使用非结构化数据的挑战
还有一些与存储非结构化数据相关的问题。您必须考虑公司的应用程序将如何使用这些数据。一些代表性的考虑包括:
。在构建使用结构化数据和非结构化数据的应用程序时遇到的开发挑战包括编写代码来创建、提取、更新和删除非结构化数据,以及维护相关关系数据源和非结构化数据源之间的事务一致性。
索引和搜索非结构化数据。
…显式地提取可用的元数据(例如,从表区域或文件属性中)并将其显示给用户。
…将文档内容转换为可以搜索和查询的格式(例如,将音频文件转换为文本形式,以便可以通过数据库查询或纯文本引擎进行检索。]
2.2 SQL Server 2008中非结构化数据的目标
非结构化数据面临的相关挑战反映了一些开始为数字内容构建解决方案的公司所关注的常见情况:
管理多个不同的平台来处理关系数据和非关系数据,这导致了不必要的复杂性。
这些分散的数据存储对于开发人员来说更加复杂,对于管理人员来说也更加难以部署。
开发人员和数据库管理员缺乏可用于这些不同数据类型的服务。
SQL Server 2008旨在通过以下方式解决这些问题:
降低管理这些不同数据类型的成本。
简化使用关系数据和非关系数据的应用程序的开发。
…将现在只用于关系型数据的函数扩展到非关系型数据。3.在SQL Server 2008
中存储非结构化数据依赖于关系数据和非关系数据的应用程序通常使用以下三种架构之一:
…数据库中的关系数据和文件系统和文件服务器上的非关系二进制大对象(BLOB)。
…数据库中的关系数据和BLOB存储中的非关系数据。
数据库中的关系数据和非关系数据。
每种方法都有其优点和缺点。例如,将非结构化数据存储在文件服务器或仅用于BLOB的存储中会降低每GB的成本,但这通常会增加管理和构建应用程序的复杂性,因为应用程序必须维护数据库和单独系统中记录的完整性,这些系统包含BLOB数据以及与这些记录相关联的对象。另一方面,将BLOB数据存储在数据库中可以方便地集中数据存储,但这通常会带来更高的成本并导致性能下降。
SQL Server 2008引入了两个用于存储BLOB数据的新函数:
FileStream:是一个可以在varbinary字段上设置的属性,以便数据存储在文件系统中(从而受益于其快速流功能和存储容量),但可以在数据库的上下文中直接管理和访问。:
远程BLOB存储:一个客户端应用程序编程接口(API),它降低了构建依赖外部BLOB存储和关系数据数据库的应用程序的复杂性。
此外,SQL Server 2008通过varbinary数据库类型继续支持标准的BLOB字段。
◆3.1 SQL Server Blob
SQL Server 2005引入了varbinary(max)数据类型,使您能够在SQL Server字段或变量中存储2,147,483,647字节的大型二进制数据值。使用修改后的max时,可以通过设置行表外的大值类型选项来控制数据在物理表的数据页中的存储方式。当此选项设置为on时,所有值都存储在单独的链接页面上,并且指向这些页面的16位根指针将保存在记录的数据页面上。当该选项设置为OFF时,8000字节的值存储在该行的数据页上,而较大的值存储在单独的链接页上。
虽然新的FILESTREAM和远程BLOB功能旨在提供比标准varbinaryBLOB字段更好的性能和可管理性,但在某些情况下,使用varbinary字段更合适(通常在平均BLOB大小小于250 KB时)。)
◆3.2 FILESTREAM属性
在SQL Server 2008中,可以将FILESTREAM属性应用于varbinary字段,然后SQL Server将该字段的数据存储在本地NTFS文件系统上。在文件系统上存储数据带来了两大优势:
性能可以与文件系统的流性能相匹配。
blob的大小仅受文件系统的大小限制空。
但是,在SQL Server中可以像管理任何其他BLOB字段一样管理字段,因此管理员可以使用SQL Server的可管理性和安全性功能将BLOB数据管理与关系数据库中的其他数据集成在一起,而不必单独管理文件系统数据。在SQL Server中将数据定义为FILESTREAM字段,还可以确保数据库中的关系数据和文件系统中存储的非结构化数据在数据级别的一致性。FILESTREAM字段与BLOB字段相同,表示维护操作(如备份和恢复)的完全集成,与SQL Server安全模型的完全集成,以及纯事务支持。
应用程序开发人员可以通过两种编程模型之一使用FILESTREAM数据;他们可以使用Transact-SQL访问和操作数据,就像标准的BLOB字段一样,或者他们可以使用Win32流API和Transact-SQL事务语义来确保一致性,这意味着他们可以对FILESTREAM BLOB使用标准的Win32读/写调用,就像他们与文件系统上的文件进行交互时一样。
在SQL Server 2008中,FILESTREAM字段只能存储本地磁盘空之间的数据,并且FILESTREAM字段不支持简单加密和表值参数等功能。此外,您不能在数据库快照或数据库镜像会话中使用包含FILESTREAM字段的表,但它支持日志传输功能◆3.3远程BLOB存储API
虽然FILESTREAM属性将文件系统的性能和可伸缩性与在数据库中存储BLOB的可管理性和数据一致性结合在一起,但它通常出现在EMC Centera、Fujitsu Nearline、Microsoft windows & reg这样的文件服务器或任何其他只存储BLOB的系统更有效或更划算。SQL Server 2008中的远程BLOB存储API通过提供基于提供程序的体系结构,使得仅将远程BLOB存储解决方案与数据库中的关系数据集成更加容易。这种架构使您的应用程序能够使用任何BLOB存储,而无需特定的BLOB存储函数或代码。
就体系结构而言,有两个关键部分:
客户端库:它是一个组件,使任何提供者都能够使用您的BLOB和关系数据。客户端应用程序使用客户端库和任何适用的提供程序库来插入、更新和查询存储在BLOB中的数据和存储在数据库中的数据。
厂商库:是BLOB存储厂商提供的代表性组件(虽然可以定制开发)。供应商库实现了一个通用接口,并提供了一组标准服务,这些服务抽象了这个特定存储上的创建、获取、枚举、删除和垃圾收集操作的细节。
。当您的数据库BLOB需要存储在不同于数据库的服务器上,并且需要与其他系统协作时,远程BLOB存储API是理想的选择。它对BLOB存储没有限制。任何提供远程BLOB存储提供程序的系统或任何可以在远程BLOB存储提供程序上构建的系统都支持它。因为与BLOB存储的交互细节是由提供者库抽象的,所以您可以在不更改应用程序的情况下更改存储,这带来了巨大的好处,并降低了开发人员和管理员的复杂性。Microsoft与业内所有存储供应商合作,以确保为远程BLOB存储API提供合适的供应商库。使用远程BLOB存储API使您能够灵活地使用不同的系统来管理关系数据和非关系数据。远程BLOB存储API通过链接级一致性维护数据库中的记录和外部存储的BLOB之间的一致性。例如,如果通过delete语句从数据库中删除BLOB引用,系统将从存储中删除BLOB。然而,当BLOB直接存储在数据库中时,使用远程BLOB存储API不能提供数据级的一致性。为此,您需要使用FILESTREAM或varbinary。
◆3.4 blob的存储选择比较
下表比较了SQL Server 2008中blob数据的存储选择。
表1:1:BLOB存储选项的比较
这些选项意味着SQL Server 2008为存储最适合您业务需求的非结构化数据提供了灵活的解决方案。
4。在SQL Server 2008中搜索非结构化数据
使用非关系数据的应用程序最常见的要求之一是对数据启用纯文本搜索。
◆4.1全面的纯文本搜索
SQL Server在以前的版本中支持纯文本搜索。然而,它一直依赖一个外部服务——Windows搜索服务——作为它的纯文本搜索引擎。使用外部服务会带来以下两个挑战:对外部服务的依赖使得部署更加复杂和难以支持。纯文本搜索谓词和标准SQL谓词的组合的查询性能会受到影响,因为在应用标准谓词之前,来自搜索的纯文本部分的整个结果集必须放在这个引擎上。查询优化器无法创建与纯文本搜索谓词协同工作的计划。在SQL Server 2008中,纯文本搜索完全集成在数据库引擎中。通过将纯文本引擎直接集成到SQL core中,SQL Server 2008解决了以前版本面临的挑战,降低了管理和部署SQL Server的成本,提高了搜索非结构化数据的性能。
5。摘要
SQL Server 2008为存储和搜索非结构化数据提供了灵活的解决方案。FILESTREAM增强了在数据库中存储非关系数据(如BLOB和关系数据)的性能,而不会降低可管理性。如果您需要使用仅BLOB存储,那么远程BLOB存储API可以帮助您将BLOB数据与数据库中的关系数据相集成,并为与这些数据进行交互提供一致的编程接口。它还提供了存储数据的系统的独立性。最后,当您需要通过使用本白皮书中讨论的任何解决方案来存储和使用大型文档库时,SQL Server 2008可以帮助您更有效地搜索非关系数据,并且更易于管理。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 使用SQLServer2008管理非结构化数据

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情