Greenplum 数据库开发基础

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

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

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

资源描述

学习·创造·超越·共享Greenplum数据库开发基础12014年10月ChinaConstructionBank.|2目录Greenplum概述和数据分布数据加载和外部表客户端工具Greenplum数据库基础Greenplum与Oracle优化策略其他要点及示例ChinaConstructionBank.|3MPP架构共享磁盘例如:InformixXPSOracleRACDB2pureScaleDBSAN/共享磁盘DBDBDB网络SAN/FC完全共享例如:SMP服务器DB磁盘无共享例如:GreenplumDBDBDBDB网络磁盘磁盘磁盘磁盘Master注:蓝灰色表示共享资源MPPMPP(MassivelyParallelProcessing)Shared-NothingArchitectureChinaConstructionBank.|4MPP无共享架构的优势InterconnectLoading•数据分布在所有的并行节点上–每个节点只处理其中一部分数据•最优化的I/O处理–所有的节点同时进行并行处理–节点之间完全无共享,无I/O冲突•自动化的并行处理机制–内部处理自动化并行,无需人工分区或优化–加载与访问方式与一般数据库相同•最易于扩展的架构–BI和数据分析的最佳选择•增加节点实现线性扩展–增加节点可线性增加存储、查询和加载性能ChinaConstructionBank.|5Greenplum基本架构MPP(MassivelyParallelProcessing)Shared-NothingArchitectureNetworkInterconnect............MasterSeversQueryplanning&dispatchSegmentSeversQueryprocessing&datastorageSQLMapReduceExternalSourcesLoading,streaming,etc.ChinaConstructionBank.|6Greenplum的并行处理特性并行处理由系统自动完成,无需人工干预所有数据均匀分布到所有节点,每个节点都计算自己的部分数据,所以并行处理无需人工干预,系统自动完成。无需复杂的调优需求,只需要加载数据和查询DBA工作量极少,无需复杂的调优工作和维护工作。扩展性可线性扩展到10,000个节点每增加一个节点,查询、加载性能都成线性增长客户端访问及第三方工具支持完全支持数据库技术接口标准,例如:SQL,ODBC,JDBC,OLEDB等。同时,广泛地支持各个BI和ETL软件工具。ChinaConstructionBank.|7Greenplum基本体系架构SegmentHostSegmentHostSegmentHostSegmentHostClientMasterHostLANInterconnect—千兆以太网交换机ChinaConstructionBank.|8客户端接口和程序psqlpgAdminIIIODBC/DatadirectJDBCPerlDBIPythonlibpqOLEDBClientChinaConstructionBank.|9MasterHost访问系统的入口建立与客户端的连接和管理SQL的解析并形成执行计划执行计划向Segment的分发收集Segment的执行结果协调工作处理过程Master不存储业务数据,只存储系统目录表和元数据(数据字典)MasterHostChinaConstructionBank.|10Segment每段(Segment)存放一部分用户数据一个系统可以有多段用户不能直接存取访问所有对段的访问都经过Master用户查询SQL的执行SegmentHostSegmentHostSegmentHostSegmentHostChinaConstructionBank.|11InterconnectGreenplum数据库之间的连接层进程间协调和管理基于千兆以太网架构属于系统内部私网配置支持两种协议:TCPorUDPLANInterconnect-GigabitEthernetSwitchChinaConstructionBank.|12Greenplum高可用性体系架构(privateLAN)segmenthostprimarysegmentsegmenthostprimarysegmentsegmenthostprimarysegmentclientmasterhostmasterinstancegigabitethernetmirrorsegmentmirrorsegmentmirrorsegmentstandbymasterhostsynchprocessstandbymasterChinaConstructionBank.|13Master/Standby镜像保护primarymasterhoststandbymasterhostTransactionLogsTransactionLogssynchronizationprocessSystemCatalogsSystemCatalogsStandby实时与Master节点的Catalog和事务日志保持同步Standby节点用于当PrimaryMaster节点损坏时提供Master服务ChinaConstructionBank.|14数据冗余-Segment镜像保护segmenthostnsegmenthost1segmenthost2masterhostGreenplumMasterglobalcatalogSegment1(mirror)Segment1(primary)Segment2(mirror)Segment2(primary)Segmentn(primary)Segmentn(mirror)每个Segment的数据冗余存放在另一个Segment上,数据实时同步当PrimarySegment失败时,MirrorSegment将自动提供服务PrimarySegment恢复正常后,使用gprecoverseg–F同步数据。ChinaConstructionBank.|15表分布的策略-并行计算的基础Hash分布CREATETABLE…DISTRIBUTEDBY(column[,…])同样数值的内容被分配到同一个Segment上循环分布CREATETABLE…DISTRIBUTEDRANDOMLY具有同样数值的行内容并不一定在同一个Segment上S1S2S3hashassignAACCBBinputrowssegmentsmasterABCCABACACS1S2S3assignnextinputrowssegmentsmasterABCCABACCAACCBABChinaConstructionBank.|16分布键(DistributionKeys)用于将数据平均分布到Segments之中的一个或者多个字段用表的主键作分布键可以使数据分布均匀建表时使用DISTRIBUTEDBY子句定义表的分布键CREATETABLEsales(dtdate,prcfloat,qtyint,cust_idint,prod_idint,vend_idint)DISTRIBUTEDBY(dt,cust_id,prod_id);如果表没有主键,或者没有合适的字段作为分布键,可以使用随机分布键(DISTRIBUTEDRANDOMLY)如果没有明确定义分布键,系统会把第一个字段作为表的分布键ChinaConstructionBank.|17分布存储salecnintegervnintegerpnintegerdtdateqtyintegerprcfloatcustomercnintegercnametextvendorvnintegervnametextloctextproductpnintegerpnametextmasterglobalcatalogsalepart3segment3customerpart3productpart3vendorpart3salepart1segment1customerpart1productpart1vendorpart1salepart2segment2customerpart2productpart2vendorpart2ChinaConstructionBank.|18数据均匀分布-并行处理的关键43Oct2020051264Oct2020051145Oct2020054246Oct2020056477Oct2020053248Oct20200512OrderOrder#OrderDateCustomerID50Oct2020053456Oct2020052163Oct2020051544Oct2020051053Oct2020058255Oct20200555策略:数据尽可能的均匀分布到每个节点ChinaConstructionBank.|19查询命令的执行MasterqueryplanClientSegmentsSegmentsSegmentsSegmentsChinaConstructionBank.|20SQL查询处理机制mastersegment1segment2QDprocessslice3QEprocessslice1QEprocessslice2QEprocessslice1QEprocessslice2gangganggangChinaConstructionBank.|21并行查询计划SLICE1SLICE2SLICE3SELECTcustomer,amountFROMsalesJOINcustomerUSING(cust_id)WHEREdate=04302008;TableScanRedistributeMotionTableScanHashHashJoinGatherMotionTableScanRedistributeMotionTableScanHashHashJoinGatherMotionSLICE3SLICE1SLICE2SEGMENT2SEGMENT1ChinaConstructionBank.|22压缩存储和行列存储压缩存储支持ZLIB和QUICKLZ方式的压缩,压缩比可到10:1压缩表只能是AppendOnly方式压缩数据不一定会带来性能的下降,压缩表将消耗CPU资源,而减少I/O资源占用语法CREATETABLEfoo(aint,btext)WITH(appendonly=true,compresstype=zlib,compresslevel=5);行或列存储模式列模式目前只支持AppendOnly如果常用的查询只取表中少量字段,则列模式效率更高,如查询需要取表中的大量字段,行模式效率更高语法:CREATETABLEsales2(LIKEsales)WITH(appendonly=true,orientation=column);ChinaConstructionBank.|23锁ChinaConstructionBank.|24停止活动的SQL查询查看要停止的SQL查询的进程ID执行select*frompg_stat_activity查看到当前数据库连接的IP地址,用户名,提交的查询等。(另外也可以在master主机上查看进程,对每个客户端连接,master都会创建一个进程。ps-ef|grep-ipostgres|grep-icon)##查询表是否被锁selectprocpid,t.*frompg_stat_activitytwhereusename=‘lds_betl’anddatname=‘ldsdb’andwaiting=‘t’;停止SQL:执行Selectpg_cancel_backend(procpid)或者Selectpg_terminate_b

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

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

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

×
保存成功