Oracle 最近发布了一种大数据设备,其中运行有 Oracle NoSQL Database ,它是基于 Oracle Berkeley DB Java Edition 的新键 - 值存储系统。该系统的特性包括:十亿行级的记录存储能力、TB 级的 B- 树存储能力、ACID 事务、CRUD、分片(sharding)、无单点故障、通过数据中心间复制进行灾难恢复等等。
Oracle 是关系型数据库的标准,它在 2011 年 5 月发布了白皮书“揭穿 NoSQL 的不实宣传”。Oracle 试图在其中证明 NoSQL 数据存储存在很多问题,包括没有标准 API、能源利用效率低、只在诸如 Google 这样的大公司才可行、缺少安全性等等,这篇文章得出下述结论:
人们普遍认为,目前 NoSQL 数据库与关系型数据库相比尚未成熟。它们 [NoSQL] 的功能仍很初级。一般来说只在数据量不是非常大或性能压力不大的情况下才部署 NoSQL 数据库。部署的 NoSQL 数据库数量比较小。基于 NoSQL 数据库的应用程序开发模型也面临挑战,因为它增加了实现的复杂性。而系统的高可用性和 SLAs 仍有待评估。
我们应使用经验证可靠的方法。而不要冒险将数据存储于 NoSQL 数据库。
有趣的是,这份文档已经从 Oracle 的网站上撤下,但还可以从因特网上找到。撤销这份文档的原因与这次发布的大数据设备有关,根据 OpenWorld 2011 大会上的一份主题讲演,该设备是“一种为获取、组织和加载非结构化数据而优化的工程系统”,基于新的 Oracle NoSQL Databse ,可伴随 Apache Hadoop、Oracle Data Integrator with Application Adapter for Handoop、Oracle Loader for Hadoop 和开源分布式统计语言 R 一起使用。
Oracle NoSQL Database 是一种键 - 值数据存储,设计时考虑到了高扩展性和高可用性,并可部署于多个互相复制的节点上,以便进行快速故障切换及负载均衡。我们可以通过 Java API 提供的 Get、Put 和 Delete 操作访问数据,这些 API 都打包在一个独立的 JAR 文件中。 其它特性包括:
- 由纯 Java 编写
- 容量:十亿条的记录存储能力和 TB 级 B- 树存储能力
- 自动的、基于 hash 函数的分区和数据分布
- ACID 事务
- 完整的 CRUD 操作和可调整的持久性保证
- 无单点故障
- 支持分片
- 单一和多存储节点的故障容错性
- 通过数据中心间的复制进行灾难恢复
- 支持数千个节点
- 节点级的备份 / 回复
Oracle NoSQL Database(在一份 PDF 官方文档中也被称为 Oracle NoSQL Database 11g,这有些容易引起误会)基于开源的 Oracle Berkeley DB Java Edition 存储引擎构建,并通过 Data Integrator 与 Oracle Database 11g 集成,通过 In-Database Map-Reduce 与 Hadoop 集成,如下图描述:
如果过去 Oracle 认为关系型数据库可以存储任何数据,现如今它已经认识到,处理大容量、实时数据对于关系型数据库来说是“不可能完成的任务”,正如他们在一份关于 Oracle NoSQL Database 更加详细的技术白皮书( PDF )中承认:
分析像网站点击流之类的大容量、实时数据时,利用非结构化和半结构化的数据源会提供显著的业务优势,创造更多的业务价值。传统的关系型数据库无法完成上述任务,因此企业会基于十年来对分布式哈希表(DHTs)与传统关系型数据库系统或嵌入式键 / 值存储——比如 Oracle 的 Berkeley DB 来构建,以开发出高可用性的分布式键 - 值存储系统。
Oracle 将会为 NoSQL Database 提供完整的商业支持。
查看英文原文: Oracle Joins the NoSQL Club
评论