Oracle 数据库的海量数据处理

daoqqluo

贡献于2012-08-07

字数:0 关键词: Oracle 数据库服务器

Oracle数据库的海量数据处理 Ford Feng 冯明磊 Sales Consultant, Tech Agenda • 数据仓库系统的特点 • Oracle 数据仓库简介 • 使用Oracle 数据仓库管理海量数据 • Oracle Database Machine,硬件级数据仓库支持 Agenda • 数据仓库系统的特点 • Oracle 数据仓库简介 • 使用Oracle 数据仓库管理海量数据 • Oracle Database Machine,硬件级数据仓库支持 什么是数据仓库? • “数据仓库(Data Warehouse)通常是一个面向主题的、集成 的、随时间变化的、但信息本身相对稳定的数据集合,它用于 对管理决策过程的支持” • 面向主题(Subject-Oriented) • 集成的(Integrated) • 随时间变化(Time-Variant) • 不变动性(Nonvolatile) * ... approximately 768,000 hits on google.com ... • 处理历史数据 • 大部分都是庞大的数据量 • 数据仓库操作通常需要众多的资源 • 同时访问很多的表 • 执行昂贵的计算 • 复杂的 SQL语句 • 查询会长时间运行 (可能会几个小时) • 数据仓库的应用通常是被周期和流程化调用 • 抽取, 转换, 和加载 (ETL) • 通常包含多个数据源, 其中包括平面文件 • 支持不同的预先定义的工作负载 比如. • 计划ETL • 计划报表 • 最终用户在工作时间执行即席查询 • 不同模式的系统高峰负载出现在不同的时间 • 系统的硬件配置应考虑到不同模式的高峰负载 数据仓库系统的特点 Agenda • 数据仓库系统的特点 • Oracle 数据仓库简介 • 使用Oracle 数据仓库管理海量数据 • Oracle Database Machine,硬件级数据仓库支持 Oracle 数据仓库的发展… • 数据仓库的开发从Oracle 7.0就开始了 • 主要侧重于性能和扩展性 • 在Oracle8i 中增加了可管理性和对BI 的支持 • 满足数据仓库的需求 • 高效的ETL功能 • 管理大数据量 • 管理各种用户请求 • 查询的快速响应 • 支持大量用户并发 • 易于使用,易于管理 • 无需特殊培训,统一管理界面 Oracle 7.3Oracle 7.3 z Partitioned Tables and Indexes z Partition Pruning z Parallel Index Scans z Parallel Insert, Update, Delete z Parallel Bitmap Star Query z Parallel ANALYZE z Parallel Constraint Enabling z Server Managed Backup/Recovery z Point-in-Time Recovery z Partitioned Tables and Indexes z Partition Pruning z Parallel Index Scans z Parallel Insert, Update, Delete z Parallel Bitmap Star Query z Parallel ANALYZE z Parallel Constraint Enabling z Server Managed Backup/Recovery z Point-in-Time Recovery Oracle 8.0Oracle 8.0 z Hash and Composite Partitioning z Resource Manager z Progress Monitor z Adaptive Parallel Query z Server-based Analytic Functions z Materialized Views z Transportable Tablespaces z Direct Loader API z Functional Indexes z Partition-wise Joins z Security Enhancements z Hash and Composite Partitioning z Resource Manager z Progress Monitor z Adaptive Parallel Query z Server-based Analytic Functions z Materialized Views z Transportable Tablespaces z Direct Loader API z Functional Indexes z Partition-wise Joins z Security Enhancements Oracle9iOracle9i z List and Range-List Partitioning z Table Compression z Bitmap Join Index z Self-Tuning Runtime Memory z New Analytic Functions z Grouping Sets z External Tables z MERGE z Multi-Table Insert z Proactive Query Governing z System Managed Undo z List and Range-List Partitioning z Table Compression z Bitmap Join Index z Self-Tuning Runtime Memory z New Analytic Functions z Grouping Sets z External Tables z MERGE z Multi-Table Insert z Proactive Query Governing z System Managed Undo Oracle8iOracle8i Oracle10gOracle10g z SQL Access Advisor z Automatic Storage Manager z Self-tuning Memory z Change Data Capture z SQL Models z SQL Frequent Itemsets z SQL Partition Outer Joins z Statistical functions z Faster sort/aggregation z Multi-dimensional part. pruning z and much more ... z SQL Access Advisor z Automatic Storage Manager z Self-tuning Memory z Change Data Capture z SQL Models z SQL Frequent Itemsets z SQL Partition Outer Joins z Statistical functions z Faster sort/aggregation z Multi-dimensional part. pruning z and much more ... Oracle 数据仓库的发展 不断创新 Oracle 数据仓库的发展 Oracle 11g新特性 • Oracle Warehouse Builder • 基本数据库特性 • 企业级ELT选项 • 数据质量选项 • 连接器选项 • 基于OLAP的物化视图及查询重写 • 增强的分区功能,数据压缩技术和并行技术 • 集成的分析处理技术,数据挖掘技术和信息统计技术 • …… 数据仓库市场的领导者 Teradata 5.9% SAS 5.6% Other 5.2% IBM 31.0% Microsoft 16.5% Oracle 35.8% rehousing Tools 2004-2008 Forecast Source: IDC, Worldwide Data Wa The market share of Oracle grows up to nearly 40% in 2007. —Gartner, 2008 Oracle 数据仓库在不断地增长 Yahoo! Oracle 100.39 AT&T Daytona 93.88 KT-IT Group DB2 49.40 AT&T Daytona 26.71 LGR - Cingular Oracle 25.20 Amazon.com Oracle 24.77 Anonymous DB2 19.65 UPSS Microsoft 19.47 Amazon.com Oracle 18.56 Nielsen Media Sybase IQ 17.69 2005 Survey France Telecom Oracle 29.23 AT&T Proprietary 26.27 SBC Teradata 24.81 Anonymous DB2 16.19 Amazon.com Oracle 13.00 Kmart Teradata 12.59 Claria Oracle 12.10 HIRA Sybase IQ 11.94 FedEx Teradata 9.98 Vodafone Gmbh Teradata 9.91 2003 Survey Source: http://www.wintercorp.com Sears Teradata 4.63 HCIA Informix 4.50 Wal-Mart Teradata 4.42 Tele Danmark DB2 2.84 Citicorp DB2 2.47 MCI Informix 1.88 NDC Health Oracle 1.85 Sprint Teradata 1.30 Ford Oracle 1.20 Acxiom Oracle 1.13 1998 Survey Oracle 数据仓库的开放性强 零售 电信 金融 CPG/交通/能源 制造 Oracle是目前唯一在所有开放平台上 都有TB级案例的厂商! Oracle数据仓库在中国的部分用户 通信 • 福建电信 • 新疆电信 • 海南电信 • 昆明电信 • 长沙电信 • 深圳电信 • 江苏移动 • 宁夏移动 • 黑龙江移动 • 吉林移动 • 辽宁移动 • 山东网通 • 天津网通 • 重庆联通 • 四川联通 • 甘肃联通 政府 • 济南市地方税 务局 • 浙江社保 • 重庆社保 • 江西省政府 • 国家统计局 • 北京市交管局 • 浙江公安 • 中科院 • 江苏统计局 • 中国电子商务 中心 • 香港贸易发展 局 • 香港运输署 • 香港海关 • 香港理工大学 • 陕西联通 • 青海联通 • 中国网通 • 天津移动 • 河南移动 • 宁夏移动 • 中国联通 • 北京联通 • 浙江联通 • 吉林联通 • 黑龙江联通 • 内蒙古联通 • 辽宁联通 • 天津联通 • 广东联通 • 福建联通 • 江西联通 Agenda • 数据仓库系统的特点 • Oracle 数据仓库简介 • 使用Oracle 数据仓库管理海量数据 • Oracle Database Machine,硬件级数据仓库支持 管理海量数据 • 分区 (Partitioning) 操作更灵活,性能及可靠性更高 • 并行操作 自动的并行优化,操作更高效 • 位图索引及位图连接索引 更小的空间,更高的性能,更多的索引字段 • 物化视图 查询重写,查询更加高效,对应用透明 • 表压缩 节约存储空间,性能不受损失 • RAC 真正应用集群 高可扩展,高可用,高性能,低成本 分区是 • 在逻辑上将大对象拆分成小部分 • 由业务需求决定 • 在大数据量时使用 分区不是 • 为支持特殊的软/硬件设计 • 在 shared nothing 系统中必须要用 也是一种在物理上将大数据分成小部分的方法 什么是分区? 分区(Partitioning) 大表 管理维护困难 数据分区 分而治之 方便管理 提高性能 组合分区 更好的性能 更灵活地满足业务需求 JAN FEB ORDERS JAN FEB USA EUROPEORDERS ORDERS 对应用完全透明 08-May 08-Apr 08-Feb 08-Jan 08-Mar 08-Jun Sales SELECT sum(sales_amount) FROM sales WHERE sales_date BETWEEN ‘01-MAR-2008’ AND ‘31-MAY-2008’; • 只有相关的分区被访问到 • 优化器知道或发现相关分区 • 如果值一定,可以静态切割 • 动态切割使用内部回归算法发现相关分区 • 最小化I/O 操作 • 性能可以成倍提高 • 数据量增加,响应时间不变 分区 – 高性能 分区切割,分区忽略 order table may08jan08 feb08 mar08 apr08 • 并行查询 08-FEB, 08-MAR, 和 08-APR 的数据 • 08-JAN 和 08-FEB 数据只读 • 同时恢复 08-MAY 数据 分区 – 高可用 select sum(revenue), store from line_items Where profit(price,units) > 0.2 order by store cost 数据 Query Servers scanscan scanscan scanscan sort Asort A--KK sort Lsort L--S S sort Tsort T--ZZ 分派工作分派工作;; 汇总结果汇总结果 Scanners Sorters (Aggregators) Coordinator 动态和可伸缩的并行执行 六个并发查询 每个查询都被分配到一 个节点,并被分成4份 Node 1 Node 2 Node 3 12121212 34343434 56565656 Node 1 Node 2 Node 3 两个并发查询 每个查询由所有的节点 提供服务,并被分成12 份 12121212 12121212 12121212 Oracle并行查询 自动并行优化 DOP 2 DOP 2 Total 200 MB/sec • I/O 带宽需要随着单进程的并行和 多用户的并发操作而不断增加 • 系统的I/O吞吐量,是基于平均的并 发用户数和并行度计算出来的 通过并行实现I/O扩展 Total 800 MB/sec DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 • I/O 带宽需要随着单进程的并行和 多用户的并发操作而不断增加 • 系统的I/O吞吐量,是基于平均的并 发用户数和并行度计算出来的 通过并行实现I/O扩展 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 Total 1600 MB/sec DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 DOP 8 • I/O 带宽需要随着单进程的并行和 多用户的并发操作而不断增加 • 系统的I/O吞吐量,是基于平均的并 发用户数和并行度计算出来的 通过并行实现I/O扩展 位图索引(Bitmap Indexes) • 在Oracle DW 中最常用的一种索引 • 位图索引从Oracle 7.3 开始有 • 位图连接索引从 Oracle9i 开始有 • Oracle 拥有超过十二项位图索引技术的专利 • Oracle 提供位图索引上专有的压缩技术 • 位图索引比B树索引小 3-20 倍 • 更少的存储,更好的性能,更多的索引字段 • 位图连接索引(Bitmap Join Index) • 基于多表连接 • 消除查询中的连接操作 • 使用更少的空间 获取数据更加快速 基于位图索引的查询举例 Customer # M-Status State Gender 101 Single PA M 102 Married CA F 103 Divorced OH M 104 Married MA M 查询所有结婚的并且住在California的女客户 Customer # MarriedMarried CACA Female Female ResultResult 101 0 0 0 0 102 11 11 11 1 103 0 0 0 0 104 11 00 0 获取数据更加快速 基于位图索引的查询举例 查询所有结婚的并且住在California的女客户 对多维结构的高效支持 y 创新地使用位图索引和位图连 接索引 y 支持复杂的星型模型 – 大量的维度 – 多个事实表(Fact-Table) – 雪花模型(Snowflake-Schema) y 并行执行 y 成熟的分区技术 星型查询支持 SELECT retailer.district, time.quarter, SUM(sales.dollar_sales) FROM sales s, retailer r, time t, product p WHERE s.dealer_key = r.retailer_key AND retailer.district = ‘WEST’ AND s.time_key = t.time_key AND time.quarter IN (‘3Q96’, ‘4Q96’) AND s.product_key = p.product_key AND product.category = ‘Girls fashion’ GROUP BY retailer.district, time.quarter; Time Sales Retail Product Sample Query 获取数据更加快速 星型查询 –举例 • 识别查询可以利用Oracle 的星型查询算法 • 进行查询转换,选择索引/连接技术 SELECT …FROM sales WHERE retailer_key IN (SELECT retailer_key FROM retailler WHERE retailer_district = ‘WEST’) AND time_key IN (SELECT time_key FROM time WHERE quarter IN (‘3Q96’, ‘4Q96’)) AND product_key IN (SELECT product_key FROM products WHERE category = ‘Girls fashion’);; Query Transformation 获取数据更加快速 星型查询 --查询转换 • 这个查询可以充分利用位图索引 • 星型查询性能的关键是在与对事实表的高效访问 • 准确获得所需的事实表记录 • 在实际中,IN列表可能不是如上所示 SELECT …FROM sales WHERE retailer_key IN (2, 5, 7, ...) AND time_key IN (‘01-JUL-96’ … ‘31-DEC-96’) AND product_key IN (46, 52, 81, 92, …); The Resulting Query 获取数据更加快速 星型查询 – 最终执行的查询 物化视图 • 单独的数据库对象 • “Summary table” • 预先计算并保存表连接或聚集等耗时较多的操作的结果 • 支持透明的查询重写 • 无需更改对基表进行查询的语句 • 支持Join-backs, additional aggregations • 支持增量快速刷新 • 基于查询定义 • 可基于分区进行刷新 Materialized Views 以地区为单位的 平均销售额 以产品为单位的 季度销售额以地区为单位的 季度销售额 查询 在过去三个季 度里西部和南 部地区的销售 额是多少? 详细数据详细数据 物化视图 Materialized Views 查询 重写 表压缩 • 表可以被压缩 • 可以对指定分区进行压缩 • 索引也可以被压缩 • 一般可以达到3:1 到 5:1的压缩比 • 压缩取决与实际数据 • 压缩算法基于数据冗余 • 主要是节省成本 • 节省TB级存储空间,无须损失性能和功能 • 缓解磁盘I/O瓶颈 • 性能可能会提高 • 完全对应用透明 Up To 3XCompression 表压缩: 性能影响 • 在压缩表上的查询性能,和在没有压缩表上的基本一 样 • 性能影响取决与查询脚本 • 压缩可以减少IO 吞吐,但是增加CUP 使用 • 很多查询会更快 • 对于批量查询,性能降低不会超过 5% • 加载和 direct-path 插入性能会下降 • 当加入到表中的时候,数据必须先被压缩 • 例如: TPC-H 基准测试 • 注: 这是非官方的TPC-H 结果 • 基于300 GB HP (Compaq) 配置: • 不压缩的结果: 5976 • 压缩的结果: 5957 • 压缩后带来0.3% 的影响 • 单个查询性能影响达到 +/- 15% 表压缩: 性能影响 • 数据仓库包含大量的历史数据 • 压缩所有老的数据 • 在“滚动窗口”中使用压缩 • 例如, 最近3个月的数据不要压缩,3个月之前的21个月的数据压缩 • 物化视图和源数据集 • 通常,压缩用于那些不常改变的数据 表压缩: 适用场景 RAC 真正应用集群 可伸缩性和高可靠性的保证 集群的数据库服务器 镜象磁盘系统 高速 Switch 或 Interconnect Hub 或 Switch 网络 中央控制台 Drive and Exploit Industry Advances in Clustering 用户 没有单点故障低延迟的内部互连 存储网络 (Storage Area Network) Shared CacheShared Cache RAC 真正应用集群 增加节点,增加处理能力 • 增加节点,增加 I/O 带宽 • 增加节点,增加处理能力(CPU, 内存) • 自动负载均衡,不需要数据重构 MemoryMemory MemoryMemory MemoryMemory ++ MemoryMemory Data Warehouse – 变化的负载 • ETL服务器非常忙 • 数据库中等负载 • 没有负载运行在前端的最终用户分析服务器 DB End ETL user tool 11:00 PM ETL DB End user tool Data Warehouse – 变化的负载 • 没有负载在ETL 服务器 • 数据库中等负载 • 计划的报表 • 汇总和潜在的数据集市维护 • 没有负载运行在前端的最终用户分析服务器 DB End user toolETL 3:00 AM ETL DB End user tool Data Warehouse –变化的负载 • 没有负载在ETL 服务器 • 数据库中等负载 • 前端的最终用户分析服务器非常忙 DB End user toolETL 9:00 AM ETL DB End user tool Analytic Server 传统Data Warehouse –配置必须满足峰值需 求 • 每个服务器的最大峰值需求 来用做每个系统的硬件配置 • ETL 服务器必须处理最大的ETL负载 • Database服务器必须处理和满足ETL 负载和 最终用户的查询需求 • 必须满足混合的负载需求 • BI分析服务器必须处理和满足最多的最终用户的分析需求 • 这些系统的需求和负载是随着不同时段而变化的 DB ETLETL DB BI分析服务器 RAC 真正应用集群 充分发挥和利用硬件投资 • 最大的系统混合负载 来用做系统硬件配置 • Workload max total < Σ Workload max components • 负载可以均分到各个RAC节点 ETL + DB + Analytic Server • DW提交的非常大的查询利用集群里所有资源 • 充分利用所有节点 • 将查询分配到各个节点 Large Query RAC 真正应用集群 动态和可伸缩的并行执行 • 很多大型数据仓库会同时执行很多作业 • 多个“小到中等” 查询 • 并行度 < CPUs/每节点 • Oracle的优化策略, 会将查询自动运行在单个节点, 减少 节点间的大量的数据传输 Q1 Q2 Q4Q3 Q5 Q7Q6 Q8 Q9 Q12Q11Q10 RAC 真正应用集群 动态和可伸缩的并行执行 Agenda • 数据仓库系统的特点 • Oracle 数据仓库简介 • 使用Oracle 数据仓库管理海量数据 • Oracle Database Machine,硬件级数据仓库支持 Oracle Database Machine • 专门针对数据仓库设计和优化 • 极其强大的性能 • 更多的并行查询,更高的效率,更短的响应时间 • 优秀的可扩展性 • 可简单的通过添 加更多的机器进行 扩展 • 企业级的配置 • 完整的解决方 案,HP的硬件, Oracle的软件 Oracle Database Machine • 单柜最高支持14TB(SAS)或者46TB(SATA)存储 • I/O能力可达14GB/s(SAS)或者10.5GB/s(SATA) • 比现有数据仓库服务器性能提高10X • 对比同类厂商更低的价格 • 价格优势(单位美元/TB) • Exadata Storage Server 14000 • Teradata 35000 • Netezza 29000 Oracle Database Machine 来自用户的测试结果 • M-Tel • 当前使用2台IBM P570s,EMC CX-30存储,4.5TB通话记录 • 性能提升10X至72X,平均提升28X • LGR Telecommunications • 当前使用HP Superdome,XP2400存储,220T通话记录 • 将以前需要超过30分钟的查询缩短至1分钟以内 • Giant Eagle • 当前使用IBM P570(13CPU),EMC CLARiiON和DMX存储, 5TB零售数据 • 性能提升3X至50X,平均16X • CME Group • 性能提升10X至15X

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档

相关文档