DTCC2011DM针对大数据量环境下分析型应用的支持方案大纲·一个实际案例·挑战和解决方案·下一步工作规划DTCC2011DTCC2011一个实际案例案例简介DTCC2011·海量数据·基于已有硬件投资–单服务器节点–操作库和分析库合并·以查询分析为主,兼顾少量数据维护文本数据源数据硬件与拓扑千兆交换机DTCC2011应用服务器数据汇总文本数据源文本Excel数据数据清洗与入库数据库服务器P550Cpux4Mem32GBP550Cpux4Mem32GB源源16X1TBSASRAID5案例简介-数据DTCC2011·以常规数据为主,主要为数值、字符串、时间类型·日增长数据量为约56G,3亿条元组·当前数据量3TB·最大单表为计费表,目前约150亿条记录·数据保存20年后归档为历史数据·在线数据规模将超过400TB典型业务流程DTCC2011–源数据清洗入库–分析统计型查询·第一步过滤的筛选条件不确定·试错式的查询分析过程,成功后固化,一般包含20多个步骤·大规模的连接查询、子查询、联合查询、数据分组与排序、临时结果集与临时表等·复杂SQL不多,但IO非常大–日常数据维护·手工修改记录内容·批量删除·定期维护案例需求DTCC2011·关键在查询性能–第一个过滤步骤·筛选字段由用户随机定义,因此无法使用索引·一般会得到千万级别的结果集–大量的多表连接查询·数据装载性能·初始入库48亿条,近1T:限48小时,相当于3万条/s·后续每3天入库一次,9亿条,168G,限10小时内完成DTCC2011挑战-核心是性能原有产品难以支持分析型应用DTCC2011·······只支持行式存储查询优化器比较简陋虚拟机实现不尽合理物理存储设计有待优化日志系统过于复杂不能充分利用多机资源提升性能数据分片技术不完善于2009年开始新一代产品DM7的研制DM系统研制历程DTCC2011实验室原型技术积累阶段实现各类标准持续的技术积累5.6引入物理操作符,虚拟机6.0引入高级特性和oracle兼容特性5DM72011稳定性及功能与开源系统有差距3DM5.64DM62009对DM4-DM6的技术总结融合列存储与行存储基于向量数据的1DM1-DM32DM420042007执行内核原生的MVCCOLAP应用的支持1988-2003对于性能的理解DTCC2011应用系统的设计表达式计算优化器综合性能数据/控制权传递I/O效率并发/并行数据控制权传递-批量技术DTCC2011–向量数据处理–在数据泵一次传送一批数据–减少控制转移的CPU损耗;–有利于批量的表达式计算DTCC2011传统的数据传递PROJECTFILTER一次只传递一条记录每个操作符一次只处理一行记录111…控制权需要反复传递SCAN12…N12…N…………DTCC2011向量式的数据传递PROJECT减少控制权限的反复传递提升CPU的有效利用率FILTER便于表达式批量计算SCAN批量技术-数据入库DTCC2011–将系统的初始数据入库–原有BCP接口达到5000条/s,仍无法满足要求–改进:·在服务器端实现批量,减少执行流程中的控制跳转·效率提升8倍批量技术-全表更新DTCC2011普通批量普通批量绑定针对大表更新的特定的批量绑定消息计划生成生成特定计划,减少执行流程单趟扫描一个ID进行更新,执行20万次ID进行排序,单趟扫描20万个ID并进行更新性能提升100倍以上,控制在2秒以内批量技术-LIKE谓词·selectcount(*)fromorderswhereo_commentnotlike'%special%requests%‘DTCC2011DBMS‘O’11g:3.3DBMS‘S’2005:10DM7:0.4orders:1,500,000记录cpu2.2G,多次执行表达式计算-表达式结果重用DTCC2011·一个表达式出现多次–Selectsum(2*c1),sum(3*(2*c1))fromt·只计算一次,结果缓存–v1=2*c1;–Selectsum(v1),sum(3*v1)fromt·类似思路:中间结果重用–一个复杂查询在一条sql语句中使用多次的情况–将复杂查询提取,并将结果缓存,多次使用·虚拟机支持批量计算指令DTCC2011批量表达式计算for(i=0;i