Oracle的海量存储技术

来源:互联网 发布:哪个软件人脉最多 编辑:程序博客网 时间:2024/06/06 04:58

 

下午去参加一个Oracle有关海量数据存储技术的培训讲座了。

地址在广州市林和西路101号天河区计经大楼西侧三楼。

培训发起机构为:广州中睿信息技术有限公司。

 

下面就简要总结一下所听到的一些东西,也算是学到的这些技术。不过有的东西不知道总结的对不对,暂且囫囵吞枣吧。

 

Oracle的存储技术

大体上分为两种,一种是合的技术,一种是分的技术。合的技术即将各个分层存储的数据整合在一起。分的技术即将数据分布式存储,也即到处存储。

 

Oracle中采用了高可用性技术,在数据库的存储和优化方面涉及到如下的一些技术和技巧:

1)  分布式技术

2)  Cache技术

3)  Search技术

4)  数据库的范式设计

5)  数据库的OLTPOLAP技术

6)  数据库SQL并行执行

 

有关数据的存储问题,有如下两个案例:

eBay是世界领先的电子商务服务商,它的海量数据存储方案其实采用的是读写剥离技巧。

如下图所示:

 

 

 

 

 

如上图所示,数据库写操作和读操作物理上分离开来,当写操作执行后,数据库Share Plex就多了一些写操作的记录,然后将更新的数据通知存储PC机。而读操作时,基于海量数据的负载均衡设备就通知那些存储机,读数据。

 

Google的解决方案是:它采用自己的Google File System来存储文件,由BigTable来实现高速存储于查找,创建在GFS上,化整为零,分布在多台PC上,而这些PC机是容易更换的。

 

Oracle的数据库应用分类中,应用操作分两类,一类是基于响应时间,并发性操作处理等考虑的OLTP,另一类是基于吞吐量,管理分析等考虑的的OLAP

 

海量数据的处理思路:海量数据的导入导出的最快思想史数据库数据导出成File形式,然后由File导入到另外一个数据库中,常用的技术为Load技术。如OracleSQL Loader工具,这款工具可以将其他应用程序导入到Oracle数据库中,并不一定是从Oracle导入到Oracle的数据库中。

 

Oracle的应用解决方案中,它常用的大数据量处理技术有:SQL Loader工具,外部表,OCI和直接路径API,导入/导出,多表插入与合并,表函数,表空间传输技术。如有exp/imp、数据泵技术。下面详细介绍一下这些技术。

 

SQL Loader是将外部数据加载到Oracle数据库中,它包含一个功能十分强大的数据分析引擎,该引擎对数据文件中数据的格式几乎没有限制。

 

直接装载法是直接加载插入可用于在同一数据库中从一个表向另一个表复制数据,此方法是直接绕过数据库缓存。

 

使用外部表装载数据,是先创建目录并授权,然后创建一个外部表,这个方法用得常见了。

 

Oracle还支持多表插入技术。可将数据插入到多个目标表中,或根据特殊的业务转换规则,将数据插入多个可能的目标表中的一个。这种技术特别有助于数据的插入。海量数据有时候需要分别插入到多个表中,或者按条件插入,这种技术是很管用的。参考OracleInsert all语法。

 

Merge功能,海量数据还有一个需求,要求有Merge功能,这种需求来源于两笔数据需要进行合并操作。OracleMerge功能会将有差异的表更新数据,缺少的记录插入到表中。

 

表函数,也称为管道表,管道函数。在ETL处理中,数据在被装载到数据仓库之前,通常需要经过一系列的转换,复杂的转换通常在数据库外部或者内部,以过程的方式实现,如存储过程,oracle 9i提供了管道和并行执行的方式,实现复杂的转换,无需中间存储表。

 

可移动表空间。为了将数据从一个数据库移动到另一个数据库中,采用移动表空间的技术是非常好的。直接复制操作系统文件,不需要作数据的卸载和装载,Oracle 9i内保证相同数据块大小的限制被消除,数据泵等工具来实现。这种工具可跨平台实现。“表空间交换分区”???

 

实体化视图(物化视图)

Oracle在下列三种情况使用物化视图:

1)  决策支持或者数据仓库,含聚集操作的本地MV

2)  分布式处理时,含DBLink的分布式MV

3)  移动计算领域中。

 

 

流复制技术

这种技术是未来数据传输的趋势。数据库操作中流行一句话:能不用游标的不用游标,能不用触发器的不用触发器。在9i中有高级复制功能与此相似,在10g中则真正实现了流复制技术,它是基于传输日志文件到外部系统,而不是传输大量数据到外部系统,来与外部系统保持数据的一致性的。

 

整个培训讲座就讲这么多,过多技术,我也不便在此总述,先自己想好好研究一下数据库的这些知识。有的需要总结,有的需要新学。