有朋自远方来,不亦乐乎。一年一度的Oracle CloudWorld于9月18日在拉斯维加斯拉开帷幕,此次盛会吸引了来自世界各地数万名参会者,包括 Oracle 客户、合作伙伴、开发人员和技术爱好者。在第1天的主题演讲“Oracle的未来愿景”中,Larry Ellison分享了Oracle在AI,Cloud和数据管理方面的创新。博观约取,厚积薄发,作为一个创立45年的公司,Larry的演讲充分体现了Oracle深厚的技术底蕴和创新永无止境的精神。在第2天的主题演讲“把客户的成功放在首要位置”中,Safra Catz邀请Uber,Emerson等6位公司高管共同演讲,在与他们的对话中,您可以了解到Oracle如何帮助用户将愿景转化为实际成果,助力用户创新转型和取得成功。己欲立而立人,己欲达而达人,古老的东方智慧如今在Oracle也被努力践行着。
开场:Oracle使用3大战略实现“从Generate到Innovate”
会议进入到第3天,今天的主题演讲题目是“数据与应用开发的未来”,演讲者是Juan Loaiza。Juan Loaiza 是 Oracle 关键任务数据库技术执行副总裁,负责交易处理和工程系统相关技术的领先产品战略、产品开发和产品管理。Juan Loaiza 拥有麻省理工学院 (MIT) 计算机科学学士和硕士学位。 1988 年,他离开 MIT 博士项目,加入 Oracle 数据库工程团队,从此成为数据库技术的创新者。今天的主题横跨数据库和开发两大领域,对技术爱好者而言可谓不容错过。
在主题演讲的开场,Juan Loaiza 开宗明义,阐述了数据和应用程序开发创新将大幅提高生产力,利用3大转型战略,Oracle将生成数据解决方案,而不是手动编码,帮助用户实现从Generate到Innovate。这3大转型战略分别是Generate Use-centric Data(生成以使用为中心的数据),Generate Apps(生成应用程序)和Generative AI(生成式人工智能)。接下来,Juan Loaiza 对这3方面进行了详细解读。
战略1:Generate Use-centric Data(生成以使用为中心的数据)
过去在与数据系统的交互中,我们不仅需要描述我们想要的结果,而且还必须告知其如何实现。而现在,我们只需简单地声明预期的结果,数据系统将自动生成它们。在这一过程中,数据专家和开发者是重要的参与方,因此Juan Loaiza先从这两个角色的转变开始介绍。
对于数据专家,在数据创新的旅程中已经走得很远了。回顾数据库的发展历史,最初的数据库只有层级数据库和网络数据库两种,应用程序必须使用手动编码来访问特定存储格式的数据。之后,Edgar F. Codd发明了关系模型,为关系型数据库奠定了坚实的理论基础,并凭此于1981年获得了图灵奖。
关系模型的好处包括:
-
应用程序使用数据值访问数据,而非手动编码
-
数据值只需存储一次,从而避免了数据冗余和不一致的数据副本
-
关系数据库根据声明性意图生成访问
最后一点促成了声明式编程语言SQL的诞生。如今,SQL在关系型数据库领域具有不可撼动的地位。与Java,Python等命令式语言不同,生成式语言自动生成访问,如同导航,您只需要告知起点和终点,他就能自动提供优选的访问路径。
对于开发者,情形则有所变化。由于视角不同,以前一些老的概念又被开发者重新使用,其中文档数据库和键值数据库类似于以前的层级数据库,图数据库则类似于以前的网络数据库。为什么会这样?因为范式化的关系型数据对于数据管理者虽然很友好,但对于应用开发人员而言却并不总是方便。
举一个学生课程注册系统的例子,如果使用关系模型,需要设计4张表,数据访问的API实际上是表中的行,数据的获取需要通过复杂的表联接实现。
而如果使用JSON文档,一个简单的GET操作就可以获得所有相关数据。数据更新后,整个文档用PUT操作就可以存入数据库。
尽管Oracle已经支持原生的JSON数据类型,但JSON文档型数据库并非完美,之前层级数据库的不足依然存在,这其中比较大的问题包括数据冗余以及其可能导致的数据不一致,另外JSON文档型数据库的功能比较单一,例如并不擅长复杂的分析型查询,而声明式SQL在功能的丰富性和深度上更胜一筹。
于是,开发者陷入了困境,必须为数据选择一种存储模型。因为数据是以存储为中心的,而非面向用途。存储模型决定了数据如何被使用。而当模型更换时,模型之间的巨大差异可能导致之前的工作需要推倒重来。
那么有没有更好的方法,能让开发者声明数据使用的意图而非数据存储的格式,然后让数据库根据应用场景生成匹配的数据格式和API?
为实现这个目标,Oracle对Edgar F. Codd的关系模型做了扩展。在现有的数据定义语言(DDL)和数据操作语言(DML)基础上,增加了数据意图语言(DIL),来描述数据的用途和格式。
到这里,聪明的读者已经猜到,这项技术一定与早在去年就宣布的23c JSON关系型二元性视图有关。是的,接下来,Juan Loaiza邀请面向开发者的Oracle高级产品经理Gerald Venzl对JSON关系型二元性视图做了详细的介绍。这其中的主要观点包括:
-
JSON关系型二元性视图(以下简称JSON二元性)由来有自,在传统的关系型视图中已经具备了DIL的部分功能。
-
数据以规范的关系型存储,避免了数据冗余,可以充分利用数据库的丰富功能和优势,包括事务一致,无锁并发,深度集成等。
-
JSON二元性可以为现有的关系型数据库增加面向文档的的应用。
-
数据以JSON的格式呈现,开发者可以方便地定义,查询和更新,可以基于相同的底层数据定制,以满足不同应用场景的需要。
总之,JSON二元性综合了关系型数据库和文档数据库的优点,使鱼与熊掌可以兼得。
不止于此,除了JSON二元性,Oracle又新增了Graph二元性。以一个金融应用为例,关系数据库中描述银行账户的行可以转换为Graph中的顶点,而描述转账的行则可以转化为Graph中的边。通过简单的定义,应用开发者可以方便地查看资金的流向或对数据进行更新。
二元性或面向使用意图的定义可以为应用开发者提供灵活性和简化应用开发,应用的一部分可以将数据视为关系型,而应用其它部分则可以将相同的数据视为JSON文档或Graph类型。
正如Juan Loaiza这身可商务可休闲的穿着,Oracle数据库可盐可甜,开发者可以从心所欲不逾矩,在多种数据模式间灵活切换。
除JSON和Graph二元性外,Oracle还提供了更多的面向数据使用意图的功能,包括早在12c就已支持的Analytic View,支持面向分析的意图;Domain支持面向数据值的意图;Annotation功能支持面向列的意图;Change Notification Directive支持面向通知的意图。所有这些功能并非“山在虚无缥缈间”,均已在Oracle 数据库23c中实现,毕竟Oracle主打的就是一个可落地。
作为这一部分的小结,Juan Loaiza认为:对于开发人员,数据的未来就是通过声明使用意图来生成结果。
战略2:Generate Apps(生成应用程序)
战略1涵盖了数据专家和开发者的创新,而战略2的主角则是低代码开发者,因为在以生成应用程序代替手工编码的转型中,引领者正是低代码平台。通过可视化工具和元数据,低代码平台通过声明应用的意图来生成应用。通常,低代码平台适合于生成简单的应用,对企业级应用则面临许多挑战,包括应用的复杂性,用户规模,安全可靠性和互操作性。Oracle APEX不断发展,现在已经可以很好地应对这一系列问题。在2022年IDC针对低代码平台的调研中,Oracle APEX成为了用户的优选。
APEX对低代码平台做了扩展,可以应对更多更复杂的应用场景,包括工作流,任务关键型SaaS,移动应用和使用Graph SQL和Java Script来增强互操作性。
利用战略1中的声明性使用意图相关技术,可以进一步提高低代码平台的生产效率。JSON二元性和Graph二元性使生成相应模式的应用更加容易,Annotation和Domain技术可以使低代码平台根据特定的数据值生成图形用户界面。例如根据列属于邮件地址域还是信用卡域,我们可以自动的生成图形交互界面并对输入进行验证。
其实,低代码平台在Oracle自身也得到了广泛的使用和验证。医疗保健系统通常非常复杂,而Cerner健康档案系统使用Oracle APEX实现了快速重建,这充分证明了APEX的能力和效率。另一个例证是自治数据仓库,使用低代码平台简化了整个分析工作流,包括低代码数据建模,低代码数据移动和低代码数据分析。
战略3:Generative AI(生成式人工智能)
在战略1中,声明使用意图可以将不同模式的数据融合在一起。新兴的AI搜索和生成式AI技术带来了声明式意图的二次革命,可以实现声明用户的意图。使用AI技术,任何人都可以使用自然语言搜索和查询非结构化数据,而这也是Oracle数据库正在增加的功能。非结构化数据的搜索使用了一种新的数据类型:AI向量。向量被用来表示图像,文本和视频等的语义内容。向量由一系列的数字组成,每个数字表示数据的一个重要特征。以一个房屋图片为例,Vector包含了建筑材料,楼层,装饰风格,屋顶类型等多个重要特征。这只是一个简单的例子,更复杂的对象可能有成百上千的特征。这些特征并非人工定义,而是通过机器学习算法使用神经网络自动生成。
向量之间的距离表示了语义的相似度。为了容易理解,我们只取2个特征。通过距离,我们可以很直观地看到两栋房子是非常相似,还是完全不同。
词语的相似性也是类似的,构建的向量可以将词语归类,例如动物,水果,地域等。我们还可以用向量来表示整个文档,从而知道文档的类型,文档的内容,并可以把相近的文档组织在一起。
在了解了向量是什么后,接下来Juan Loaiza介绍了如何使用向量。实际上,非结构化数据的向量搜索可以与业务数据的传统搜索相结合,企业级的用例包括基于语义的文档搜索,基于语义的图像搜索,相似模式匹配,异常和欺诈检测,产品推荐等。
以一个房源搜索应用为例,客户仅上传了一张图片。要得到良好的匹配结果,就必须结合业务数据,如客户数据和产品数据。例如,房子是否在出售,在哪里出售,售价多少,是否满足客户预算,是否满足客户偏好等。
如果向量数据和业务数据存放在不同的数据库,就需要持续不断的将业务数据输送到向量数据库中,而且每次传输的数据可能根据查询不同而变化,专属向量数据库在数据安全性上也可能存在问题。如果存放在一起,搜索则会更加有效。是的,我们只需要让Oracle数据库支持向量数据类型就好,之前对于JSON,Spatial,Graph,IOT,In-Memory等,Oracle就是这么做的,这就是融合数据库,Oracle一以贯之的数据库理念。
Oracle数据库23c已经支持AI向量搜索,与业务数据结合,可以使搜索的结果更加准确,详细的介绍可参见“走进 OCW | Oracle 推出集成向量数据库”。不止于此,Oracle还利用自身的技术积累和创新为向量处理技术赋能,包括向量索引和分区提升查询速度,RAC提升可扩展性和可用性,Exadata透明的卸载操作到存储层以提升搜索性能,Sharding实现数据主权,还有安全性,灾备,事务一致性,并行SQL,分析型视图等。
AI向量搜索可以将用户自然语言表达的问题映射到相关数据,然后用户问题和数据可以一起发送给生成式AI,这两种技术的结合就可以实现用户以自然语言声明他们的意图。
接下来,Juan Loaiza邀请了生成式AI技术专家Aidan Gomez,Cohere公司CEO和联合创始人,对生产式AI技术做了详细的介绍。
Aidan Gomez谈到,AI最常用的用例之一是知识增强。例如,知识工作者通常需要经历非常费力的研究过程,这可能需要数周或数月,需要阅读数十上百份文档才能得到答案。使用AI技术,这些事情可以让模型来做,这样他们就可以向模型提出问题,模型可以访问整个互联网,利用向量数据库和增强AI,他们还可以拥有专有信息,为您进行研究、综合、提炼总结,然后返回可验证的答案。他也谈到了生成式AI的局限性,即互联网信息的可信度有待提高,通过与Oracle数据库23c结合,客户可以两全其美:安全、可靠地访问企业数据,并保持其生成式 AI 基础模型的新鲜度和相关性。关于Oracle与生成式AI技术结合的详情,感兴趣的读者可以参看“走进 OCW | Oracle Cloud Infrastructure 提供企业生成式 AI 服务”和“走进 OCW | Oracle 推出生成式 AI 功能,助力企业改善客户服务”这两篇文章。
不限于最终用户,生成式AI可以让开发者使用自然语言声明他们的意图,包括生成SQL代码,生成所需的使用格式等。例如对于SQL代码生成,开发者只需说出所需的数据即可,其过程如下动图:
对于低代码开发者,生成式AI可以帮助其生成应用蓝图,其过程如下动图:
对于数据专家,AI同样可以帮助他们简化日常管理任务,快速定位和修复工作负载相关问题,从而节省出更多的时间为业务服务。
在本节的最后,Juan Loaiza强调了两点。第一,生成式AI虽然强大,但不能完全取代专家,因为其无法生成完整的解决方案,生成的初稿还需要专家来验证和改进;第二,生成式AI应该用于生成声明式意图,而不是代码。即使可以,生成的大量代码也将非常难以理解、验证、维护和扩展。基于应用蓝图生成的应用程序会更简单、更可靠和可扩展。
总结关系模型为构建应用提供了坚实的基础,包括理论基础和技术基础。利用SQL这种声明式数据意图语言来生成数据访问,关系型应用极大的提高了生产效率。关系模型将逻辑模型与存储模型分离,从而可以透明地优化应用。这包括索引,并行SQL,分区,逆范式和Exadata等。一些应用更喜欢使用JSON或Graph格式和API,他们与关系模型的不匹配使应用开发更为复杂。为了满足应用的偏好,新的特定格式的数据库产生了,但数据和应用的开发都被割裂开来。使用战略1,数据统一存放于一处,Oracle的二元性技术以使用为中心,可以按照声明的意图生成所需的数据格式,从而实现数据存储与数据访问,数据专家与应用开发者之间的和谐统一。
使用战略2,Oracle APEX可自动生成应用,大幅提高生成效率。使用简单,并支持企业级应用。
使用战略3,支持AI向量的Oracle数据库与生成式AI结合,可进一步提高生产效率。
回顾整个主题演讲,数据和应用开发的未来就是“从Generate到Innovate”,无论是数据专家,开发者,低代码开发者还是最终用户,无需手工编码,只需简单的声明其意图,就可以自动获得所需的数据格式,应用和业务结果,从而大幅提高生产效率。基于45年来的技术积累和永不停止的创新步伐,所有相关技术都以Oracle数据库为核心统一实现,从而实现了开发的融合,管理的融合,用户使用的融合。
从割裂到统一,从各美其美到和而不同,美美与共。Oracle数据库将一直秉承“开放融合,应用简化”的原则,帮助用户简化数据管理和提高应用开发效率,实现大同的数据世界。
编辑:小炒肉