Palo:百度面向分析的大规模数据库系统-马如悦

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Palo:aMPP-basedInteractiveDataAnalysisSQLDBmaruyue@baidu.comTel:158102937842014.9.17目录•做Palo的背景•Palo整体架构•Palo关键技术•不竞品的比较•我想使用Palo数据系统分类•OLTPvs.OLAP•Operationalsystemvs.Datawarehousing•Transactionaldatabasevs.Analyticdatabase•ImplementationArchitecture–DataEngine=FunctionEngine(StorageEngine)–MySQL:QueryingEngineoverStorageEngine–Hadoop:MapRedoverHDFSOLTP•SQLDB(MySQL),NoSQLDB(MongoDB),NewSQLDB(Spanner)•HighConcurrency,StrongConsistent,Transactional•Function:CURD(Create,Update,Read,Delete)OLAP•HighThroughput(大查询高吞吐兼顾小查询高并发)•Function:Read(query、analysis、mining)•BatchDataProcessingvs.InteractiveDataAnalysis•SQLDB(Impala+hdfs,Mesa),SearchDB(ElasticSearch),MiningDB(R+?,Julia+?)•Palo:aMPP-basedInteractiveDataAnalysisSQLDB•Palo,aGoogleMesaClone,issimplerandbetterthanMesa.Single(infobright)Shared-disk(OracleRAC,Exadata)MPP(Teradata,Greenplum)ReportingMultidimensionalAnalysisTextAnalysisDataMiningRDD(Spark)MR(Hadoop,Hive)SQLDBSearchDBMiningDBBatchDataProcessingvs.InteractiveDataAnalysisInteractiveBatchBigDataLambdaArchitecture–Stormauthor传统数据库研发逐渐从OLTP转向OLAP1977197919831984200520102012Oracle公司成立Oracle2IBMDB2FirstPublicRelease1987SybaseASE1989SQLServer1.0SAPHANA1.0SAP58亿美金收购PostgreSQL1.0SQLServerPDWGreenplumBizgresEMC收购2009ExadataV1Vertica成立2011HP收购2013HAVEnAmazonRedshiftParAccel大数据促使传统数据库领域格局发生变化,幵购渐多产品简介技术特点收购情况Netezza2000年在美国成立NetezzaTwinFin软硬一体机采用FPGA数据过滤代替索引2010年9月20日,IBM出资17.8亿美元收购Greenplum2003年在美国成立GreenplumDatabase行存+列存Shared-Nothing集群2010年7月6日,EMC出资3亿美元收购Vertica2005年在美国成立VerticaAnalyticDatabase列存Shared-Nothing集群2011年2月,HP出资3.5亿美元收购AsterData2005年在美国成立nClusterSQL-MapReduceShared-Nothing集群2011年7月6日,EMC出资2.63亿美元收购ParAccel2005年在美国成立PADB列存+自适应压缩Shared-Nothing集群2013年Actian出资1.5亿美元收购,Redshift宣称使用ParAccel千禧年以前,数据库领域幵购次数丌多,金额也丌大;千禧年以后,在OLAP领域美国不欧洲成立了许多小型创业公司,像Vertica、Vectorwise、ParAccell、Exasol都是其中的佼佼者,数据库领域呈现出前所未有的活跃气氛;2010年,SAP率先以58亿美金巨资收购Sybase,拉开领域幵购狂潮;许多IT公司开始进行领域布局。传统数据库面临的问题10问题成本描述扩展性可用性查询性能数据加载性能传统分析型数据库往往采用一体机形式交付,维护、升级、扩容成本非常高数据增长速度比以往更快,数据量超出配额限制成为常态,要求数据库有很好的扩展性支持automaticfailover,对用户透明,丌影响用户查询性能传统数据库平均综合查询性能(复杂查询、即席查询、高幵发小查询)达丌到海量数据分析型应用,大数据查询性能往往要求提升10倍以上大数据处理必然会对数据加载速度有很高的要求,传统数据库的索引结构将丌再适用开源开源会促进技术的透明化,让系统丌断迭代,吸收大众之智慧。传统数据库大都闭源。开源及互联网企业也抓紧布局InteractiveAnalysis•HiveDremel:InteractiveAnalysisofWeb-ScaleDatasets(Google2010)Tenzing:ASQLImplementationOnTheMapReduceFramework(Google2011)PowerDrill:ProcessingaTrillionCellsperMouseClick(Google2012)目录•做Palo的背景•Palo整体架构•Palo关键技术•不竞品的比较•我想使用Palo设计原则与定位-苹果公司产品理念•定位低成本线性扩展支持云化部署高可用高查询性能99.9999%Uptime10WQPS/100GB/s100~200节点/1000TB1/10~1/100Cost高加载性能10TB/Hour实现架构MySQLTools(MySQLNetworking)Palo-FE(Leader,Java)Palo-FE(Follower,Java)Palo-FE(Follower,Java)Palo-FE(Observer,Java)Palo-BE(C++)Palo-BE(C++)Palo-BE(C++)Palo-BE(C++)目录•做Palo的背景•Palo整体架构•Palo关键技术•不竞品的比较•我想使用Palo•StateMachine+ReplicatedLog•类似Raft协议思想MetadataInMEMCheckpoint.10LOG.11LOG.12LOG.13FrontendMetadataManagementLeaderCheckpoint.13LOG.14MetadataInMEMCheckpoint.10LOG.11LOG.12LOG.13FollowersCheckpoint.13LOG.14MetadataInMEMCheckpoint.10LOG.11LOG.12LOG.13ObserversCheckpoint.13LOG.14LogReplicatingMySQLNetworkingProtocolMySQLTools(MySQLNetworking)Palo-FE(Leader,Java)Palo-FE(Follower,Java)Palo-FE(Follower,Java)Palo-FE(Observer,Java)Palo-BE(C++)Palo-BE(C++)Palo-BE(C++)Palo-BE(C++)MySQLClientFrontendMySQLProxy轻量级客户端不上层应用兼容容易学习曲线平缓,方便用户上手使用利用MySQL相关工具,比如MySQLProxyMySQLProtocolLayerTableau兼容性R语言兼容性ElasticRangePartitionTablet1Tablet2Tablet3•支持HashPartition•也支持一种ElasticRangePartitionTablet4Tablet5PaloStorageDesign引自GoogleMesaPaperRollup表Base表Values聚合方式Sum,ReplaceKeysValuesDelta更新引自GoogleMesaPaperPaloStorageFormat–行列存储•数据块存储–每个块含256行–块内部列存储–块整体压缩•稀疏索引–索引常驻内存–每个块对应一个索引项–索引项只保存key的前几列–shortkey索引文件数据块company=南航&date=20140305PaloStorageFormat–列式存储数据按列存储,每一列单独存放只访问查询涉及的列,大量降低I/O数据类型一致,方便压缩数据包建索引,数据即索引(date)b(int)cde1001018,10.........10010230,50.........1001031,5.........100101,1001025,25.........True=完全确定必须读取列数据Possible=有可能可以进一步优化结合其它条件过滤后确定False=完全排除不需要读取列数据selectasum(b)asbfrommytabwherea='100101'groupbyaorderbybdesc结果集过滤条件I/O基本算子{min,max,sum,...}60000024351+b列一个需要打开的数据包100101,100101100101,1001028,10,6000005,25,1155261假设一个表mytab,按列存储了a、b、c、d、e五列,GBase8a存储引擎将每列都拆分成了几个数据包。对于查询应用,GBase8a的执行流程如下:1.输入一条查询语句:SELECTa,sum(b)asbFROMmytabWHEREa=‘100101’GROUPBYaORDERBYbDESC;2.根据查询条件,GBase8a智能索引先过滤a的数据包,即哪些数据包符合a=‘100101’这个查询要求。图中浅灰和中灰部分代表完全确定和不完全确定的数据包(不完全确定是指根据智能索引尚无法准确判断);3.对于浅灰色的数据,只需访问b数据包的智能索引,就能得到sum值,不用对此数据包做磁盘I/O。这里的sum值为600,000;4.对于中灰色的数据,将其所对应的a、b数据包解压缩,进行查询、求和计算,获取满足查询条件的聚合值;5.对于深灰色数据,由于其不满足查询条件,则根本不需要读取相关数据;6.将3、4的结果求和,返回。由此可以看出,对于统计分析场景,GBase8a使用智能索引技术可以减少大量的I/O,提高查询速度。Palo存储引擎利用原始过滤条件以及min、max和sum智能索引技术将数据集查询范围尽可能地缩小,可以大大减少I/O,提升查询性能高并发小查询•多FE节点解析(非Leader单调一致性,SYNC原语)•执行规划时的PartitionPruning•运行时的PartitionPruning(迓未开展)•Sorted,带有智能索引的存储格式•Rollup表•Delta更新策略高性能•启发式预聚合•谓词下推,复杂谓词下推•向量化执行容错、稳定性•多副本存储,副本自劢修复•多硬盘支持,硬盘自劢容错•查询时副本切换机制•数据包序列号验证•黑名单机制,快速屏蔽宕机机器•服务器结果延迟发送In-DatabaseAnalysis计算计算计算传输数据传输数据•UDF•UDAF•UDTF其它关键技术•批量数据导入的原子更新,MVCC•SchemaChange/CreateR

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功