第五讲数据仓库的物理设计、部署与维护第五讲►物理设计过程物理设计步骤物理设计考虑的因素物理存储为数据仓库建立索引提高性能的技术►数据仓库部署部署的主要任务领航系统安全备份和恢复►升级与维护监视数据仓库用户培训和支持管理数据仓库§1物理设计过程►Objects明确数据仓库的物理和逻辑设计的区别研究物理设计的过程明白物理设计需要考虑的因素及其含义掌握物理设计中存储因素的角色考察数据仓库环境下的索引技术总结所有提高系统性能的方法►Contents物理设计步骤物理设计考虑的因素物理存储为数据仓库建立索引提高性能的技术►物理设计使项目组更接近于最后的实现和部署►每个物理设计的任务是将逻辑设计推向更有意义的下一步§1物理设计过程►Contents物理设计步骤物理设计考虑的因素物理存储为数据仓库建立索引提高性能的技术物理设计步骤1.建立标准2.建立聚集计划3.确定数据分区方案4.建立聚簇选项:大量数据的顺序访问5.准备索引策略6.安排存储结构7.完成物理建模数据库分区技术►分区将表分离在若干不同的表空间上,用分而治之的方法来支撑无限膨胀的大表,给大表在物理一级的可管理性。►将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。数据仓库的分区方案分区原因:事实表太大而不得不分区,有些维度表可能也很大。方案:►选择需要分区的事实表和维度表►每个表的分区类型------水平或者垂直►每个表的分区个数►表的分区准则(例如,按照产品分组)►描述查询如何知道存在分区分区例子►CREATETABLESPACEts_sale1999q1DATAFILE‘/u1/oradata/sales/sales1999_q1.dat'SIZE100MDEFAULTSTORAGE(INITIAL30mNEXT30mMINEXTENTS3PCTINCREASE0)CREATETABLESPACEts_sale1999q2DATAFILE‘/u1/oradata/sales/sales1999_q2.dat'SIZE100MDEFAULTSTORAGE(INITIAL30mNEXT30mMINEXTENTS3PCTINCREASE0)CREATETABLESPACEts_sale1999q3DATAFILE‘/u1/oradata/sales/sales1999_q3.dat'SIZE100MDEFAULTSTORAGE(INITIAL30mNEXT30mMINEXTENTS3PCTINCREASE0)CREATETABLESPACEts_sale1999q4DATAFILE‘/u1/oradata/sales/sales1999_q4.dat'SIZE100MDEFAULTSTORAGE(INITIAL30mNEXT30mMINEXTENTS3PCTINCREASE0)分区例子(cont.)►CREATETABLEsales(invoice_noNUMBER,...sale_dateDATENOTNULL)PARTITIONBYRANGE(sale_date)(PARTITIONsales1999_q1VALUESLESSTHAN(TO_DATE(‘1999-04-01','YYYY-MM-DD')TABLESPACEts_sale1999q1,PARTITIONsales1999_q2VALUESLESSTHAN(TO_DATE(‘1999-07-01','YYYY-MM-DD')TABLESPACEts_sale1999q2,PARTITIONsales1999_q3VALUESLESSTHAN(TO_DATE(‘1999-10-01','YYYY-MM-DD')TABLESPACEts_sale1999q3,PARTITIONsales1999_q4VALUESLESSTHAN(TO_DATE(‘2000-01-01','YYYY-MM-DD')TABLESPACEts_sale1999q4);§1物理设计过程►Contents物理设计步骤物理设计考虑的因素物理存储为数据仓库建立索引提高性能的技术物理设计考虑的因素►物理设计目标提高性能保证可伸缩性存储管理提供简便的管理灵活性设计物理设计考虑的因素►从逻辑模型到物理模型逻辑模型物理模型对象命名标准化改变属性数据类型为键指定合适的数据类型为属性指定约束定义外键关系考虑选择数据库管理系统有需要的时候就增加注释物理模型意味着信息内容更加的接近硬件层物理设计考虑的因素►物理模型的组成方案子方案定义表列同义词视图注释用户角色主键外键约束索引安全特权文件/表空间数据仓库:物理模型组件CREATESCHEMAORDER_ANALYSISAUTHORIZATIONSAMUEL_JOHNSON……………………………….CREATETABLEPRODUCT(PRODUCT_KEYCHARACTER(8)PRIMARYKEY,PRODUCT_NAMECHARACTER(25),PRODUCT_SKUCHARACTER(20),PRODUCT_BRANDCHARACTER(25),CREATETABLESALESPERSON(SALPERS_KEYCHARACTER(8)PRIMARYKEY,SALPERS_NAMECHARACTER(30),TERRITORYCHARACTER(20),REGIONCHARACTER(20))CREATETABLEORDER_FACT(PRODUCT_REFCHARACTER(8)PRIMARYKEY,SALPERS_REFCHARACTER(8),PRIMARYKEY,ORDER_AMOUNTNUMERIC(8.2),ORDER_COSTNUMERIC(8.2),FOREIGNKEYPRODUCT_REFREFERENCESPRODUCT,FOREIGNKEYSALPERS_REFREFERENCESSALESPERSON)SQL描述的示例方案逻辑模型产品键名子SKU品牌产品销售代表键姓名区域地区订单键订单数量成本订单事实表逻辑模型名称类型为空注释产品表产品维表包括公司所有的产品Product_keyIntegerN主键Product_nameChar(25)N产品的销售名称Product_skuChar(20)N源系统的库存单位Product_brandChar(25)N销售中的产品品牌销售人员表包括不同地区的所有销售人员信息Salpers_keyIntegerN主键Salpers_nameChar(30)N销售人员正式姓名TerritoryChar(20)N销售人员所在区域RegionChar(20)N销售区域包括的地区订单事实表事实表包括公司收到的所有订单Product_refIntegerN局部主键,参考产品局部主键表的外键Salpers_refIntegerN局部主键,参考销售代表维度表的外键Order_amountNum(8,2)N以美元计的销售额Order_costNum(8,2)N以美元计的订单成本逻辑模型及物理模型物理设计考虑的因素►标准的意义数据库对象的命名►对象组件命名customer_loan_balance►单词分界符►逻辑模型和物理模型的命名准备区域文件和表名称定义►标志进程►表明目的►示例:product_full_refresh,customer_daily_update…物理文件命名规范►保存源代码和脚本的文件►数据库文件►应用程序文档§1物理设计过程►Contents物理设计步骤物理设计考虑的因素物理存储为数据仓库建立索引提高性能的技术物理存储►存储区数据结构数据准备区数据仓库存储区OLAP系统以专用矩阵格式存储的多维数据立方体物理文件关系数据库数据文件(转换过的数据)关系数据库索引文件装载映像文件关系数据库索引文件己分区的物理文件细节数据和简单汇总数据抽取平面文件关系数据库数据文件(仓库数据)物理存储►优化存储块:数据库的数据和内存之间I/O传输的基本单位设定正确的块大小设置合适的块使用参数►块空闲率►块使用率数据迁移管理块使用管理采用文件分带技术:可使I/O并发进行物理存储►使用RAID技术RedundantArrayofIndependentDisk:廉价冗余磁盘阵列(独立磁盘冗余阵列)►安全性高,速度快,数据容量超大磁盘镜像------将相同的数据写入连接到相同控制器的两个磁盘中双磁盘------和磁盘镜像类似,不同的是每个驱动器有自己单独的控制器奇偶校验------为数据加入校验位以保证数据传输可靠磁盘分带------数据按扇区或者字节分布在多个磁盘上RAID0高性能、低成本、单磁盘损坏导致整个磁盘阵列无法使用数据带状分布在多个磁盘上,没有冗余RAID1可读性能和可靠性高,因为数据复制,所以昂贵磁盘镜像,数据写入成对的冗余驱动器RAID2高性能,纠一位错,两位检错,代价昂贵数据按位或者块交错分布在磁盘上,额外的驱动器存储校验码RAID3对大块数据性能较高,不支持运行时恢复数据按位或块交错存储,有一个驱动器存储校验数据RAID4可以处理多个复杂操作系统中的I/0操作,只用两个驱动器数据记录按扇区交错存储,有一个专门驱动器存储校验数据RAID5不需要专门的校验驱动器,需要两个或三个驱动器,写能力较弱数据扇区交错存储于多个驱动器,非常流行RAID技术物理存储►估计存储容量1.对每个数据表,确定行数的初始估计行的平均长度估计行的每月增长数表的初始大小,以兆字节(MB)计算表6个月和12月的大小2.对所有表,确定索引的个数索引在,最初,6个月和12个月后需要的空间3.估计排序、合并需要的临时空间准备区内的临时文件准备区内的长久文件§1物理设计过程►Contents物理设计步骤物理设计考虑的因素物理存储为数据仓库建立索引提高性能的技术为数据仓库建立索引►索引一览索引和加载建立大表的索引选择索引的列一种分阶段的方法为数据仓库建立索引►B-Tree索引►位图索引►簇索引►为事实表建立索引►为维度表建立索引为数据仓库建立索引►B-Tree索引A---KL---ZA---DE---GH---KALLENBUSHCLYNEDUNNEENGELFARISGOREHAIGIGNARJONESKUMARLOEWEMAHERNIXONOTTOPAINEQUINNRAJSEGELTOTOVETRIWILLSL---OP---RS---ZENGEL------地址FARIS------地址GORE------地址指向数据行的指针地址或行号日期产品地区颜色销售量00001BFF.0012.011115-Nov-00洗碗机东白30000001BFF.0013.011415-Nov-00干洗机西杏黄45000001BFF.0012.011516-Nov-00洗碗机西杏黄35000001BFF.0012.013816-Nov-00洗衣机北黑55000001BFF.0012.014517-Nov-00洗衣机南白50000001BFF.0012.015717-Nov-00干洗机东白40000001BFF.0014.016517-Nov-00洗衣机南杏黄575销售数据抽取产品列排序位图索引颜色排序位图索引地域排序位图索引洗衣机、干洗机、洗碗机白色、杏黄色、黑色东、西、北、南地址或行号位00001BFF.0012.011100100001BFF.0013.011401000001BFF.0012.011500100001BFF.0012.013810000001BFF.0012.014510000001BFF.0012.015701000001BFF.0014.0165100地址或行号位00001BFF.0012.011110000001BFF.0013.011401000001BFF.0012.011501000001BF