您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > DB2_数据仓库集群设计
©2009IBMCorporation®1DB2数据仓库集群设计©2009IBMCorporation2®日程•不同的并行类型•硬件•软件•DB2DPF并行架构•数据库分区-Databasepartitioning•服务器分区-Serverpartitioning•IO并行•物理数据库设计•分区键-Partitioningkeys•对性能和扩展性的影响•应用并行•何时分区?©2009IBMCorporation3®目标•通过本文介绍,您将能够:•理解不同种类的并行架构•理解DB2MPP并行架构的原理•理解DB2是如何处理并行SQL的•理解并行机制是怎样影响BI架构设计的•知道何时需要进行数据库分区•了解IBMBCU©2009IBMCorporation4®从单处理器到大规模并行处理支持海量数据库扩展性所有都并行(MPP支持)集成的数据仓库/商业只能函数开放的企业级解决方案64位全面支持单处理器SMP群集MPP平台:AIXHP/UXSolarisLinuxWindowsCPUSQLCPUSQLCPUSQLCPUSQL并行交易CPUCPUCPUCPUSQL并行SQL©2009IBMCorporation5®概念和术语•非共享体系架构-Shared-nothing•软件概念:应用(数据库/ETL等)并行处理单一任务的能力,每个子任务处理一部分数据•大规模并行处理(MPP)•硬件概念:一组服务器/节点,通过高速网络通讯,运行非共享应用(数据库、ETL等)•群集•大规模并行计算、各节点共享磁盘子系统;当一个节点宕掉,另一个能访问相同物理磁盘的节点将会接管失效节点的工作负荷。•扩展性•架构扩展能力:•垂直扩展–通过增加单节点组件(CPU内存等)来扩展•水平扩展–通过增加更多的节点来扩展•线性•线性扩展–效率指标,增加资源将线性提升性能©2009IBMCorporation6®分区数据库模型数据库被分为多个分区数据库分区可运行在不同的节点上每个数据库分区有独立的资源(引擎、日志管理、锁管理、缓存管理等)所有分区并行处理,由数据库系统进行统一协调和管理对用户和应用来讲是单一系统映象高速通讯管理(FCM)数据日志数据库分区DB2–非共享体系架构datalogdatalogdatalogdatalog©2009IBMCorporation7®DB2数据库拓朴高速网络tableCPUMEMCPUMEMCPUMEMCPUMEMMPP–小服务器LinuxWindowsRS/SPSMP–大服务器RegattaSunStarFireHPCPUMEMCPUCPUCPUtableCPUMEMCPUCPUCPUtableCPUMEMCPUCPUCPU高速网络群集–SMP群集©2009IBMCorporation8®数据库分区与节点关系Node1part0part1Node2part2part3##sqllib/db2nodes.cfg#0node101node112node203node21FCMFCMFCMFCM节点1分区0在0号逻辑端口上监听节点2分区3在1号逻辑端口上监听节点2分区2在0号逻辑端口上监听节点1分区1在1号逻辑端口上监听db2nodes.cfg•DB2实例配置文件•所有数据库共享该配置•位于DB2实例目录•Sqllib在其中一个节点上•NFS共享给其他节点©2009IBMCorporation9®DPF处理模型part0part1part2part3TXNTXNTXNTXNTXNTXNTXNTXNTXNTXNTXNTXNpart0part1part2part3TXNTXNTXNpart0part1part2part3TXNTXNTXNTXNTXNpart0part1part2part3part4part5TXNTXNTXN每个数据分区有更多的资源相同的响应时间处理更多的查询更多的资源更多的数据分区相同数据量:更快的查询响应时间更多的数据量:相同响应时间OLTPDSS垂直扩展水平扩展扩展扩展©2009IBMCorporation10®I/O层次•页面-Page•读写的基本单位•扩展块-Extent•分配的基本单位•页面数可定制•能且只能用于存放数据库的一个对象(表、索引)•通常为大的块I/O大小•容器-Container•DB2从中分配扩展块•DMS文件(‘/hello.dat')•DMS裸设备('/dev/rhello')•SMS:目录(‘/hello’)•表空间-Tablespace•一组容器Page0Page1Page2Page3Page4Page5Page6Page7Extent:一组页面row1row2row3Page:4k,8k,16kor32kExtent0Extent3Extent1Extent4Extent2Extent5Container:包含扩展块的文件containercontainercontainertablespaceTablespace:表和索引的存放空间Cont1Cont2Cont3©2009IBMCorporation11®总结:并行I/ObufferPartition0bufferPartition2bufferIOIOIOIOIOIOIOIOIOagentagentagentPartition1coordextentsi/oserversContainersContainersContainersdbagents并行预取agentagentagent©2009IBMCorporation12®创建单节点PartitionGroupcreatedatabasepartitiongroupsdpgondbpartitionnums(0);createdatabasepartitiongrouppdpgondbpartitionnums(1TO8);创建多节点PartitionGroup©2009IBMCorporation13®创建跨节点表空间createtablespacets_demoindatabasepartitiongrouppdpgpagesize4kmanagedbydatabaseusing(file'/database/zhouxzh/tbs_demo$N'20M)extentsize16prefetchsizeautomaticbufferpoolbp4kautoresizeyesnofilesystemcaching;©2009IBMCorporation14®DB2表定义–从逻辑到物理PhysicalDataModelCREATETABLEcustomer(cust_idINTEGERNOTNULL,telCHAR(20),zipCHAR(5)NOTNULL,birth_dateDATENOTNULL,PRIMARYKEY(cust_id)DISTRIBUTEBYHASH(cust_id))COMPRESSYESINdata_tbs;CREATETABLEsales(cust_idINTEGERNOTNULLREFERENCEScustomer(cust_id),Foreignkey(确保存在)sales_dateDATENOTNULL,regionCHAR(5)NOTNULL,prod_idINTEGERNOTNULLPRIMARYKEY(cust_id,sales_date))Primarykey(确保唯一)DISTRIBUTEBYHASH(cust_id)Partitionningkey(分散数据)INdata_tbs;CREATEINDEXsales_custONsales(cust_id);Nonuniqueindex(加速查询)Salescust_idsales_dateregionprod_idFK1M3675200JohnSmith01/01/2004Northp1JohnSmith01/02/2004Southp2BillWoe02/01/2004N/Ap1PK逻辑模型Customercust_idTelZipBirth_datePK1M800K50K5000JohnSmithxxx-xxx-xxxx920001965BillWoeyyy-yyy-yyyy750001972©2009IBMCorporation15®使用哈希(Hashing)和分区位图(PartitionMap)自动分布数据Partition0Partition1Partition2customersalesSmithFSmith1Smith2Smith3WoeMWoe1Woe2BillMBill1Bill2MaryFMary1Mary2ZoolFZool2Zool1Zool3CREATETABLEcustomer(cust_idVARCHAR(80),genderCHAR(5))PARTITIONINGKEY(cust_id);CREATETABLEsales(cust_idVARCHAR(80),qtyINTEGER)PARTITIONINGKEY(cust_id);Customercust_idGenderSmithFBillMWoeMZoolMMaryFSalescust_idQtySmith1Smith2Smith3Zool1Zool2……02102102104096…8765432102102102104096…87654321Hash(cust_id)©2009IBMCorporation16®数据分区–目标1:保证数据跨所有分区平均分布•选择分区键·值多的字段·数据分布均匀•值少的字段导致数据不均匀·某些分区比别的分区有更多的数据·系统的性能取决于装载数据最多的分区的性能CREATETABLEcustomer(cust_idVARCHAR(80),genderCHAR(5))PARTITIONINGKEY(cust_id);part0part1part2part3datadatadatadataCREATETABLEcustomer(cust_idVARCHAR(80),genderCHAR(5))PARTITIONINGKEY(gender);part0datapart1datapart2part3好!--所有分区相同的数据量差!--某些分区装满了数据而其他的分区没有数据-不均匀©2009IBMCorporation17®数据分布–目标2:优化连接处理和并行查询•Colocation•连接匹配的数据行位于同一个分区,否则将发生跨数据分区的数据迁移(非colocated连接)•连接方法–访问路径选择•嵌套循环-Nested-loop•排序归并-Sort/merge•哈希-Hash•笛卡尔连接-Productjoin•星型连接-Starjoin•…•分区和表队列•广播-Broadcast•定向-Directed(inner/outer)•合并-Merge•例如:•Select*fromcust,saleswherecust.cust_id=sales.cust_idPartition1Partition2CUSTcust_id其他字段SALEScust_id其他字段Partition0Coordinator©2009IBMCorporation18®Colocation•概念•如果一个查询需要连接两张或多张表,collocation可以保证在分区内部连接,无需将表重新做哈希分布•否则,数据重定向将会发生•实现•如果所有连接的表•在同一个数据库分区组,且•分区键值有相同数量的字段,且•分区健字段的数据类型成对兼容•那么,具有不同表具有相同分区键的数据行将会存放在同一个数据分区©2009IBMCorporation19®Collocated连接•CUST和SALES表的分区键均定义CUST_ID字段上•连接将在每个数据库分区本地发生Partition1Partition2CUST:pk(CUST_ID)SALES:pk(CUST
本文标题:DB2_数据仓库集群设计
链接地址:https://www.777doc.com/doc-2909488 .html