您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Greenplum数据库基础培训new_2
Greenplum数据库基础培训Wei.LiSeniorDataArchitectureAlpineSolution2010/05Greenplum数据库海量并行处理(MassivelyParallelProcessing)DBMS基于PostgreSQL8.2相同的客户端功能增加支持并行处理的技术增加支持数据仓库和BI的特性•外部表(externaltables)/并行加载(parallelloading)•资源管理•查询优化器增强(queryoptimizerenhancements)S1002NetworkConfigurationX4200(MasterHost)e1000g4e1000g5e1000g3e1000g2e1000g1e1000g0iLOMSMC8748MSMC8748M172.16.0172.16.1172.16.2172.16.3Catalyst2960192.168.X4500(SegmentHost2)e1000g3e1000g2e1000g1e1000g0iLOMX4500(SegmentHost1,StandbyMaster)e1000g4e1000g5e1000g3e1000g2e1000g1e1000g0iLOMLocalLAN/WANaslocallydefinedGreenplum基本体系架构SegmentHostSegmentHostSegmentHostSegmentHostClientMasterHostLANInterconnect-GigabitEthernetSwitch客户端接口和程序psqlpgAdminIIIODBC/DatadirectJDBCPerlDBIPythonlibpqOLEDBClientMasterHost访问系统的入口数据库侦听进程(postgres)处理所有用户连接建立查询计划协调工作处理过程管理工具系统目录表和元数据(数据字典)不存放任何用户数据MasterHost每段(Segment)存放一部分用户数据一个系统可以有多段用户不能直接存取访问所有对段的访问都经过Master数据库监听进程(postgres)监听来自Master的连接SegmentHostSegmentHostSegmentHostSegmentHostSegmentGreenplum数据库之间的连接层进程间协调和管理基于千兆以太网架构属于系统内部私网配置支持两种协议:TCPorUDPLANInterconnect-GigabitEthernetSwitchInterconnect(privateLAN)segmenthostprimarysegmentsegmenthostprimarysegmentsegmenthostprimarysegmentclientmasterhostmasterinstancegigabitethernetmirrorsegmentmirrorsegmentmirrorsegmentstandbymasterhostsynchprocessstandbymasterGreenplum高可用性体系架构primarymasterhoststandbymasterhostTransactionLogsTransactionLogssynchronizationprocessSystemCatalogsSystemCatalogsStandby节点用于当Master节点损坏时提供Master服务Standby实时与Master节点的Catalog和事务日志保持同步Master/Standby镜像保护segmenthostnsegmenthost1segmenthost2masterhostGreenplumMasterglobalcatalogSegment1(mirror)Segment1(primary)Segment2(mirror)Segment2(primary)Segmentn(primary)Segmentn(mirror)每个Segment的数据冗余存放在另一个Segment上,数据实时同步当PrimarySegment失败时,MirrorSegment将自动提供服务PrimarySegment恢复正常后,使用gprecoverseg–F同步数据。数据冗余-Segment镜像保护Hash分布CREATETABLE…DISTRIBUTEDBY(column[,…])同样数值的内容被分配到同一个Segment上循环分布CREATETABLE…DISTRIBUTEDRANDOMLY具有同样数值的行内容并不一定在同一个Segment上S1S2S3hashassignAACCBBinputrowssegmentsmasterABCCABACACS1S2S3assignnextinputrowssegmentsmasterABCCABACCAACCBAB表分布的策略-并行计算的基础表分布的策略-并行计算的基础salecnintegervnintegerpnintegerdtdateqtyintegerprcfloatcustomercnintegercnametextvendorvnintegervnametextloctextproductpnintegerpnametextmasterglobalcatalogsalepart3segment3customerpart3productpart3vendorpart3salepart1segment1customerpart1productpart1vendorpart1salepart2segment2customerpart2productpart2vendorpart2查询命令的执行举例说明:按卡号、客户号、机构的分布方式优劣点分布存储MasterqueryplanClientSegmentsSegmentsSegmentsSegments查询命令的执行查询命令的执行mastersegment1segment2QDprocessslice3QEprocessslice1QEprocessslice2QEprocessslice1QEprocessslice2gangganggangSQL查询处理机制SLICE1SLICE2SLICE3SELECTcustomer,amountFROMsalesJOINcustomerUSING(cust_id)WHEREdate=04302008;TableScanRedistributeMotionTableScanHashHashJoinGatherMotionTableScanRedistributeMotionTableScanHashHashJoinGatherMotionSLICE3SLICE1SLICE2SEGMENT2SEGMENT1并行查询计划表分区的概念将一张大表逻辑性地分成多个部分,如按照分区条件进行查询,将减少数据的扫描范围,提高系统性能。提高对于特定类型数据的查询速度和性能也可以更方便数据库的维护和更新两种类型:Range分区(日期范围或数字范围)/如日期、价格等List分区,例如地区、产品等Greenplum中的表分区在使用中具有总表的继承性,并通过Check参数指定相应的子表分区的子表依然根据分布策略分布在各segment上分区是一种非常有用的优化措施,例如一年的交易按交易日期分区后,查询一天的交易性能将提高365倍!!!Segment1ASegment1BSegment1CSegment1DSegment2ASegment2BSegment2CSegment2DSegment3ASegment3BSegment3CSegment3DJan2005Feb2005Mar2005Apr2005May2005Jun2005Jul2005Aug2005Sep2005Oct2005Nov2005Dec2005每个分区表的数据平均分布到各个节点表分区可减少数据的搜索范围,提高查询性能DataDistribution&PartitioningSegment1ASegment1BSegment1CSegment1DSegment2ASegment2BSegment2CSegment2DSegment3ASegment3BSegment3CSegment3DSegment1ASegment1BSegment1CSegment1DSegment2ASegment2BSegment2CSegment2DSegment3ASegment3BSegment3CSegment3DSegment1ASegment1BSegment1CSegment1DSegment2ASegment2BSegment2CSegment2DSegment3ASegment3BSegment3CSegment3DSELECTCOUNT(*)FROMordersWHEREorder_date=‘Oct202005’ANDorder_date‘Oct272005’VSHashDistributionHashDistribution+TablePartitioningSegment1ASegment1BSegment1CSegment1DSegment2ASegment2BSegment2CSegment2DSegment3ASegment3BSegment3CSegment3DFullTableScanVS.PartitionPruning表分区示意图压缩存储压缩存储支持ZLIB和QUICKLZ方式的压缩,压缩比可到10:1压缩表只能是AppendOnly方式压缩数据不一定会带来性能的下降,压缩表将消耗CPU资源,而减少I/O资源占用语法CREATETABLEfoo(aint,btext)WITH(appendonly=true,compresstype=zlib,compresslevel=5);行列存储Greenplum支持行或列存储模式列模式目前只支持AppendOnly如果常用的查询只取表中少量字段,则列模式效率更高,如查询需要取表中的大量字段,行模式效率更高语法:CREATETABLEsales2(LIKEsales)WITH(appendonly=true,orientation=column);效率比较测试:–测试1:需要去表中所有字段,此时行存储更快。select*fromdw_ods.s1_sema_scmcaccp_rowwherecrdacct_nbr='4033930000166380411';41秒select*fromdw_ods.s1_sema_scmcaccp_colwherecrdacct_nbr='4033930000166380411';116秒–测试2:只取表中少量字段,列存储更快selectcrdacct_statusfromdw_ods.s1_sema_scmcaccp_rowwherecrdacct_nbr='4033930000166380411';35秒selectcrdacct_statusfromdw_ods.s1_sema_scmcaccp_colwherecrdacct_nbr='4033930000166380411';3秒外部表加载外部表的特征Read-only数据存放在数据库外可执行SELECT,JOIN,SORT等命令,类似正规表的操作外部表的优点并行方式加载ETL的灵活性格式错误行的容错处理支持多种数据源两种方式ExternalTables:基于文件WebTables:基于URL或指令基于外部表的高速数据加载利用并行数据流引擎,Greenplum可以直接用SQL操作外部表数据加载完全并行Master主机Segment主机内部互联网—千兆以太网交换机g
本文标题:Greenplum数据库基础培训new_2
链接地址:https://www.777doc.com/doc-958396 .html