Oracle的海量存储技术
下午去參加一个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的海量存储技术的更多相关文章
- 网络存储技术介绍(2) ( based on zt)
http://www.educity.cn/tx/429084.html 互联网技术DAS.NAS和SAN存储方案的比较 按照设备位置和接入方式,磁盘存储可以分为内置存储和外挂存储,外挂存储又分为直连 ...
- 网络存储技术介绍(1) ( based on zt)
最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一. 网络存储技术 http://ask.zol.com.cn/q/187044.html (yxr:很老的技术介绍吧) 网络 ...
- 一种基于HBase韵海量图片存储技术
针对海量图片存储,已有若干个基于Hadoop的方案被设计出来.这些方案在系统层小文件合并.全局名字空间以及通用性方面存在不足.本文基于HBase提出了一种海量图片存储技术,成功解决了上述问题.本文将介 ...
- 吓哭原生App的HTML5离线存储技术,却出乎意料的容易!【低调转载】
吓哭原生App的HTML5离线存储技术,却出乎意料的容易![WeX5低调转载] 2015-11-16 lakb248 起步软件 近几天,WeX5小编编跟部分移动应用从业人士聊了聊,很多已经准备好全面拥 ...
- Android实现数据存储技术
转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...
- Facebook存储技术方案:找出“暖性BLOB”数据
Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...
- 明晰三种常见存储技术:DAS、SAN和NAS
随着企业网络应用的时间和应用的数据量的加大,企业已经感觉到存储容量和性能落后与网络的应用发展需求,特别是流媒体企业,在这种应用条件下满足用户的存储需求的技术应用诞生,DAS.NAS和SAN三种存储技术 ...
- Android数据存储技术
Android提供了4种数据存储技术,分别是SharedPreferences.Files.SQLite数据库和网络存储数据.(有的开发者认为使用ContentProvider也可以算是一种,但我觉得 ...
- 如何评估oracle AWR 的在oracle 中的存储情况
如何评估oracle AWR 的在oracle 中的存储情况 如果把awr保存时间从默认的7天修改为30天,采样时间从1小时修改到更短,修改之后如何预估空间占用? ------------------ ...
随机推荐
- Java---25---集合框架共性方法
集合类 为什么会出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便对较多个对象的操作,就对对象进行存储,集合就是存储对象最经常使用的一种方式 数组和集合类同一时候容器,有何不同? 数组 ...
- ipsec vpn私网数据大量掉包问题
周四出现了一个很奇葩的问题,所有的站点的VPN通信都是正常的,唯独郑州节点和中心节点的私网数据长ping掉包量达到20%左右,在中心节点ping郑州节点公网IP没有发现掉包问题,故障排除如下: 1.测 ...
- Python的TkinterButton做为父窗口
#-*-coding:utf--*- import Tkinter,time,tkMessageBox,sys,BeBigModule class MainFrame: def __init__(se ...
- TF卡分区
http://bbs.gfan.com/android-5176910-1-1.html http://www.miui.com/thread-2302600-1-1.html http://www. ...
- IOS 与ANDROID框架及应用开发模式对照一
IOS 和ANDROID操作系统都是眼下流行的移动操作系统,被移动终端和智能设备大量採用,两者都採用了先进的软件技术进行设计,为了方便应用开发两者都採用了先进的设计模式. 两者在框架设计上都採用了什么 ...
- Cocos2d-x发展---更改父的颜色、透明度的子节点上
标题手段:当我们改变父节点或透明时的颜色.默认是不会影响孩子的节点. 作为交换组看到朋友说可以通过设置相关的参数变化的子节点来实现属性的效果,看了看源代码,记录下来: 引擎版本号为:2. ...
- C#之异步编程
1 异步编程的重要性 C#5.0最重要的改进是提供了更强大的异步编程,C#5.0仅增加两个关键字Async和Await,使用异步编程,方法调用是后台运行(通常在线程和任务的帮助下),并且不会阻塞调用线 ...
- 安装Python和pip
windows下面安装Python和pip终极教程 在大二的时候接触过一段时间的Python,最近又开始玩起了这门语言.总的来说,个人很喜欢Python的语言风格,但是这门语言对于windows并不算 ...
- JDBC与反射
什么是JDBC Java定义了一套关于连接使用数据库的规范(接口)叫做JDBC,许多数据库厂商实现了这个规范,所以我们可以通过Java提供的接口编程,使得我们更换数据库的时候不用修改原来的代码,只需要 ...
- zend studio 10 实现代码自动换行
在一篇zend framework 的PHP编码标准的文章中看到了这么一段: 一行 80 字符以内是比较合适,就是说,ZF 的开发者应当努力在可能的情况下保持每行代码少于 80 个字符,在有些情况下, ...