怎么看待oracle的exadata与share nothing系列的hadoop等,以及优缺点相互对比、各自的前途对未来的影?
一、怎么看待oracle的exadata与share nothing系列的hadoop等
exadata的架构我也仔细思考过很久,个人愚见,exadata引进了部分MPP思想,当并非MPP native,只有share nothing才可以做到MPP native。exadata的MPP成分:存储节点相当于sharding节点,支持列式存储和query predicate push down,计算节点相当于mapreduce的reduce聚合运算节点。exadata vs GP的区别,看两个大表Jion的场景,A jion B,jion键是A和B的主键;A、Bsharding分片都是两个,sharding原则相同,A的分片1和B的分片1都在同一个节点;如果是GP,在本地就可以做join,然后做汇总,如果是exadata,估计要把所有sharding分片数据读取到计算节点才能做join。这个例子中,exadata缺点无法利用data locality的特性。
另外一个例子,A jion B,如果A的分片跟B的分片不在同一节点,GP的处理是对B或者A或者AB一起的分片择优做data redistribution,这个过程比较复杂,类似map reduce里面的shuffle,也有点像RDBMS里面的hash join,而且如何择优做redistribution、join,是一个hard problem,数学上讲是个NP问题,需要采用启发式搜索的决策树算法;GP针对此问题实现了一个复杂的并行的分布式的基于代价的查询计划优化器叫做orca,apache的HAWQ也是用的这个。exadata是否会做这件事不太确定,个人猜测应该是聚合到计算节点来做join,如果是这样,那exadata就是一个利用硬件堆积性能的伪MPP数据库。补充一点,涉及到大量数据的网络传输,任务较多时,不同任务之间的互相影响可能会导致单个步骤执行过慢而影响整个系统的性能,实现一个分布式OLAP并没有那么难,很多公司都号称有MPP产品了,但是要多租户多任务并发公平调度,就很困难了。
延伸阅读:
二、SQL是什么
Structured Query Language
‘SQL’是结构化查询语言,是一种用来操作 RDBMS 的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
SQL语句主要分为:DQL:数据查询语言,用于对数据进行查询,如select**
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete**
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可SQL 是一门特殊的语言,专门用来操作关系数据库不区分大小写

相关推荐HOT
更多>>
为什么TDD是敏捷的核心实践?
一、提高软件质量TDD的核心思想是在编写功能代码之前,先编写测试代码,并通过测试代码来驱动功能代码的编写。这种测试驱动的开发方式有助于提...详情>>
2023-10-15 22:30:43
什么是Android逆向?
一、Android逆向的概念Android逆向指的是对Android应用进行逆向分析、破解和修改的过程。逆向工程是通过分析应用程序的二进制代码、数据和文件...详情>>
2023-10-15 17:31:51
MySQL文档说`decimal` 的最大位数是 `65`,什么意思?
一、MySQL文档说decimal 的最大位数是 65,什么意思DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL (M,D)。NUMERIC与DECIMAL同义,如果字段类...详情>>
2023-10-15 16:14:32
Oracle数据库运行越来越慢,应该怎么优化?
一、Oracle数据库运行越来越慢的优化方法1、应用层优化应用程序的设计和开发中,可以采用合理的数据查询语句来减少数据库的 I/O 操作次数,例如...详情>>
2023-10-15 15:48:10热门推荐
为什么公司内同级别的管理岗要比技术岗收入高?
沸Prince2跟pmp有什么区别?
热JAVA为什么要用多态,什么是多态?
热为什么TDD是敏捷的核心实践?
新番茄工作法的优点和缺陷都有哪些?
Go语言标准库中最常用的标识符是什么?
C语言和其他高级语言的最大区别是什么?
为什么大数据系统会部分取代关系型数据库?
怎么利用hadoop搭建自己的云计算?
MYSQL的幻读和我们平常说的幻读有什么区别?
BIOS、UEFI、MBR、GPT、GRUB是什么?
在sql语言中,数据操纵与数据控制有何区别?
gzip解压NR库的时候,报错格式违法怎么办?
什么是Android逆向?
技术干货






