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

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

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

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

Oracle的存储技术

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

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

1)  分布式技术

2)  Cache技术

3)  Search技术

4)  数据库的范式设计

5)  数据库的OLTP与OLAP技术

6)  数据库SQL并行运行

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

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

例如以下图所看到的:

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

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

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

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

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

SQL Loader是将外部数据载入到Oracle数据库中,它包括一个功能十分强大的数据分析引擎,该引擎对数据文件里数据的格式差点儿没有限制。

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

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

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

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

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

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

实体化视图(物化视图)

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

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

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

3)  移动计算领域中。

流复制技术

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

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

Oracle的海量存储技术的更多相关文章

  1. 网络存储技术介绍(2) ( based on zt)

    http://www.educity.cn/tx/429084.html 互联网技术DAS.NAS和SAN存储方案的比较 按照设备位置和接入方式,磁盘存储可以分为内置存储和外挂存储,外挂存储又分为直连 ...

  2. 网络存储技术介绍(1) ( based on zt)

    最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一.  网络存储技术 http://ask.zol.com.cn/q/187044.html  (yxr:很老的技术介绍吧) 网络 ...

  3. 一种基于HBase韵海量图片存储技术

    针对海量图片存储,已有若干个基于Hadoop的方案被设计出来.这些方案在系统层小文件合并.全局名字空间以及通用性方面存在不足.本文基于HBase提出了一种海量图片存储技术,成功解决了上述问题.本文将介 ...

  4. 吓哭原生App的HTML5离线存储技术,却出乎意料的容易!【低调转载】

    吓哭原生App的HTML5离线存储技术,却出乎意料的容易![WeX5低调转载] 2015-11-16 lakb248 起步软件 近几天,WeX5小编编跟部分移动应用从业人士聊了聊,很多已经准备好全面拥 ...

  5. Android实现数据存储技术

    转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...

  6. Facebook存储技术方案:找出“暖性BLOB”数据

    Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...

  7. 明晰三种常见存储技术:DAS、SAN和NAS

    随着企业网络应用的时间和应用的数据量的加大,企业已经感觉到存储容量和性能落后与网络的应用发展需求,特别是流媒体企业,在这种应用条件下满足用户的存储需求的技术应用诞生,DAS.NAS和SAN三种存储技术 ...

  8. Android数据存储技术

    Android提供了4种数据存储技术,分别是SharedPreferences.Files.SQLite数据库和网络存储数据.(有的开发者认为使用ContentProvider也可以算是一种,但我觉得 ...

  9. 如何评估oracle AWR 的在oracle 中的存储情况

    如何评估oracle AWR 的在oracle 中的存储情况 如果把awr保存时间从默认的7天修改为30天,采样时间从1小时修改到更短,修改之后如何预估空间占用? ------------------ ...

随机推荐

  1. Codeforces Round #296 (Div. 2) A B C D

    A:模拟辗转相除法时记录答案 B:3种情况:能降低2,能降低1.不能降低分别考虑清楚 C:利用一个set和一个multiset,把行列分开考虑.利用set自带的排序和查询.每次把对应的块拿出来分成两块 ...

  2. scala akka 修炼之路5(scala特质应用场景分析)

    scala中特质定义:包括一些字段,行为(方法/函数/动作)和一些未实现的功能接口的集合,能够方便的实现扩展或混入到已有类或抽象类中. scala中特质(trait)是一个非常实用的特性,在程序设计中 ...

  3. HDOJ 2736 Surprising Strings

    Surprising Strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  4. umlの实现图

    在uml中大部分模型描写叙述了逻辑和设计方面的信息: 用例图知道期望 类图能够知道问题域的词汇(类.对象) 状态图.交互图和活动图能够知道类图中的词汇是怎样写作完毕行为的(逻辑结构) 实现图是用来描写 ...

  5. hdu3804(树链剖分)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3804 题意:给定一棵n个结点的树及边权,回答m个询问(x,y)满足以下条件的边权: 1)该边在结点1~ ...

  6. 用java代码实现环圈报数

    环圈报数就是围一圈人,每一次数数数到三的人自动出圈,再接着数, 用数据结构的思想实现 public class Count3Quit {     public static void main(Str ...

  7. Shell 脚本常用命令

    Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1           Shell中的特殊符号 ...

  8. 一个linux常见命令的列表

    这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命 ...

  9. 怎样从host之外连接到docker container

    启动docker的时候的指令使用 sudo docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d & 这样就能使dock ...

  10. pygame系列_箭刺Elephant游戏

    这个游戏原名为:Chimp,我们可以到: http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html 获取到源码和详细的源码讲解 下面是我对游戏 ...