内存计算初探_第1页
内存计算初探_第2页
内存计算初探_第3页
内存计算初探_第4页
内存计算初探_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内存计算初探

2014-09-13大纲PPT模板下载:/moban/

行业PPT模板:/hangye/

节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/

优秀PPT下载:/xiazai/PPT教程:/powerpoint/

Word教程:/word/Excel教程:/excel/

资料下载:/ziliao/PPT课件下载:/kejian/

范文下载:/fanwen/

试卷下载:/shiti/

教案下载:/jiaoan/

内存计算WHYHOWWHENWHATWHY?SCQA

数据量越来越大运算越来越复杂响应时间要求越来越短性能越来越慢

用户体验越来越差传统磁盘读取速度ms级内存读取速度ns级内存计算WHAT?内存计算:将数据放在内存中进行处理,并在内存中进行大量的数据分析和计算。软硬件一体的集成设备SAPHANAOracleExalyticsEMC固态硬盘其他sqllite、Altibase、eXtremeDB、fastDB等内存数据库产品,开源的键值对内存数据库Redis、微软公司的图数据计算系统Trinity、ApacheSparkSAPHANAExalytics总述灵活、多用途、与数据源无关的一套内存工具,是一个交易型关系数据库管理系统。一体化的集成系统,可看做大的缓存设备,对目前Oracle数据库和Exadate是一个很好的补充。共同点1.都使用内存数据库技术2.都是软硬件集成设备3.都用来处理分析工作负载使用建议全新数据库,超过原有Oracle性能10倍甚至100倍。在原有Oracle数据库中添加一个智能缓存。WHAT?缺点优点高效快速数据分配到各终端时带宽的限制散热问题缓存大量占用,如何清理问题针对内存攻击的信息安全问题原系统SAPHANA性能提升农夫山泉运行运费报表24h37s2335倍辽宁电力物资项目管理15h4.8s11250倍辽宁电力订单到付款分析30天28s92571倍特点一:加速数据访问

“到2012年,70%的全球1000强企业会将明系数据导入内存,以提升商务智能应用的性能。” -Gartner传统数据库磁盘读取5毫秒内存数据库磁盘读取5纳秒特点二:数据分而治之数据内存本地化:把大数据量和计算量分散到不同处理器并行处理:不同的服务器之间也共享同一组数据容灾性:单一的服务器的DOWN机将不影响任何计算特点三:最小化数据传输When?适合:1.处理海量数据,及实时获得结果的数据;2.模拟数据分析的结果,实现对市场未来发展的预测。理论上:内存计算是一种在体系结构层面上的解决方案,因此可以适用于不同的计算模式:1.基本的数据查询分析计算2.批处理计算3.流式计算4.迭代计算5.图计算。寻找应用场景:分析哪些需求需要这种快速分析的能力,能够给业务带来新的价值和竞争力。确定适用性:实际操作中其他因素的制约,考虑提速本身是否能够影响到最终决策过程。(木桶短木板原理)HOW?—SAPHANASourceSystemSAPIn-memoryDatabaseALL?/Which?HOW?Spaceenough?Parts?Keytechnology?1.HANA运行时不是把所有的磁盘上的所有的数据都加载到内存上。而是看你要用到哪些。2.HANA数据表的存储是分行表和列表的。在工作的时候,行表需要全部load到内存里,而列表因为可以分片,所以有时只需要把所需要的部分load到内存里面就可以。加载的时间还可以,看表的大小及结构,大表的话应该也是毫秒级的,完全可以接受。

3.至于内存够不够用,应该说够用。一般都是上百G的内存,而且也许数据表很大,也上百个G,但是如果是像列表这样的,它有时是部分load进内存的,不是全部,所以可以接受。HOW?--SAPHANA行列存储行列存储列式数据存储的优势优化的数据上载到中央处理器高效的数据压缩快速的数据聚合可以与行式数据存储的表关联A10€B35$C2€D40€E12$ABCDE103524012€$€€$memoryaddress行式的数据组织列式的数据组织A10€B35$C2€D40€E12$概念视图映射到内存数据压缩S:内存容量–增长C:数据全部存储–依旧昂贵A:大多企业解决方案----数据压缩优势:列式数据有着相同的数据类型,更适合数据压缩;减少CPU和主存之间传输的数据量,提高传输效率。分类:Lightweight:prefix/run-length/cluster/indirect/DeltaencodingHeavyweight:更高的压缩率,同样编码和解码代价也很昂贵。前缀编码S:一列数据包含占主导地位(predominant)的值和其余的值C:在非压缩存储中需要存储大量相同的值A:前缀编码可以很好解决这个问题前提:数据根据主值进行列存储且特征向量以主值开始Table:世界人口表按国家人口数降序排列column:国家1.4billionDirectaccess前缀编码—压缩率分析Table:世界人口表按国家人口数降序排列column:国家1.4billion存储200个国家需要的bit数:log2(200)->8压缩前数据:特征向量存储每个8bit共8billion次:8billion*8bit=8billionByte=7.45GB压缩后数据:用额外的31bit存储重复次数(log2(1.4billion)->31)特征向量存储空间:(8billion-1.4billion)*8bit+31bit+8bit=6.15G压缩率:(7.45GB-6.15GB)/7.45GB=17%行程编码S:特征数量包含少数特定值C:特定值出现的次数非常大A:行程编码可以很好解决这个问题前提:为获得最大压缩率,列存储需要排序,因此相同元素相邻Table:世界人口表按国家人口数降序排列column:国家Directaccess行程编码—压缩率分析Table:世界人口表按国家人口数降序排列column:国家存储200个国家需要的bit数:log2(200)->8压缩前数据:7.45GB压缩后数据:存储所有特定值(国家):200*8bit存储起始位置:200*33bit(log2(8billion)->33bit)

额外33bit存储最后一个值出现的次数

总存储:200*(33bit+8bit)+33bit≈1KB压缩率:(7.45GB-1KB)/7.45GB另一种:NumberofoccurrencesIndirectaccess集群编码一列分成相等大小的block,特征向量被分成固定大小(1024)的N个blocks。如果一个cluster包含的数据值相同,则用一个值来替换这个cluster中的所有值;否则保持不变。同时,用额外的一个长度为N的bitvector表示各个block是否被替换过。Table:世界人口表按国家、城市排序column:城市Indirectaccess集群编码—压缩率分析存储1million个城市需要的bit数:log2(1million)->20压缩前数据:8billion*20bit=18.6GB压缩后数据:每个block1024个元素,共N=8billion/1024=7.8million个block最坏情况下,每一个城市对应了一个未压缩的block。incompressibleblocks+compressibleblocks+bitvector=1million*1024*20bit+(7.8-1)million*20bit+7.8million*1bit≈2.4GB压缩率:(18.6GB-2.4GB)/18.6GB=87%Table:世界人口表按国家、城市排序column:城市集群编码—计算记录的位置集群编码不支持直接访问记录。例:计算Berlin城市中有多少男人和女人。先找到berlin所对应的valueID,随后计算其rowID的范围为:10-16,最后计算gender的值。间接编码与集群编码类似,间接编码作用于blocks(通常每个block1024个元素)。如果数据blocks有少量的特定值,采用间接编码比较有效。前提:表中另一列元素已排序,且这两列有相关性。Directaccess两个索引:全局字典和本地字典Table:世界人口表按国家排序column:firstname名字间接编码—压缩率分析存储5million个名字需要的bit数:log2(5million)->23压缩前数据:8billion*23bit=21.4GB压缩后数据:每个block1024个元素,共N=8billion/1024=7.8million个block为简化计算,假设同一国家中每1024个人平均有200个不同的名字(log2(200)->8bit),因此只需要用8bit代替23bit。Localdictionaries+compressedattributevector=(200*23bit+64bit)*7.8millionblocks+8million*8bit≈11.8GB压缩率:(21.4GB-11.8GB)/21.4GB=44%两个索引:全局字典和本地字典Table:世界人口表按国家排序column:firstname名字每一个block都压缩了间接编码—直接访问间接编码可以进行直接访问。例:选择USA国家中名字为John的生日。先找到USA所对应的recordIDs,然后确定相应的blocks,确定全局字典中John对应的valueID(576),对应于每一个block,globalvalueID(576)都转化为localvalueID(如3),然后在block中扫描localvalueID,相关的recordsIDs的生日项就可确认。Delta编码以上压缩技术是降低特征向量的大小。还有一些压缩技术降低存储数据的数量。假设字典中的数据是alpha-numerically排序的,经常有很多的数据是有相同的前缀。Delta编码可以只将相同的前缀存储一次。Delta编码—压缩率分析以城市为例。存储1million个城市,假设最长的城市名有49个letter。压缩前数据:1million*49Byte=46.7MB压缩后数据:每个block16个值,共1million/16=62500个block。另外假定如下数据以方便计算:城市名字的平均长度为7,重复的字母数为3,最长城市名49letters(log2(49)->6bit总存储

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论