Yonghong大数据BI的底层技术分享目录•1.大数据的移动•2.大数据分析的技术–ETL–数据存储–数据计算–数据展现•3.体系架构大数据来了!大数据的移动数据采集存储数据分析数据挖掘Online大数据分析在线大数据分析引擎的趋势数据碎片化面向列、数据分片、压缩丰富的数据块元数据分布式并行计算MapReduceStreamingComputing基于内存计算主存数据库PushinDatabaseOnline大数据分析增量ETL列存储分布式存储内存计算库内计算分布式计算支撑BIJDBC访问ROLAP数据抽取并存储数据计算数据展现数据抽取并存储ETL抽取•定时增量同步数据•细节数据或轻度汇总•压缩,索引,标签数据存储•列存储•分布式文件存储系统-ZFS•面向主题的数据集市列存储与行存储的比对•数据是按行存储的•没有索引的查询使用大量I/O•建立索引和物化视图需要花费大量时间和资源•面对查询的需求,数据库必须被大量膨胀才能满足性能要求•数据按列存储–每一列单独存放•数据即是索引•只访问查询涉及的列–大量降低系统IO•每一列由一个线索来处理–查询的并发处理•数据类型一致,数据特征相似–方便压缩数据抽取并存储列存储1.压缩算法2.PartialI/O3.批量拷贝SelectOrder.SalesFromOrder1.OnlyLoad'Sales'2.BlockCopy'Sales'数据计算主要的底层技术InMemoryComputing内存计算热点数据Swap机制InDatabaseComputing库内计算Push到离数据最近的地方计算CheapStorage廉价的内存主内存靠硬盘CPU缓存成为主内存MPPComputing分布式计算MapReduceStreamComputingDistributedIO分布式通信多路、异步、复用CheapComputing廉价的计算横向扩展(Scale-Out)热插拔式数据计算DataCode1.Initializing2.ComputingDataDataCode内存计算1.HotData/AllData2.Swap机制3.内存管理1.Data2.ResultDataDataDataDataChains数据计算库内计算–Push:条件查询–原子函数–执行计划数据计算•库内计算-条件查询条件能否压下去?数据计算库内计算-聚集查询Sum1.Map:Sum2.Reduce:Sum_SumCount1.Map:Count2.Reduce:Sum_CountVariance1.Map:Count,Sum,SumSQ2.Reduce:Sum_Count,Sum_Sum,Sum_SumSQ0.Formula:(n*Σx2–(Σx)2)/(n*(n–1))Covariance1.Map:Sum_x,Sum_y,SumWT_xy,Count_x2.Reduce:Sum_Sum_x,Sum_Sum_y,Sum_SumWT_xy,Sum_Count0.Formula:1/n*Σxy-μx*μy数据计算库内计算–复杂聚集查询Variance(a)/Sum(a)V1=Variance(a)S1=Sum(a)V1/S1MapTaskReduceTask第一层第二层第三层复杂聚合函数改写过程数据计算库内计算–执行计划对于Count计算,可以合并成一个SQL对于DistinctCount计算,需要拼成四个SQL数据计算分布式计算OfflineMPP•心跳请求任务•从HDFS展开任务•Shuffle/MergeOnlineMPP•直接推送任务•预部署任务•NoShuffleVS.数据计算分布式计算机器角色NamingNodeClientNodeMapNodeReduceNodeMap服务器CTable2,Table3Map服务器BTable1,Table3Map服务器ATable1,Table2Client服务器Naming服务器Reduce服务器数据计算分布式通信1.可复用的TCP/IP链接2.多路的信息传输3.异步的信息传输4.稳定的内存使用5.健壮的信息传输多路,异步,复用线程池内存Socket通道线程池内存Socket通道数据计算优化算法1.基于BlockMeta的高层优化2.基于每个Block的每个Column的中层优化3.基于计算强度进行SQL改写的底层优化A+B-C/D