Oracle Database 21c 十大新特性一览 - New Features

Oracle 已经在官网上线了关于 Oracle Database 21c 的在线文档,这让所有关于 Oracle 数据库的用户心中一惊,转眼 2020年已经接近尾声,Oracle 数据库又将进入下一个版本周期。
然而我们必须和大家进一步梳理一下,Oracle的版本变化,并且明确:Oracle 21c 其实就相当于 Oracle 20c,因为 20c从未进入公众可用的版本发布。
在官方的版本计划中,20c 已经被移出,并做出如下声明:
Oracle考虑到2020年我们的客户将面临前所未有的经济和业务中断。我们决定不将Database 20c Preview版本升级为General Availability。相反,我们将所有20c功能都合并到21c版本中,并使21c在我们的“自制数据库免费层”中可用,以便所有人都可以免费试用驱动新功能和增强功能。
Oracle 21c 在 Oracle CLoud上,在2020年12月8日可用,在企业级公众版本将于 2021年上半年发布。现在的年度版本被称为『创新版本』,仅作有限的支持,有别于长期支持版本。21c 的支持期仅仅为2023年6月,没有扩展支持。

结合 Oracle 20c 和 21c 的革新,我们再次整理这两个版本中,引人瞩目的十大新特性,与客户和读者朋友分享。

1. 原生的区块链支持 - Native Blockchain Tables

随着区块链技术的不断成熟和发展,Oracle 在其多模的数据库支持中,引入了原生的区块链表支持。在 21c 中数据库中可以通过 blockchain 关键字来创建区块链表:
CREATE Blockchain TABLE <blockchain_table_name>;
很多客户希望在不涉及多个组织的情况下,利用区块链的防篡改和不可否认属性,区块链表使客户可以在需要高度防篡改的数据管理,而又无需在多个组织中分布分类帐或依靠分散的信任模型时使用Oracle数据库。
为了遵循区块链的可信和安全机制,区块链表只能INSERT 记录,记录之间通过 Hash 算法进行链接,不能修改,同时链可以被多方参与者验证。区块链表,可以和其他常规表进行关联,进行事务处理或者查询。

区块链表,在创建时可以指定保护的周期属性,例如3年内不可删除等,以建立数据生命周期管理。
区块链表中的行是防篡改的。每行包含一个密码哈希值,该值基于该行中的数据和链中上一行的哈希值。如果某行被篡改,则该行的哈希值会更改,这会导致链中下一行的哈希值发生更改。为了增强欺诈保护,可以将可选的用户签名添加到行中。如果您在区块链表行上签名,则必须使用数字证书。在验证区块链表中的链时,数据库需要证书来验证行签名。
下图是区块链表的示意图:

可以对区块链表进行索引和分区。您可以通过建表时的选项控制是否以及何时从区块链表中删除行。您还可以控制是否可以删除区块链表。区块链表可与事务和查询中的(常规)表一起使用。

区块链表用于实施集中式区块链应用程序,其中中央权限是Oracle数据库。集中式区块链为组织提供了更大的可定制性和控制力,因为他们可以决定谁可以加入网络。参与者是不同的数据库用户,他们信任Oracle数据库来维护交易的防篡改区块链。所有参与者都必须具有将数据插入到区块链表中的特权。区块链的内容由应用程序定义和管理。与分散式区块链相比,集中式区块链与基于共识的分布式区块链相比,首选应用在更高吞吐量和更低交易延迟的场景。
区块链表,可以和其他常规表进行关联,进行事务处理或者查询。
针对区块链表,以下这些操作是禁止的:
  • Updating and merging rows

  • Adding, dropping, and renaming columns

  • Truncating the blockchain table

  • Dropping partitions

  • Defining BEFORE ROW - triggers that fire for update operations (other triggers are allowed)

  • Direct-path loading

  • Inserting data using parallel DML

  • Converting a regular table to a blockchain table or vice versa

  • XA transactions

2. 持久化内存存储支持 - Persistent Memory Store

自 Oracle 19c 开始,Oracle就已经开始修改程序以更好的配合持久化内存,提升数据库性能。
在21c中,Oracle 明确支持了持久化内存 - Persistent Memory,虽然目前发布的信息是在Exadata中支持,但是软件的提升是通过的,在各类一体机中,或者是传统架构中使用持久化内存是毫无障碍的。
持久化内存的引入,让 Oracle 的存储多达 6 级:SATA、SAS、SSD、Flash、PMEM、RAM,冷热数据分离,分层存储,可以进行更加精细化的架构设计。整体架构提供小于 19个微秒的IO延时。
在Oracle新发布的 Exadata X8M 一体机中,100Gb的以太网和RoCE获得支持,这是第一次在Oracle一体机中引入了基于RoCE的架构;
存储服务器上,通过PMEM在Flash之前进行加速,RoCE和PMEM提供了极速性能;

3. SQL的宏支持 - SQL Macro

宏的作用在于让SQL获得进一步的概括和抽象能力,允许开发者将复杂的处理逻辑通过宏进行定义,然后在后续程序处理中可以反复引用这一定义。
在 21c 中引入的 SQL Macro 支持两种宏类型,Scalar 和 Table 类型。
  1. SCALR 表达式可以用于 SELECT 列表、WHERE/HAVING、GROUP BY/ORDER BY子句;

  2. TABLE 表达式可以用于 FROM 语句。

看一个简单的示例,例如需要一个函数,返回数据的下限和上限,举例而言,如果 x < lower (特定小值) 则返回 lower(作为下限);如果 x > upper (特定大值)则返回 upper(作为上限),否则返回 x 本身。

例如,如下创建一个 Clip 函数,返回一个 SCALAR 值:
create function clip(lo number, x number, hi number)return varchar2 SQL_MACRO(SCALAR) isbegin return 'least(greatest(x, lo), hi)';end;/
接下来就可以如下引用这个函数:
SELECT ename, CLIP (:lower, sal, :upper)FROM emp;
Macro 函数被查询改写为如下执行:
SELECT ename, least(greatest(sal, :lower), :upper)FROM emp;
这个查询返回的结果如下,可以看到 CLIP 的效果:
SQL> SELECT ename,clip(1000,sal,2000) FROM emp;ENAME CLIP(1000,SAL,2000)
---------- -------------------SMITH 1000ALLEN 1600WARD 1250JONES 2000MARTIN 1250BLAKE 2000CLARK 2000SCOTT 2000KING 2000TURNER 1500ADAMS 1100JAMES 1000FORD 2000MILLER 1300
总结一下 SQL Macro 的意义:
  • SQL宏提供了一个基于SQL的简单框架,用于封装业务/技术逻辑

  • 无需在查询中调用自定义PL SQL过程和函数

  • 可以在SQL语句内的任何地方使用;

  • 自动继承所有常用的数据库内查询优化;

  • 可以建立参数化视图;

  • 简化从非Oracle数据库迁移到Oracle数据库;

4. 原生的 JSON 数据类型支持

12.1.0.2 引入JSON支持,允许将JSON存储在varchar2或LOB(CLOB或BLOB)中,可以利用 Schemaless 设计模型所提供的灵活性来构建应用程序,但又能从Oracle数据库的功能中受益。
可以使用标准SQL查询JSON文档,利用高级分析功能,对单个属性或整个文档进行索引,并行处理数十亿个JSON文档。还可以通过使用Java、Node.js、Python、C语言和REST的SODA API来访问Oracle数据库,将其视为NoSQL数据库。
在21c中,Native 数据类型 “JSON ”改进了对JSON的支持。在读取或更新操作时不必对JSON进行解析,而只在插入时才进行解析,JSON以内部二进制格式保存,这使得访问速度更快。读取和更新速度提高了45倍,对非常大的JSON文档的更新速度提高了2030倍。
新的函数JSON_TRANSFORM,使得在一次操作中更新和删除文档中的多个属性变得更加简单。

5. SQL新特性和函数扩展 - Extensions

在 Oracle 21c中,关于SQL的函数扩展很多,包括对于 ANSI 2011 标准的部分支持,进一步的提升了 SQL 的处理能力。
在分析计算中,21c 提供了两种新的分布聚类算法,偏态 - SKEWNESS、峰度 - KURTOSIS,通过这两个算法,可以对给定数据进行更丰富的分布计算,新特性支持物化视图,遵循和方差(VARIANCE)相同的语义。
在21c中,Oracle 还增加了 CHECKSUM 函数,用于检测数据的完整性,这个函数可以用于替代 DBMS_SQLHASH.GETHASH 函数,DBA不必再为此进行单独授权。
新的位运算符也被引入,21c 中支持的新的位运算包括:BIT_AND_AGG、BIT_OR_AGG、BIT_XOR_AGG 。
对于分析函数,Oracle 21c 扩展了窗口边界,通过 GROUPS 关键字可以进行特定分组数据的计数。
关键字GROUPS强调与分组查询的关系,使用GROUPS关键字,我们可以回答诸如,每个交易账号执行"购买"的最后五个交易日中,花费的金额和 以及 购买的不同股票代码的数量等。

6. 自动化的In-Memory 管理 - Self-Managing In-Memory

In-Memory 技术引入之后,为Oracle数据库带来了基于内存的列式存储能力,支持 OLTP 和 OLAP 混合的计算。
在 21c 中,Oracle 支持了自主的In-Memory 管理,通过一个简单的初始化参数 inmemory_automatic_level 设置,DBA将不再需要人工指定将哪些数据表放置在内存中,数据库将自动判断需要将哪些对象加入或驱逐出In-Memory的列式存储中。
内存对象的管理,是通过数据库内置的机器学习算法自动实现的,并且数据库可以进一步的自动压缩较少访问的内存列数据。
inmemory_automatic_level = HIGH 设置,可以用于指定高度的自动的内存管理级别。

7. 广泛的机器学习算法和AutoML支持

在Oracle 21c中,更多的机器学习算法被加入进来,实现了更广泛的机器学习算法支持。
极限梯度助推树 - eXtreme Gradient Boosting Trees(XGBoost) 的数据库实现,以及各种算法,如分类(Classification)、回归(regression)、排行(ranking)、生存分析(survial analysitic)等;
MSET-SPRT 支持传感器、物联网数据源的异常检测等,非线性、非参数异常检测ML技术;

此外,Oracle机器学习算法支持各种语言,例如 OML4SQL、OML4Py、OML4R,其中AutoML 针对 Python 提供了全面支持。

8. 多租户细粒度资源模型 - New Resource Modeling Scheme

在21c之前,多租户的数据库管理是服务驱动的,通过服务来决定PDB的资源放置,PDB的开启也是通过服务来进行隐式驱动的。
在集群环境中,这就存在一个问题,PDB 可能被放置在某个资源紧张的服务器上,服务驱动的模型并不完善。
在 21c 中,Oracle 引入了细粒度的资源模型,将负载和 PDB 的重要性等引入管理视角。例如,用户可以通过Cardinality 和 Rank 定义,改变 PDB 的优先级,在数据库启动时,优先打开优先级别高的PDB。
除此之外,在 PDB 打开之前,数据库会检查主机运行负载、可用性、CPU数量和CPU速度等信息,以科学判定应该在什么节点以什么顺序启动PDB。
关于多租户的另外一个改变是:在 21c 中,Non-CDB 模式将不再被支持(可以使用非多租户环境,但是没有官方支持),这将强制推动用户使用多租户特性。

在 Oracle 19c 的授权文件中,有这样的描述:你可以使用 3 个PDB的多租户环境而不需要License,超过 3个 PDB则需要额外的授权。
“For all offerings, if you are not licensed for Oracle Multitenant, then you may have up to 3 PDBs in a given container database at any time.”

9. 零影响的计划停机维护 - Zero Downtime for Planned Outages

在 Oracle 不同版本的不断演进中,一直在加强数据库的可用性能力。在 21c 中,对于计划停机维护或者滚动升级等,Oracle 通过 Smart DRM 等特性以实现对应用的零影响。
对于维护操作,数据库可以在实例关闭前进行动态的资源重分配,这一特性被称为 Smart DRM,通过GRD的动态资源重组织,重新选出的Master节点不需要进行任何的恢复和维护,对于应用做到了完全无感知、无影响。

10. In-Memory 的 Spatial 和 Text 支持

针对 Oracle 数据库内置的多模特性,地理信息 -Spatial 和 全文检索 - Text 组件,在 21c 中,通过 In-Memory 的内存特性,获得了进一步的支持。
对于空间数据,Oracle 在内存中为空间列增加空间摘要信息(仅限于内存中,无需外部存储),通过 SIMD 矢量快速过滤、替换 R-Tree 索引等手段,以加速空间数据查询检索,可以将查询速度提升10倍。
针对全文检索(Text),在内存中将倒排索引添加到每个文本列,同时通过将单词映射到包含单词的文档,以内存替换原来的磁盘索引,从而加速全文检索的性能。通过结合关系数据和文本的混合查询,全文检索可以获得 3倍以上的性能提升。

总结

Oracle 数据库仍然在持续创新,沿着 多模、软硬结合、智能化 等方向深入演化,在 2021年发布的年度创新版本 Oracle Database 21c 相信还会引发大家的广泛关注。
墨天轮原文链接:https://www.modb.pro/db/41888(复制到浏览器中打开或者点击“阅读原文”立即查看)
(0)

相关推荐

  • oracle18c安装

    oracle18c是甲骨文公司推出的最新的mysql连接工具,这款工具在软件开发领域使用的范围十分的广泛,而且新版本的功能十分的强大,软件的优化也是非常的不错,而且界面看起来也简洁了很多,感兴趣的用户 ...

  • oracle19c的版本号

    oracle19c的版本号_Oracle Database 20c/19c/18c/12c发布的新特性介绍 菲律宾留学2020-12-29 00:35:53 324 收藏 文章标签:oracle19c ...

  • win10 安装oracle 11gR2

    第一步,下载 oracle 下载地址,官网(需要登录注册): 第二步.解压 win64_11gR2_database_1of2.zip.win64_11gR2_database_2of2.zip 两个 ...

  • Oracle 19c 新特性概要

    本文归纳出一些工做中可能会用到的Oracle 19c新特性,全部新增功能的说明请参考新特性官方文档<database-new-features-guide>html 根据官方文档分为如下几 ...

  • 今天聊聊Oracle Database 21c 十“小”新特性

    墨墨导读:Oracle Database 21c 已经在云上提供,线下版本将于2021年上半年提供,这标志着 Oracle 进入了下一个版本周期的创新发布. 关于 Oracle 21c 其实就相当于 ...

  • Oracle 19c十大新特性

    bisal2020-01-16 07:30:00 eygle对Oracle 18c.19c和20c十大新特性做了介绍, https://www.eygle.com/archives/2019/10/o ...

  • Oracle 19c 新特性一览

    Expect-乐2019-02-14 14:33:42 本文链接:https://blog.csdn.net/qianglei6077/article/details/87272370 文章目录 Or ...

  • Oracle、亚马逊相继杀入,盘点2017年医疗云计算的十大新战场

    "云"的概念在计算机科技高速发展的今天,迅速成为当下互联网相关服务的热门技术. 随着人们对医疗健康越发关注,医疗行业的技术性突破将和计算机领域产生不可忽视的关联.由此,云计算在医疗 ...

  • 灵活用工十大新趋势

    灵活用工十大新趋势

  • 2020安徽十大网红打卡地和十大新晋网红打卡地揭晓

    5月11日,由省文化和旅游厅主办的2021(首届)安徽文旅线上推广大会在蚌埠举办.活动以"美好安徽dou起来"为主题. (图片来源:安徽网) 此次线上推广大会,通过集中展示一批深受 ...

  • 十大新科技排名,机器视觉与深度学习排第六名

    现代科技在不断的发展和进步,我们的生活品质也随之得到了提高,那么你知道现如今发展到了哪一个地步吗?知道又有哪些新的科技吗?今天小编就来为大家列出世界十大新科技,感兴趣的小伙伴快来看看吧. 世界十大新科 ...

  • 世界十大新科技到底有哪些等5篇

    ------------------ ●世界十大新科技到底有哪些? 全球科技在不断的发展及进步,人类的生活品质也随之得到了提高,了解世界十大新科技有利于我们开拓视野. 一.量子计算机 什么是量子计算机 ...