DB2_数据仓库集群设计

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

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

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

资源描述

©2009IBMCorporation®1DB2数据仓库集群设计©2009IBMCorporation2®日程•不同的并行类型•硬件•软件•DB2DPF并行架构•数据库分区-Databasepartitioning•服务器分区-Serverpartitioning•IO并行•物理数据库设计•分区键-Partitioningkeys•对性能和扩展性的影响•应用并行•何时分区?©2009IBMCorporation3®目标•通过本文介绍,您将能够:•理解不同种类的并行架构•理解DB2MPP并行架构的原理•理解DB2是如何处理并行SQL的•理解并行机制是怎样影响BI架构设计的•知道何时需要进行数据库分区•了解IBMBCU©2009IBMCorporation4®从单处理器到大规模并行处理支持海量数据库扩展性所有都并行(MPP支持)集成的数据仓库/商业只能函数开放的企业级解决方案64位全面支持单处理器SMP群集MPP平台:AIXHP/UXSolarisLinuxWindowsCPUSQLCPUSQLCPUSQLCPUSQL并行交易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

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

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

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

×
保存成功