源码先锋

源码先锋

Oracle Database 23ai 正式发布!年近 50 岁的数据库巨头正迈入 AI 时代

admin 150 90

北京时间2024年5月3日凌晨,Oracle公司宣布正在为其数据库产品提供最新的长期支持版本OracleDatabase23ai。值得一提的是,这款数据库的曾用名是Database23c,后来由于数据库中添加了一些AI功能而变更为现在的名称。

OracleDatabase23ai专注于三大关键领域:数据与AI、数据与开发以及数据与关键任务。

数据与AI

在这一部分,OracleDatabase23ai的核心目标有两个:第一,是让应用开发者能够更轻松地将AI功能添加至数据驱动的应用程序当中;第二,是将生成式AI功能纳入我们的产品,以便Oracle数据库的所有用户(从数据分析师到应用程序开发者及DBA)都能享受到工作效率提升。

增强新一代AI模型

过去两年,人们已经感受到了AI大语言模型(LLM)带来的影响,ChatGPT、谷歌Gemini、Cohere以及Llama等产品就是例证。虽然大模型对人们处理日常事务的方式产生了深远影响,但这些引擎也同样面临着一大挑战——它们只能在其创建的特定时间窗口之内回答问题。也就是说,它们并不能有效利用组织之内保存的数据、背景以及更多细节。为了让各类大模型发挥出更加全面的作用,需要结合数据库中的已有数据,帮助并增强大模型对于相关问题的解答能力。

那么,这些功能是如何实现的?

据Oracle介绍,为了实现大语言模型的潜在优势,他们首先需要加深对于数据集以及其中对象的理解。对这些对象进行编码的模型,往往是由庞大且复杂的无数代码片段构建而成。因此,组织往往需要将处理工作移交给第三方服务机构。而这种与第三方分享潜在敏感信息的行为,也自然会带来相应风险。

数据安全编码

为了确保对象的安全编码,OracleDatabase23ai允许用户通过ONNX标准支持将自己的可信AI模型直接加载至数据库当中。如此一来,OracleDatabase23ai就能在对象插入数据库时对其进行编码。这不仅让针对对象的近实时安全推理成为可能,同时也避免了从数据库中提取数据并将其移交给第三方服务商的风险环节。

以自然顺畅的方式提出问题

虽然SQL是一种非常强大的语言,但其上手难度也着实不低。为了让更多用户能够面向Oracle数据库提出各种复杂问题,我们正着手与Cohere及Llama等大语言模型相集成,以实现提问流程的自然语言支持能力。现在用户可以简单提出问题,比如“显示最近4个季度以来,最受年轻一代消费者欢迎的产品销量。”OracleDatabase23ai将与大模型共享表内元数据以回答用户提问。大模型能够理解“年轻一代”的含义,并将其转换为数据范围以作为SQL查询中的过滤条件,将指令返回至数据库。当然,除了查询数据库内的信息以外,OracleDatabase23ai也允许用户就各个方面的内容提出询问。

自OracleDatabase9iR2在20多年前发布以来,这款数据库一直内置有机器学习(ML)算法,以帮助用户快速查找表内数据的模式、趋势并预测客户行为。这些机器学习算法允许大家轻松实现各种功能,且无需经历复杂的ETL操作来提取数据并写回结果。而在将数据插入或加载至Oracle数据库时,这些机器学习模型还可用于分类、聚类及预测,从而提供客户推荐、欺诈检测等一系列切实业务优势。自该版本发布以来,研发团队陆续改进了Oracle数据库并添加了更多新的机器学习算法及功能,建立起业界最复杂、功能最强大的数据挖掘平台之一。

适用于所有OracleDatabase版本数据与开发

OracleDatabase23ai专注于消除与数据库交互相关的复杂性,借此简化应用程序开发体验。消除应用程序开发流程中的复杂性,这意味着使用该款数据库产品时,用户能够把更多精力投入到构建更优雅应用程序当中,而不再身陷充斥着种种技术细节的泥潭。此外,降低复杂性还有助于缩短开发周期,帮助用户更好地适应市场需求瞬息万变、开发节奏难以把控的当前数字环境。

JSON还是关系——一个艰难的选择

Oracle23ai引入了多项关键技术以降低开发者面临的复杂性,而其中最具创新意义和功能实效的,当数JSON-关系二元性的引入。这项技术允许用户在单一应用当中充分利用关系的强大功能与JSON开发方法的便利性。JSON提供一种优雅的数据建模方法,其中回答查询所需要的全部相关数据都将包含在单一对象之内,而无需跨表执行复杂的联接。关系方法提供灵活、存储高效且一致的数据模型,易于使用SQL等语言进行查询。从历史角度来看,用户往往需要在应用程序生命周期之初就被迫选择一种数据库建模方法,而随着后续业务需求的变化,早期阶段做出的决策很有可能产生深远影响、甚至阻碍业务的顺畅运行。JSON-关系二元性的优点在于,用户能够同时享受这两种方法的优势,而无需使用复杂且笨重的对象关系映射框架(ORM)。

通过在关系表之上创建简单的JSONDuality视图,用户可以构建起用文档来查询并更新基础数据集的应用程序。这不仅避免了文档建模中的一个基本问题——数据重复,甚至能够将数据库级的并发控制复杂性隐藏起来,由OracleDatabase23ai代表用户管理文档级可串行性。大家可以继续使用简单的HTTPPUT、POST及GET操作,或者直接针对OracleDatabase使用特定语言的API,例如OracleSODAAPI甚至MongoDBAPI。有了JSONDualityViews,“鱼与熊掌不可兼得”将彻底成为历史。

让SQL更加易用

SQL仍然是当今应用程序开发者群体中最流行的开发语言之一。这种涵盖从最简单、到最复杂的业务数据查询能力,也使得SQL成为数据管理领域的绝对基石。在可预见的未来,SQL的江湖地位大概率仍不可动摇。当然,其中也仍有可以改进的地方。在OracleDatabase23ai中,研发人员听取了大量增强请求,并研究了哪些能够切实简化、或者以更加引人注目的方式实现数据库交互。他们此番针对SQL做出的改进包括添加“布尔”与“向量”两种新的数据类型,添加了“数据用例域”以允许用户丰富表定义中所使用数据类型的含义,消除了简单SQL语句对于“fromDual”的硬性要求以提高可读性、从而更轻松地聚合“interval”数据类型,同时引入表值构造函数以轻松在insertselect或merge语句中指定多个行。

为复杂关系建立属性图模型

图数据库为现实场景中的各类复杂关系提供全新的建模视角。然而截至目前,开发人员仍然很难解决专有语言带来的问题,不得不将数据发送至专门用于管理这些关系的数据库,因此阻碍了这项突破性技术得到广泛接纳。好在数据库行业尝试以协作方式推动图数据库技术的大众化,并最终建立起相关标准。这些标准使得开发人员能够熟悉并发挥SQL的功能广泛性优势,从而建立起更易于访问的环境。OracleDatabase23ai就是采用这一新标准建立的开创性商用数据库。通过这些进步,预计图数据库在企业生态系统中的集成将迎来大幅增长。

与JSON二元视图一样,用户可以通过属性图视图来表达希望如何使用现有关系表,或者如何使用JSON集群中已经保存的数据。通过简单视图,用户可以充实数据以对数据内包含的潜在复杂关系进行建模。新的SQL扩展也简化了编写强大查询的流程,方便用户更深入地理解那些以往标准SQL所难以描述的信息。研发人员还添加了一组新的复杂图形算法(最短路径、分类、连接等),这些算法将在GA版本发布后尽快推出。

PropertyGraph属性图将在OracleDatabase23ai的所有版本中向用户开放。

数据与关键任务

OracleDatabase长期以来,一直在为全球各类最重要的应用场景提供支持,其功能和使用范围异常广泛,且擅长保护关键系统免遭意外停机。其中一个典型用例就是OracleRealApplicationsClusters(RAC),这是一项支持全活、共享磁盘数据库的前沿技术,适合匹配关键任务场景。OracleActiveDataGuard与OracleGoldenGate在构建同构与异构数据复制架构方面也能提供独树一帜的灵活性优势。

让分片更好、更快、更简单

对于企业希望在更远距离上分发数据的用例(无论是出于用户数据必须存储在客户所处国家/地区的硬性监管要求,还是为了降低全球分布式应用程序的相关访问延迟),研发人员还引入了来自OracleDatabase12的数据库分片机制。分片是指将数据集分布在多个Oracle数据库当中,但统一作为单个逻辑数据集进行管理。这种分片架构允许通过添加及删除分片来扩展或收缩数据库,并允许Oracle对数据集自动进行重新均衡。Oracle能够在线完成这项操作,而且由于分片机制直接嵌入数据库之内,因此对业务的正常运行影响很小。

在OracleDatabase23ai中,全局分布式数据库技术引入了对Raft复制功能的支持。这是一种基于共识的协议,有助于跨所有分片自动配置复制。使用Raft,复制数据将在所有分片中作为“复制单元”的副本形式进行保存。一旦发生分片故障或者重新配置,OracleDatabase23ai会自动对数据执行重新均衡。新的Raft协议还支持亚秒级故障转移,能够有力保障业务连续性。

Oracle23ai还为高可用性产品带来了一系列全面改进,例如新的“本地滚动数据库维护”,通过在接收补丁的同一节点上建立另一实例,以简化集群中滚动补丁的影响。Oracle还引入了新的DataGuardPerPluggableDatabase(PDB)支持,允许在两个容器数据库(CDB)之间提供可插拔的数据库级灾难保护功能,且每个CDB都运行活动工作负载。我们还改进了OracleClusterware中的PDB集成与管理。

让数据缓存更简单

在应用程序层缓存数据能带来诸多好处,包括提高应用程序的响应速度并减少数据库负载,这是因为查询会被转移至与代码距离更近的缓存当中。但为了实现这些好处,开发人员往往面临着诸多挑战,其中最大的问题之一就是确保缓存与后端数据库中保存数据的一致性,否则可能引发提供过时/潜在错误数据的风险。以往,开发人员会被迫编写复杂的代码来管理这些场景,且常常需要求助于“存活时间”之类的设计模式,其中数据会定期在缓存内刷新并重新加载。种种复杂挑战的存在,意味着缓存的维护将相当困难且昂贵。在某些情况下,维护成本往往要比设计成本更高、也更令用户头痛。

在OracleDatabase23c中,开发人员希望通过名为“TrueCache”的新功能解决OracleDatabase中的缓存问题。TrueCache是在主数据库之前运行的非磁盘Oracle实例,该实例利用ActiveDataGuard技术确保其随着主数据库实例中的数据变更而自动更新。这种新型缓存技术最重要的功能之一,就是在简单配置与最低程度代码更改需求的前提下即可发挥作用。

让SQL执行更安全

组织面临的一大挑战,就是恶意攻击者不断尝试窃取数据并破坏其日常运营。在OracleDatabase23ai中,为了防止执行未经授权的SQL(包括SQL注入攻击以及未经授权人员的执行操作),研发人员引入了SQL防火墙。SQL防火墙允许用户利用允许执行的SQL来训练数据库。之后,SQL的“获准列表”会记录未经授权的SQL或者其执行情况。用户还能添加其他条件,以明确列出IP范围或授权调用程序中的例外情况。SQL防火墙之所以如此强大,是因为它属于OracleDatabase的组成部分,因此对于SQL执行造成的额外开销非常有限。SQL防火墙的设置和训练都非常简单,可以通过GUI或者对存储过程的简单调用轻松完成。

与需要将数据移动到算法所在位置的传统AI算法不同,OracleDatabase23ai将AI算法带到数据所在位置。这使得人工智能能够在Oracle数据库中实时运行,从而提高人工智能应用程序的有效性、效率和安全性。