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小时修改到更短,修改之后如何预估空间占用? ------------------ ...
随机推荐
- MySQL JDBC事务处理、封装JDBC工具类
MySQL数据库学习笔记(十)----JDBC事务处理.封装JDBC工具类 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit. ...
- ubuntu 经常使用软件及环境
安装完系统后,更新系统 sudo apt-get update # 更新源索引 sudo apt-get dist-upgrade # 更新系统 sudo apt-get autoremove 1安装 ...
- unix解释器文件详解
exec执行普通文件和解释器文件的区别 2014-11-15 23:52:45 分类: LINUX exec执行普通文件和解释器文件的区别 ——lvyilong316 1. 从一个问题开始 首先要从项 ...
- 基于 Apache Mahout 构建社会化推荐引擎
基于 Apache Mahout 构建社会化推荐引擎 http://www.ibm.com/developerworks/cn/views/java/libraryview.jsp 推荐引擎利用特殊的 ...
- 【转】真正的Acmer
上海交大 戴文渊 大牛写的东西,建议大家看看 yiyiyi4321 2007-07-10 13:49:30.0 http://dwyak.spaces.live.com/?_c11_BlogPart_ ...
- HDU 2829 Lawrence(动态规划-四边形不等式)
Lawrence Problem Description T. E. Lawrence was a controversial figure during World War I. He was a ...
- Effective C++ 条款24
若全部參数皆需类型转换,请为此採用non-member函数 我们直奔主题 假设你定义一个有理数类例如以下 class Rational{ public: Rational(int numerator= ...
- Linking Containers Together
Linking Containers Together In the Using Docker section we touched on connecting to a service runnin ...
- Linux查看用户数、登录用户
如果是系统中全部只要默认shell是bash的就包括那么二楼正解,就是cat /etc/passwd|grep bash|wc -l如果是正在登陆系统的账户中使用bash shell的,那么ps -e ...
- JS 在 HTML 中做加减乘除
<script type="text/javascript"> function fun(t){ var fa = parseInt(document.getEleme ...