- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DTCC201
DTCC201
1
DTCC201
DTCC201
1
DM针对大数据量环境下分析型应用的支持方案
大纲
?一个实际案例
?挑战和解决方案
?下一步工作规划
一个实际案例
案例简介
-海量数据
?基于已有硬件投资
-单服务器节点
-操作库和分析库合并
?以查询分析为主,兼顾少量数据维护
硬件与拓扑
硬件与拓扑 DTCC201
1
硬件与拓扑
硬件与拓扑 DTCC201
1
Cpu x 4
Mem 32GB
J 16 X 1TB SAS
RAID 5
案例简介-数据 DTCC201
?以常规数据为主,主要为数值、字符串、 时间类型
?日增长数据量为约56G , 3亿条元组
?当前数据量3TB
?最大单表为计费表,目前约150亿条记录
?数据保存20年后归档为历史数据
?在线数据规模将超过400TB
典型业务流程
典型业务流程 DTCC201
1
典型业务流程
典型业务流程 DTCC201
1
-源数据清洗入库
-分析统计型查询
-第一步过滤的筛选条件不确定
-试错式的查询分析过程,成功后固化,一般包含 20多个步骤
-大规模的连接查询、子查询、联合查询、数据分组与排序、临 时结果集与临时表等
-复杂SQL不多,但IO非常大
-日常数据维护
?手工修改记录内容
?批量删除
?定期维护
DTCC201
DTCC201
1
DTCC201
DTCC201
1
案例需求
-关键在查询性能
-第一个过滤步骤
-筛选字段由用户随机定义,因此无法使用索引
? 一般会得到千万级别的结果集
-大量的多表连接查询
-数据装载性能
?初始入库48亿条,近1T:限48小时,相当于3万条Is
-后续每3天入库一次,9亿条,168G,限10小时内完成
原有产品难以支持分析型应用TCC2011
-只支持行式存储
?查询优化器比较简陋
?虚拟机实现不尽合理
?物理存储设计有待优化
?日志系统过于复杂
?不能充分利用多机资源提升性能
?数据分片技术不完善
于2009年开始新一代产品DM7的研制
DM系统研制历程1
实验室原型 技术积累阶段 实现各类标准 稳定性及功能
与开源系
统有差距
1
DM1-DM3
1988
2003
持续的技术积累
5.6引入物理操作符,虚拟机
6.0引入高级特性和oracle兼容特性
4
DM5.6
DM7
2011
DM6
2009
2
DM4
2007
2004
对DM4-DM6 的技
术总结
融合列存储与行 存储
基于向量数据的执行内核
原生的MVCC
OLAP应用的支
持
数据控制权传递-批量技术
DTCC2011
-向量数据处理
-在数据泵一次传送一批数据
-减少控制转移的CPU损耗;
-有利于批量的表达式计算
传统的数据传递
传统的数据传递011
传统的数据传递
传统的数据传递011
PROJECT
FILTER1 1 1
FILTER
1 1 1
一次只传递一条记录
每个操作符一次只处理一
行记录
控制权需要反复传递
SCAN
DTCC201
DTCC201
1
DTCC201
DTCC201
1
向量式的数据传递
向量式的数据传递011
SCAN
SCAN
减少控制权限的反复传递
提升CPU的有效利用率
便于表达式批量计算
批量技术-数据入库
-将系统的初始数据入库
-原有BCP接口达到5000条/s,仍无法满足要求 -改进:
-在服务器端实现批量,减少执行流程中的控制跳转
?效率提升8倍
批量技术-全表更新
普通
普通批量绑定
计划生成
单趟扫描一个ID进行更新,执行20万次
批量ID
批量
ID进行排序,单趟扫描20万个ID并进行更新
针对大表更新的特定的批量绑定消息
生成特定计划,减少执行流程
性能提升100倍以上,控制在2秒以内
批量技术-LIKE谓词
-select count(*) from orders where
o_comment not like
%special%requests% ‘
DBMS ‘ O 3.3
11g:
DBMS ‘ S 2005: 10
DM7: 0.4
orders : 1,500,000 记录
残G,多
次执行
表达式计算-表达式结果重用DTCC201
1
?一个表达式出现多次
—Select sum(2 * c1), sum(3 * (2 * c1)) from t
?只计算一次,结果缓存
-v1 = 2 * c1 ;
—Select sum( v1), sum(3 * v1 ) from t
?类似思路:中间结果重用
-一个复杂查询在一条sql语句中使用多次的情况
-将复杂查询提取,并将结果缓存,多次使用
批量表达式计算。11
for (i = 0; i n; i++)
(
r = (int64)opr1
文档评论(0)