微软处理海量非结构化数据的技术和解决方案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
App Machine 应用服务机
Database Machine 数据库服务机
2 请求BLOB 标识 3 应用读取 BLOB标识
Байду номын сангаас
终端用户
1 用户请求 10 用户读取 BLOB
例如:浏览器
应用
SQL Server
触发、 存储过程
9 应用读取BLOB
4 请求BLOB (标识)
应用端 接口
8 读取BLOB 5 请求BLOB (标识) 6 请求BLOB(标识)
App Machine 应用服务机
用户请求
Database Machine 数据库服务机 服务
终端用户
例如:浏览器
应用
SQL Server
触发、 存储过程
存储接口
写Blob
写Blob 地址 Reference
应用端 接口
写Blob 取得Collection 信 息
清理
BLOB 存储
存储接口
返回地址Reference 写Blob
链路级一致性
数据级一致性
集成管理
外置 BLOB 存储
n/a
演 示
使用不同方式访问SQL Blob数据
孙巍 技术总监 北京中达金桥技术服务有限公司
SQL Server Blob访问方式 Filestream存储
T-SQL访问 Win32 API访问
Varbinary存储 访问性能与Blob数据块大小有关 系统设计时需要对存储数据的平均大小及使用模式进 行评估
范例
专用的BLOB存储
BLOB存储数据库 Application 应用
BLOBs
集成的数据库+文件系统
Application 应用
BLOBs
Application 应用
BLOBs
DB
DB
DB
RBS - Remote Blob Storage
SQL BLOB
FILESTREAM BLOB Storage
900 800 700 Throughput (Mbps) 600 Filestream T-SQL Filestream Win32 (Filesystem) Access
500
400 300 200 100 0 240 KB 480 KB 1 MB 2 MB 4 MB 8 MB Varbinary
SqlTransaction transaction = sqlConnection.BeginTransactio("mainTranaction"); sqlCommand.Transaction = transactio; sqlCommand.CommandText ="SELECT GET_FILESTREAM_TRANSACTION_CONTEXT()"; Object obj = sqlCommand.ExecuteScalar(); byte[] txContext = (byte[])obj; SafeFileHandle handle = OpenSqlFilestream(filePath,DESIRED_ACCESS_READWRITE, SQL_FILESTREAM_OPEN_NO_FLAGS,txContext,(UInt32)txContext.L ength,0); byte []buffer = new byte[512]; FileStream fileStream = new FileStream(handle,FileAccess.ReadWrite,buffer.Length, false);
Filestream
Select file from documents where docId=1
Varbinary(max)
Select file from documents where docId=1
[DllImport("sqlncli10.dll", SetLastError = true, CharSet = CharSet.Unicode)] static extern SafeFileHandle OpenSqlFilestream( string FilestreamPath, UInt32 DesiredAccess, UInt32 OpenOptions, byte[] FilestreamTransactionContext, UInt32 FilestreamTransactionContextLength, Int64 AllocationSize);
Filesystem Win32 Access Gain (%)
600
500
400 Throughput (Mbps) 300 200 100
Filestream Win32 (Filesystem) Access Filestream T-SQL
Varbinary
0
240 KB -100 -200 480 KB 1 MB 2 MB 4 MB 8 MB
Windows 文件系统 SQL Server 数据库
实体汇总
实体数据 访问
名单 BLOBs 文字
其他数据源
• • • •
支持BLOB的抽象编程接口 提供更多的‘服务’围绕非结构化数据,例如:搜索,分析 提供集成多种空间数据源的能力 提供结构化和非结构化数据的关联、集成
– 属性的提取/推广 – 灵活的架构 – 适用于非关系型数据的关系型操作
SharePoint 企业 查询门户
其他 数据源 数据源1
应用特定 查询
FAST
SQL Server
数据源2
数据源3
通过实体架构实现对实体的直接搜索查询 针对多数据源的联合并发搜索查询 与 Microsoft Office SharePoint Server 和 FAST 的集成
点将流量数 据,例如; Web 日志 金融数据, 例如:股票 交易记录
集成的数据库+文件系统
Application 应用
BLOBs
DB
非结构数据直接储存于文件系统(使用 NTFS文件系统) VARBINARY(MAX) 数据类型上注明存储 属性即可开启文件流存储功能 丰富的双重编程模式 T-SQL语句(数据库语法)编程 Win32文件系统I/O编程接口支持数 据库事务属性 BLOBs 大小上限= 文件系统大小 与SQL Server集成数据库管理,例如: 备份、恢复... 与SQL Server数据库安全管理集成
SQL Server 能力及案例 文档存储技术发展趋势 案例讨论
提供全方位可扩展 的数据平台以满 足...
爆炸性产生的电子/ 数码数据的惊人数据 量 加速的全球化进程
关系型数据管理使 用的语法来管理...
支持统一、标准的 数据模型,例如...
...通过资源投入到...
在企业周边应用中产 生的新的数据类型
SQL DB
客户应用程序
SQL RBS API SQL FS lib IBM lib Centera lib Net App lib
供应商接口
SQL Server IBM Centera NetApp
RBS 服务 • 创建 • 读取 • 垃圾收集 • 删除
客户应用程序可以支持多种不同的Blob存储机制或设备 供应商将提供相应的接口类库
使用文件系统
Application 应用
BLOBs
专用的BLOB存储
Application 应用
BLOBs
BLOB存储数据库
Application 应用
BLOBs
DB
DB
DB
优势
• 存储成本最低(每GB) • 文件流(streaming)性能较高 • 备份、恢复单元较小
• 存储成本较低(大存储量场景) • 扩展性较佳
报警,报表 数据流 服务引擎 SQL Server 存储 数据流服务应用接口 报表及 数据分析
历史数据流
可适用于不同网域的数据流服务,例如:金融、制造,监测数据 基于历史数据实现决策支持的和业务分析 与现有SQL Server 部件集成,充分利用现有能力,例如:报表、数据 分析
• 传统的三种存储模式
尽可能避免对多个小文件的附加操作,每个附加操作都将 创建新的Filestream文件。如果必须建议使用 varbinary(max) 在高负载的多线程系统中,可以考虑通过 OpenSqlFilestream或SqlFilestream API设置AllocationSize,减 少碎片 如果文件很大,避免使用T-SQL进行更新或附加,这样会 对tempdb有很大开销
• 统一的管理模式 • 数据、事务的一致性
挑战
• 较为复杂的应用架构导致开发、 • 较为复杂的应用架构导致开发、 • 大数据量文件流性能限制 实施的复杂度提升 实施的复杂度提升 • 存储成本较高 • 与结构型数据的集成 • 分隔的数据管理 • 尽陷于大型企业使用场景 • Windows File Servers • NetApp NetFiler • EMC Centera • Fujitsu Nearline • SQL Server VARBINARY(MAX)
DAT315
微软处理海量非结构化数据的技 术和解决方案
朱海峰 高级技术方案顾问 微软(中国)有限公司 孙巍 技术总监 北京中达金桥技术服务有限公司
点击此处修改二级标题 将幻灯片标题设置为 “Title Case” 标题字号为 40分或类似尺寸,并尽可能不换行
将二级标题设置为 “sentence case” 二级标题的字体颜色已经在PPT模板中定义
专用的BLOB存储
Application 应用
RBS
BLOBs
DB
远程BLOB存储 标准的存储接口可使用不同存储体系 后端存储无技术限制:文件系统、数据库、 文件流、专用文档存储等等 后端存储改变不影响应用(不需要改变) 宽松(链路级)一致性保证 SQL Server管理链路级一致性和垃圾收集, 例如:删除、更改等等 市场趋势 RBS优势
降低BLOB存储成本 降低数据库工作负载,提高系统扩展性 标准应用端借口可使用不同存储 使用经济的普通服务器完成复杂的存储和工 作流要求
文件系统
SQL BLOBs
RBS技术
FILESTREAM 文件流
文档流性能
Depends on external store
Depends on external store
当读取FILESTREAM数据时考虑如下因素 如果仅需要读取初始的部分数据,可以使用substring函 数 如果读取整个文件,考虑使用Win32 API 当读取整个文件时,指定FILE_SEQUENTIAL_ONLY标志 程序中的缓存尽量设置为60KB的整数倍
使用文件组及分区进行负载均衡 NTFS优化 fsutil behavior set disable8dot3 1 Fsutil behavior set disablelastaccess 1 Format F:/FS:NTFS /A:64K RAID级别 磁盘接口
结构型和非结构型数 据集成日渐紧密 新一代应用需要使用 不同数据种类
抽象化的数据形态定 义 直接支持特种数据种 类 联邦(和祥扩展并发) 的数据管理
统一标准的存储平台支持所有数据类型、各式
简约、可扩展的管理模式 新数据形态成为标准实体 单一数据平台的应用,需要协调的数据存取
用户自定义数据 种类 关系型表
文档或多媒体数 据
机器边界
应用程序
1 写入 BLOB数据(图片) 2 返回BlobID
3
2
RBS 客户端类库 存储供应商类库
3 将BlobID 写入PhotoRef 字段
ClaimID 1 4390
ClaimDate 6/5/2007
PhotoRef <Binary(20)>
存储
SQL Server
BLOB 存储
存储接口
7 读取BLOB
演 示
使用RBS实现对于FILESTREAM的负载均衡
孙巍 技术总监 北京中达金桥技术服务有限公司
远程BLOB存储技术与FILESTREM文件流技术的集成 由FILESTREM文件流存储节点组成的存储池可以迅速扩展(使用 经济实惠的PC服务器) RBS后端的FILESTREM文件流接口提供多线程、多通道的负载均 衡逻辑进行文档的读写 负载分配可以用户可以根据需要灵活调整 存储节点可转变为“只读”属性(存储历史数据,不接受新 档案) 可以迅速添加节点并重新设置负载均衡模式 智能备份/恢复功能可以避免历史性“只读”数据的重复备 份,显著降低备份需要的时间和空间 客户生产环境显示单线程文档写入可达到48M+/秒性能(限于 存储设备性能)
600 500 400 Throughput (Mbps) 300 Varbinary 200 100 0 240 KB -100 480 KB 1 MB 2 MB 4 MB 8 MB Filesystem Win32 Access Gain (%)
Filestream Win32 (Filesystem) Access Filestream T-SQL