Oracle21c与您共同憧憬美好2021

2020年即将过去,我们在憧憬美好2021之时,Oracle即将推出Oracle Database 21c,这是一个innovation版本的数据库,和大家之前了解到的Oracle Database 18c类似,我们为大家提供两年的premier support。通过下面的幻灯片大家可以看到,19c依旧是我们的长服务周期版本数据库,我们将为它提供到2027年的专业支持服务。

我们的Database  21c  将首先在云端为大家提供服务,您可以访问cloud.oracle.com免费注册,并使用Oracle卓越的云端服务。我们预计在2021年3月中旬为大家提供Oracle Database 21c的本地安装版。

我们在Oracle Database 19c当中提出了很多Converged Database的理念,将多种数据服务都融合在一个数据库当中,关于Converged Database,大家可以通过https://go.oracle.com/LP=89276?elqCampaignId=239796 观看我们每周五上午11:00的网络公开课,在公开课当中已经为大家介绍了很多Converged Database的相关内容。

Oracle一直致力于为大家提供功能丰富,管理简单的数据库系统,我们从19c开始就为大家提供全球唯一可运行在本地和云端的融合数据库,在Oracle数据库当中,可以支持您工作中所使用的任何数据类型,比如,JSON,图,XML等。同时,您也不必再为不同的工作负载而创建不同的数据库,您可以在同一个数据库中运行交易型负载、分析型负载、物联网、区块链等,这将大大减轻DBA的工作负担,降低维护成本,进一步减少故障点,从而保证数据库系统安全平稳运行。

与国内和国外的友商相比,友商提供的数据库策略是为每一种负载或者特定的数据类型提供专门的数据库,这无疑增加了管理成本和系统部署的复杂度,同时也会带来debug上的困难。因为要创建多个多种数据库实例,在成本上也会增加很多。比如客户有5种工作负载需求,在友商的云当中就可能要创建5个实例,会被收取5个实例的费用。而如果使用Oracle的融合数据库,无论是云端还是本地,都只需要创建一个实例即可,在降低维护成本的同时,也节约了经济成本。

我们在很多年前就已经开始数据整合的工作,各位客户为此也付出了很多时间和费用,在我们享受数据整合带来的方便快捷的时候,如果因为数据服务需求,而再次回到使用多个专用数据库的场景,这将让我们之前的工作功亏一篑,并带来了企业当中大量数据碎片化的问题,这不但为数据分析和应用程序开发提升了复杂度,也带来了更多的运行安全问题和风险。

鉴于以上这些专用数据库的弊端,建议我们的客户使用融合数据库解决方案,在一个数据库中,为客户提供多种数据服务,从而减低维护复杂度,提升安全性和可靠性,并大幅度降低使用成本。

在21c当中,在一个数据库内将支持更多的模型,您可以在一个数据中,同时处理本地JS,本地的区块链表、JSON以及先进的图数据。在其他友商的数据库及数据库云服务当中,您想同时使用这些功能,恐怕需要创建多个数据库,甚至有些功能在某些友商的OP数据库或者数据库云服务当中尚未提供。

JavaScript是前端工程师常用的编程语言,JavaScript功能强大,简单易用,经常和PHP,JSP等语言进行密切交互,在Oracle Database 21c当中,您可以在数据库内部执行JavaScript脚本,并与PL/SQL进行交互,而且JavaScript的数据类型可以与Oracle数据库当中的数据类型进行自动映射,免去了数据类型转换带来的麻烦和转换异常的出现,极大程度上改善了程序的稳定性。

JSON 数据格式在 Oracle 12.1.0.2 中就开始支持了,也就是说在 Oracle 数据库中,您可以存储、查询 JSON 数据格式,像访问普通的表一样,进行增删改操作、创建索引、创建虚拟列等,甚至可以把它放在内存数据库中( In-Memory )提高性能。 您可以阅读我们在今年初发布的文章( Oracle 19c让JSON如此简单 , 使用Oracle高级分析选件处理JSON数据的机器学习问题 , Oracle Database 20c:JSON功能增强 , Oracle自治数据库新成员:Autonomous JSON Database )了解具体的使用方法。

在21c当中,Oracle也带来了更多针对JSON的优化与支持,比如Oracle GoldenGate和XStream对JSON数据类型的支持与使用SQL操作JSON的语法改进等等。

图数据库是一种非关系型数据库,用来解决现有关系数据库的局限性。图模型能够明确地列出数据节点之间的依赖关系,而关系模型和其他NoSQL数据库模型则通过隐式连接来链接数据。图数据库可以简单快速地检索难以在关系型数据库中建模的复杂层次结构。在Oracle Database 21c当中,对于图的支持有了很多增强,比如内存上的优化,之前在现实比较大的图的时候,会消耗很多内存。在21c当中,处理较大的图所需的内存比之前有了明显的下降,从而提升了系统的性能,加快了程序的响应速度,让您的应用程序运行得更加平稳与迅速。同时,在21c当中,支持使用Java的语法方便地创建和扩展您的算法,从而降低了学习成本,加快的程序开发的进度。您可以通过Oracle图可视化工具方便地对Graph进行可视化处理。

区块链表是仅提供插入功能和满足限制条件才可删除的表,它将行组织成许多链。除了第一行之外,链中的每一行都使用加密散列链接到链中的前一行。区块链表中的行是防篡改的。每一行都包含一个密码散列值,该散列值基于该行中的数据和链中的前一行的散列值。如果一行被篡改,该行的哈希值将发生变化,这将导致链中的下一行的哈希值发生变化。为了增强欺诈保护,可以将可选的用户签名添加到行中。如果您对区块链表行进行签名,则必须使用数字证书。在验证区块链表中的链时,数据库需要证书来验证行签名。可以对区块链表进行索引和分区。您可以控制是否以及何时从区块链表中删除行。您还可以控制是否可以删除区块链表。在事务和查询中,可以将区块链表与(常规)表一起使用。您可以查阅我们之前发布的文章了解详细的区块链表的操作( Oracle Database 20c:区块链表

在21c当中,对多种工作负载都有了优化与创新,比如In-Memory组件、持久化内存的支持、自动区域图、自动机器学习、sharding增强等。

机器学习目前已经深入到我们生活和工作的各个领域,一般我们在使用机器学习的时候,都是先选择模型,然后对模型参数进行调整,训练模型,再对模型的参数进行调整,然后测试模型。这是一个循序渐进的过程,需要花费较多的精力和时间。如果模型选择错误,或者参数调整不当,不但会浪费大量时间,而最后的预测或计算效果也会和目标相差甚远。在Oracle Database当中,当我们给出数据之后,系统会根据数据的情况,选择出最适合的模型,并训练集当中的特征进行最优的特征选择,比较欠拟合和过拟合的情况发生,同时会自动对所选模型的参数进行不断优化调整,直到到达最优。利用Oracle的自动机器学习功能,没有数据科学背景的使用者,也能轻松使用自动机器学习功能进行快速、高效地预测。

在21c当中,还提供了我们机器学习常用的XGBoost算法的支持,以及神经网络算法中的功能增强。

我们在Oracle当中,可以使用多种技术对海量数据快速查询,比如我们经常使用的分区技术,还有在Exadata上使用的存储索引、智能扫描等功能。在21c当中,通过DBMS_AUTO_ZONEMAP开启自动区域图功能,可以根据查询中的谓词对块和分区进行修剪,在不需要用户干预的情况下,加速查询,为我们的用户提供在海量数据当中的快速查询功能。

持久化内存在近几年,被广泛地应用在高速IO需求的场景当中,Oracle Exadata X8M系列产品也在配置中放置了大量的持久化内存,从而大幅度提升IO性能。在21c当中,在非Exadata环境下,同样支持将数据和redo保存在本地的持久化内存当中,从而消除了IO瓶颈,您将不会再看到AWR当中,rego写入非繁忙的情况发生。因为持久化内存的读写速度都大幅优于传统的SSD或其他闪存存储,所以在不使用高速缓存的情况下就可以获得极速的查询速度,从根本上消除了IO瓶颈问题。

在21c当中,使用内存中的深度向量化优化连接:内存中的深度向量化可以优化复杂的SQL操作符,方法是将每个SQL操作符中的物理操作符流水线化,并使用SIMD技术对它们进行向量化。该特性在默认情况下是启用的。内存中的深度向量化是一个基于 SIMD 的框架,它支持对查询计划中的高级查询操作符进行向量化。该框架包括SIMD、硬件加速和流水线执行等优化。内存中的向量化连接特性是深度向量化框架的关键。使用SIMD向量处理,框架优化了散列连接的各个方面,如散列、构建、探测和收集。这种优化可以将连接处理的性能提高100%或更多。内存中的向量化连接特性对用户是透明的。这个优化在默认情况下是启用的,但是您可以通过将INMEMORY_DEEP_VECTORIZATION初始化参数设置为false来禁用它。

在12c当中,大家已经了解到了Oracle In-Memory选件,这个选件可以让我们的数据表在内存中以“双模”的形式存在,写入的时候,按照行的方式写入,读取的时候,可以使用列的方式读取,实现了“鱼和熊掌”兼得的效果。在之前的数据库版本当中,我们需要指定哪些数据库开启In-Memory选项,而在21c当中,Oracle将自动管理内存中的列存储,在减轻管理负担的同时,使内存的利用率更高,将更适合列存储的数据表放入内存当中,并自动维护这些数据表在内存中的载入与删除。

我在之前的数据库版本中使用In-Memory选件查询时,如果在查询当中包含任何被排除在外的字段,那么就无法使用In-Memory功能,在21c当中,如果出现了前面描述的情况,会结合Buffer Cache当中的数据,与In-Memory当中的数据进行融合,从而继续使用In-Memory技术,提升查询效率。一般情况下,可以带来至少10倍的性能提升。

在21c当中利用自动从SQL语句派生出来的分片键,消除使用Sharding API识别分片密钥的需求,并使用全新的Sharding Advisor Schema分析工具,协助将非sharding模式迁移到sharding模式,并提供数据库分析功能,给出哪些数据库应该使用sharding设计的排名列表,方便DBA做决策。并可以从多个现有的非sharding数据库来创建一个sharding数据库,降低了数据库整合的难度,提升了向sharding数据库转换的灵活性。

在21c当中,如果您使用了PDB的Data Guard功能,当某个PDB出现故障,可以只针对有故障的PDB进行切换和快速接管,而无需将整个容器数据库都进行切换,这不但加速的切换速度,也将对其他PDB的影响降到最低, 并在更细的粒度上提供数据保护。

并使用DbNest为容器数据库和可插入数据库提供了增强的安全隔离,进一步加强多租户的数据库安全性。

我们会在后面的文章当中,继续为大家介绍Oracle Database 21c的新特性,期待您的关注,谢谢!

编辑:殷海英

各大平台都可以找到我

  • 微信公众号:杨建荣的学习笔记

  • Github:@jeanron100

  • CSDN:@jeanron100

  • 知乎:@jeanron100

  • 头条号:@ 杨建荣的学习笔记

  • 网易号:@杨建荣的数据库笔记

  • 大鱼号:@杨建荣的数据库笔记

  • 百家号:@杨建荣的数据库笔记

  • 腾讯云+社区:@杨建荣的学习笔记

QQ群号: 763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过

杨建荣的学习笔记
我还没有学会写个人说明!
上一篇

[Stardust]星尘分布式全链路监控

下一篇

《赛博朋克2077》发行商遭投资者起诉:被控存在误导

你也可能喜欢

评论已经被关闭。

插入图片