非常抱歉,您的搜索操作未匹配到任何结果。

我们建议您尝试以下操作,以帮助您找到所需内容:

  • 检查关键词搜索的拼写。
  • 使用同义词代替键入的关键词,例如,尝试使用“应用”代替“软件”。
  • 重新搜索。
联系我们 登录 Oracle Cloud

面向应用开发的融合数据架构

参考架构基于特定设计原则,可满足现代应用开发的核心要求。借助这些原则,开发人员可以轻松构建集 AI/ML、数据驱动的分析和消息传递平台于一体的 Web/移动应用。事件驱动的架构可以实时响应事件,帮助金融、零售、医疗卫生、能源和制造等行业加快定制应用开发,以及扩展 Oracle 应用包。如今的大多数企业应用都以数据为中心,拥有各种各样的数据,最好在融合数据库上进行开发。这些架构模式还支持使用 Java、Python、Javascript 和 Go 等常用语言进行编程开发。低代码应用开发可以压缩所需的技术层,这对于某些应用来说是理想的选择。由 Kubernetes 管理的应用和数据库容器可以部署在 Oracle 云 (OCI)、独立环境和其他主流公有云上。

Web/移动应用指南

Web 和移动应用通常包含一个用户可见的前端、一个查询生成器和一个用于执行数据计算和为前端服务的后端。当响应用户或 API 请求时,Web 应用将与 API 或数据库中存储的持久数据交互。应用必须支持多种客户端,例如浏览器和移动设备,且必须能够基于 API 和事件与其他系统和应用交互。同时,应用的后端必须安全可靠,支持按需扩展。

请将 Web 应用构建为一组可独立进行测试和部署,并由不同应用团队所有的微服务;将微服务公开为 REST API,使用内置事件网格(面向事件和消息)或为每个微服务创建的 API 进行微服务间通信;使用数据库中的 REST 端点和 ML 模型,将机器学习功能集成到智能应用中。

此外,Web 和移动应用还需要具有高度的可扩展性来满足峰值需求,必须能够在高延迟下正常运行。它们必须具有 24/7 的全天候可用性,必须具有足够的弹性以便按需生成数据,必须能够避免存储的信息丢失。

请使用 React Native 或 SwiftUI 等前端框架构建移动应用,创建与后端(面向所有数据和扩充服务)交互的用户界面。这样,开发人员可以专注于工作流和应用逻辑,通过明确定义且弹性、安全、支持自主扩展的 API 来访问后端。

最后,安全性对于面向互联网的 Web 应用至关重要。请重点关注数据加密、TLS、DDoS 保护、防火墙以及细粒度用户和数据访问管理,通过 Oracle Database Wallet 和 OCI Vault 服务管理和保护密码和密钥,确保数据库和应用安全无虞。

设计原则

使用轻量级、开源框架和成熟的编程语言

使用 Javascript (React) 或 SwiftUI 构建移动和 Web 前端;为后端数据和应用服务引入多语言支持(Python、Node.js、Java、PL/SQL、Go 等等),满足基于这些语言编写的用例和微服务的需求;在靠近数据存储的位置处理数据。

构建基于 API 进行通信的应用即服务

Web 或移动应用通常需要与组织外部的其他业务系统和服务对接。对此,Web 应用中的服务应通过明确定义的 API 来进行交互和协作。请通过 Oracle REST Data Services (ORDS) 来使用或构建新的数据 API;通过 OML 服务现成可用的 REST 端点以及内嵌 OML4Py 的 Python 执行来实现机器学习功能;使用 Oracle 云上可用的 API 网关作为所有客户端的单一入口点,将 API 请求路由至相应的服务;配置负载均衡器服务和入口控制器,在微服务之间实现安全的 API 通信。

使用全托管式服务消除应用开发的复杂性、减少运行时数量以及简化数据管理

维护 Web 或移动应用基础设施一般需要执行大量的部署、升级、修补、扩展以及保护工作。对此,请使用 Oracle 自治数据库等托管式服务以及 Oracle 云上的一系列其他托管式服务,以此尽可能提高可用性和可扩展性,响应不断变化的 Web 和移动应用需求。托管式服务可确保应用 24/7/365 可用,而且当负责托管基础设施的数据中心发生故障时,它们将得到有效保护。我们建议您仅在供应商托管式服务不可用时使用自管理服务。

应用层无状态

请使应用的中间层组件保持无状态。如果要存储应用状态,请使用 Oracle 自治数据库来存储应用数据和状态,确保实现出色的一致性和持久性以及快速(从应用状态根)恢复。对于总体应用恢复,通过单一数据库来保存状态更加简单,也更加高效。

使用全功能的融合数据库满足所有数据的需求

Web 和移动应用通常会使用多种格式的数据,需要在数据存储中存放以及搜索和处理数据。这些数据包括表格(关系型)数据、非结构化数据、XML、JSON、空间或图形数据等等。传统意义上,这种数据多样性意味着要使用关系数据库来存储关系数据,使用文档存储来存储非结构化数据,以及使用图形数据库来存储分层链接数据。但是,多个数据库共存常常会带来操作复杂性和数据不一致。对此,请使用 Oracle 融合自治数据库,它可以存储多种类型的数据,支持为数据编制索引,提供了多种数据搜索方法,能够满足跨所有数据的统一分析需求。

仪器端到端监控和追踪

有些 Web 或移动应用包含数百种由不同应用和业务团队所有的服务。通过开放工具接口进行统一观测,了解这些固有分布式系统的行为非常重要。请使用从所有应用层和数据层导出的指标、日志和跟踪记录来建立集中式观测解决方案,进而监视从前端到后端的整个体系,快速查找和修复应用中的问题,以及持续进行性能调优。

通过自动数据复制和故障恢复消除单点故障

Web 和移动应用必须具有弹性,支持故障恢复,能够尽可能减少停机时间以及避免数据丢失。对此,冗余有助于消除单点故障,请使用 Kubernetes 提升数据库容器和应用容器的弹性。Oracle Database Kubernetes 运算符正是为此而设计的,它能够使用包含了数据层的 CI/CD 管道来提升弹性。请在 Kubernetes 集群中构建至少包含三个节点的节点池,每个节点位于(OCI 上一个多可用性域区域中的)一个单独的可用性域中;在一个 OCI 可用性域区域中,在 Kubernetes 中构建节点池,每个节点位于一个单独的容错域中;使用一个公共负载均衡器和多个专用负载均衡器(具有多个入口控制器)在 Kubernetes 中构建冗余。

同时,请使用 Oracle 自治数据卫士实现最高自治数据库可用性,尽可能减少运营停机时间和数据丢失。

最后,请遵循最小权限原则,确保用户和服务账户仅拥有执行各自任务所需的最小权限。您可以使用 Oracle 云身份与访问管理 (IAM) 来控制哪些人可以访问 Web 应用组件和数据库;可以在 IAM 中使用多因素验证对管理员实施强验证,确保其仅能访问应用组件和数据库。

架构

这一面向 Web 或移动应用的融合数据架构模式由一个前端和多个微服务构成,其后端使用基于 Oracle 自治数据库构建的应用和数据服务。对于数据库以外的服务,容器中的微服务由一个 Kubernetes 集群管理。

请查看下图,直观了解这一参考架构。

Web 参考架构

该架构包含以下组件(组件既可以是基于 Oracle Cloud Infrastructure 的全托管式服务,也可以是其他部署环境下的等效服务,例如 Oracle 自治数据库是一项基于 OCI 的托管式服务,而 Oracle 数据库在其他环境下运行)。

  • Oracle 自治数据库
    Oracle 自治数据库可面向所有类型的需要存储、处理和分析的数据提供数据服务,满足您对运营数据库、数据仓库和数据分析的需求。此外,它还提供丰富的应用服务,包括内置事件和消息传递平台(事务性事件队列)、机器学习、REST API 和低代码开发环境。简而言之,Oracle 自治数据库是一个全面的数据平台,适用于微服务形式的现代 Web/移动应用。
  • Container Engine for Kubernetes (OKE)
    Kubernetes 服务是一种可扩展、高度可用,支持您将容器化应用部署到云端的全托管式服务。在您指定您应用所需的计算资源后,Container Engine 即会在 OCI 上,在现有租户内供应相应资源。它可以使用 Kubernetes,跨主机集群自动部署、扩展和管理容器化应用。
  • 负载均衡器
    Oracle Cloud Infrastructure 负载均衡服务可以自动从单一入口点向后端的多个服务器分配流量。
  • Oracle Cloud Infrastructure 身份与访问管理 (OCI IAM)
    OCI IAM 可为应用提供强大的身份验证、MFA、社交登录、最终用户自行注册、身份管理、单点登录 (SSO) 和身份治理支持。

使用场景

GrabDish 是一款移动食品交付应用。它采用基于 Oracle 自治数据库的微服务架构,为每项服务分别提供容器化数据库(容器数据库中的可插拔数据库);使用内置消息传递平台(即事务性事件队列 (TEQ))进行消息传递,为开发人员简化通用微服务模式。GrabDish 由多种语言编写而成,搭载了 AI/ML 服务,使用了多种类型的数据。有关 GrabDish 的详细信息,请参见 Livelabs:http://bit.ly/simplifymicroservices

更多内容

详细了解相关资源。

事件驱动指南

消息传递解决方案可将应用组件(包括现有本地部署系统)连接到云解决方案。消息有效负载包括应用生成事件、用户输入、数据变更或设备生成事件。利用消息传递解决方案,开发人员可以在一个明确定义的分布式处理管道中执行事件和数据传输,也可以将消息和事件发布到多个负责处理、扩充和分析数据的独立下游系统。如今,大多数基于微服务构建的现代应用都离不开事件驱动架构。事件驱动架构的事件网格支持在分布式系统的任何位置,使用一个或多个事件代理,安全、近乎实时地使用系统中生成的任何事件。事件处理完毕后,数据(有效负载)将被存储在一个数据湖仓一体中,为分析和 AI/ML 模型训练提供支持。

请构建高度可用、高度可靠和高度灵活的消息传递解决方案。而使用 Oracle 的融合数据库平台、云服务和优秀实践,您可以轻松创建符合业务需求的消息传递和事件驱动解决方案。这可以最大限度减少开发集成工作、节约部署开销以及降低长期管理负担。

消息传递解决方案可以将各种应用组件(包括现有本地部署系统)连接到云解决方案,支持开发人员在一个明确定义的分布式、融合处理管道中执行数据传输,或者将消息和事件发布到多个独立的下游系统。

消息传递解决方案还应当能够缓冲数据和动态调整流程资源,以便透明地适应计划外的消息负载峰值。过去,企业很难部署和管理可靠的消息传递解决方案来满足这些目标,很难消除过高的复杂性和开销。现在,企业可以在云端轻松实施消息传递解决方案,交付专为可扩展性和性能而设计的消息传递服务。

设计原则

请按照以下设计原则,基于融合数据架构来构建消息传递应用或平台。

构建通过 API 进行通信的应用即服务

请使用 JMS 或 Kafka API 与 Oracle 事务性事件队列建立消息传递连接。标准 API 可提供应用可移植性,支持无缝构建混合和多云消息传递应用。

使用全托管式服务消除应用开发中的复杂性,减少运行时数量以及简化数据管理

请使用内置了基础设施维护和安全修补特性的全托管式服务运行应用,利用伸缩自动化功能来响应不断变化的负载。对此,Oracle 自治数据库是一款基于 OCI 的全托管式数据库服务,同时所有 OCI 区域均提供 Oracle 事务性事件队列这一 Oracle 数据库内置特性。

使用支持所有数据的全功能融合数据库

请使用原生支持广泛数据类型(JSON、关系、图形、空间等)的 Oracle 自治数据库,利用 Oracle 自治数据库功能简化应用逻辑。例如,您可以使用 SQL 来处理查询、联接和分析;使用事务来确保一致性和隔离;利用内置机器学习算法和分析来避免不必要的数据传输;使用安全功能和访问控制特性来保护敏感数据;使用复制特性来提高应用的可用性、可扩展性和弹性。

仪器端到端监控和追踪

一个消息传递应用可能包含数百种由不同应用和业务团队所有的服务。通过开放工具接口进行统一观测,了解这些复杂分布式系统的行为非常重要。请集中处理从所有应用层导出的指标、日志和跟踪记录,而不是由各个团队分别构建自己的解决方案。同时,TEQ 指标可以导出到 Prometheus,而 Prometheus 支持 Grafana 仪表盘,可满足调试和性能优化工作流需求。

请通过横向扩展消除单点故障,自动执行故障恢复。

由于 TEQ 是 Oracle 自治数据库的一部分,应用可以充分利用 Oracle 自治数据库的内置高可用性和跨区域灾难恢复功能,无需您执行任何额外工作。

最后,TEQ 的事务性消息传递还有助于轻松从外部故障中恢复。

采用深度防御方法为整个应用生命周期提供保护

请实施身份与访问控制 (IAM) 策略,仅允许授权用户创建、发送或接收来自流的数据;对端点实施最低可访问性原则,即通过 mTLS 和服务网关限制来自互联网的访问,确保安全访问消息传递端点;实施静态和动态数据加密,满足数据保密要求;使用 Database Wallet 保护面向数据库的连接凭证。

架构

融合数据库架构可出色满足现代应用的消息传递模式要求。该模式使用了 Oracle 自治数据库内置的事务性事件队列 (TEQ)。

在该架构下,您无需使用外部流处理或队列服务,还能通过事务性消息传递功能来简化通用微服务模式。

融合数据库架构图像

应用架构师应格外关注该架构杰出的可扩展性、性能和简单性:

  • 利用 Oracle 数据库中的事务性事件队列 (TEQ) 进行异步消息传递
    Oracle 融合数据库在一个可扩展的基础设施中融合了数据和消息处理,可简化数据库中所有数据和消息的生命周期管理和安全保护。与单独部署消息传递基础设施相比,Oracle 融合数据库支持在更靠近数据存储的位置处理数据,能够有效改善性能、增强安全性以及简化升级与维护。

    数据库中事务性事件队列可以跨消息传递和数据操作提供事务,简化微服务构建。它隐式支持事务性发件箱模式(无需您额外编码),可通过精确一次消息传递方法简化应用开发。同时,事务回退功能有助于您轻松从网络或服务器故障中恢复。
  • Oracle TEQ 高吞吐量消息传递可扩展至每天多达 1 万条消息
    对于高度严苛的消息传递工作负载,Oracle TEQ 可通过用于入队和出队操作的内存中加速器高速缓存来提供高吞吐量性能。它既支持事件处理中常见的小型消息,也支持更大的与业务工作流相关的有效负载。之所以支持更大的消息,是因为 TEQ 能够在消息高速缓存中分离有效负载与元数据管理。
  • 使用 Oracle TEQ 作为事件网格
    除了消息传递外,TEQ 还能作为一个安全的事件网格与 Kafka 互操作,帮助基于云而构建的企业应用实时将适当的事件传输到适当的应用。其中,事件转换由内置规则引擎负责,事件处理支持回调机制 — 在消息入队和出队时均可用。这些回滚机制可执行 Java、PL/SQL 或 OCI Functions。

    TEQ 可使用 Kafka 连接器与众多类型的事件生成器和使用者互操作。这将建立一个事件网格,为整个企业中的可扩展微服务应用开发环境提供重大支持。
  • Oracle TEQ 在单一平台中融合了 JMS 消息传递和类似 Kafka 的 Pub/Sub 功能
    使用 Oracle TEQ,您可以在单一消息传递系统中同时实现 JMS 消息传递和 Pub/Sub 流处理。Oracle TEQ 采用类似 Kafka 主题/分区的模式进行分区,是一个强大的现代消息传递引擎。当与 Oracle 融合数据库相结合时,它可以满足高度严苛的,采用消息传递模式进行事件交换的数据密集和事件驱动型应用的需求。

使用场景

FedEx 使用 Oracle E-Business Suite 和基于 Oracle TEQ 构建的业务事件管理器来处理每天投递的 1550 万个包裹的应收账款。

  • FedEx 使用 Exadata 云服务将 E-Business Suite 迁移到了 Oracle Cloud Infrastructure。E-Business Suite 工作流和业务事件系统完全基于 Oracle Advanced Queuing (AQ) 消息传递而构建。
  • Oracle AQ 简单易用,适用于高性能队列。Oracle TEQ 则是针对性能下降场景的替代方案,一个队列中可包含多个事件流。

Oracle 事务性事件队列可满足多种使用一次性密码 (OTP) 进行双因素身份验证 (2-FA) 的场景的需求。

  • 2-FA 广泛应用于全球零售行业的包裹投递验证。这一场景下,消息从商户应用发送至等待验证的客户应用和投递人员应用。
  • 2-FA 适用于在 ATM 取款时进行身份验证。在这一场景下,ATM 应用、银行应用和客户移动设备通过交换消息来进行身份验证。

更多内容

详细了解相关资源。

低代码指南

低代码平台非常适合与利益相关者合作构建机会性应用;构建数据报告和分析应用;扩展 SaaS 应用;以及对传统应用进行现代化改造。现实中,每一行代码都需要编写、维护、调试、升级和保护,都会消耗成本。对此,Oracle Application Express (APEX) 可提供直观的图形化开发体验,帮助开发人员消除这些成本。

与传统的手动开发方式相比,低代码平台可以帮助用户更快速地构建企业应用。它们非常适合与利益相关者合作构建机会性应用;构建数据报告和分析应用;扩展 SaaS 应用;以及对传统应用进行现代化改造。

借助低代码平台,您可以集中精力解决业务问题,而不必担心 Web 应用开发中的复杂性。这些复杂性包括安全性、可访问性、高效数据访问、性能和全球化。通过大幅减少需要维护的代码量,低代码平台可以有效消除这些复杂性。

Oracle Application Express (APEX) 可提供直观的图形化开发体验,帮助用户消除传统应用开发中常见的相关成本。

同时,Oracle Cloud Infrastructure (OCI) 可提供安全、可靠、可扩展的高性能基础设施,满足各种严苛应用的需求。它支持企业轻松扩展应用,为各种规模的任务提供支持 — 从小型工作组到数百万最终用户。本文档描述了构建低代码应用的设计原则和最佳实施路径。

设计原则

在实施低代码模式时,请遵循以下现代应用开发设计原则:

使用全托管式服务消除应用开发中的复杂性,减少运行时数量以及简化数据管理

在开发应用时请采用元数据驱动的低代码方法,尽可能以声明方式指定应用逻辑,仅在必要时编写代码。其次,请使用 SQL 直接与数据库中的数据交互。再次,请使用全托管式服务(例如 Oracle 自治数据库和 Oracle APEX Application Development (APEX Service)),以此大幅提高可用性和可扩展性,满足低代码应用不断变化的需求。最后,请使用 Oracle Real Application Clusters (RAC) 和 Oracle 数据卫士等数据库功能,确保低代码应用 24/7/365 全天候可用并且能够在托管基础设施的数据中心发生故障时进行故障转移。

自动构建、测试和部署

请使用 OCI 资源管理器来自动化供应 Oracle 自治数据库和 APEX 环境;使用随带 Liquibase 的 Oracle SQL Developer Command Line (SQLcl) 来自动部署数据模型变更;使用 APEX 一键应用部署功能,手动在不同环境中部署变更。

应用层无状态

Oracle APEX 采用无状态和无服务器模式,它将运行时应用状态存储在表中,支持用户间重用连接。这有助于大大减少高用户并发场景下的连接数量。

使用支持您所有数据的全功能融合数据库

低代码应用通常需要使用多种格式的数据,例如结构化(关系)数据、非结构化(XML/JSON 文档)数据和空间数据。由于 APEX 内置在 Oracle 自治数据库中,您可以使用 SQL、PL/SQL 和服务器端 JavaScript 来处理所有这些格式的数据。此外,由于 APEX 采用独特的架构,低代码应用可实现零延迟数据访问,提供最优性能。

仪器端到端监控和追踪

使用内置活动监视功能来监视和跟踪 APEX 应用活动,包括用户级别的详细的跟踪和调试信息;使用 APEX 管理服务审查工作区级别和实例级别的活动;使用性能中心来监视数据库活动,审查自动工作负载信息库 (AWR) 报告以识别主要资源使用者并查看调优建议。

通过自动数据复制和故障恢复功能消除单点故障

基于 Oracle 自治数据库的 APEX 采用包含数据层(Exadata 和 RAC)和中间层(冗余 Oracle REST Data Services 节点)的架构进行部署,具有高可用性。同时,Oracle 自治数据卫士可进一步提高应用可用性,防范可用性域故障。

采用深度防御方法为整个应用生命周期提供保护

请使用 OCI 身份与访问管理 (IAM) 来实施 APEX 应用身份验证,通过将授权方案分配给 APEX 应用和应用组件来实施基于用户角色或权限的访问控制;使用 APEX 的内置声明式功能来执行会话状态保护 (SSP) 和项目级加密,保护您的应用和数据;在 SQL 查询中使用绑定变量,防范 SQL 注入攻击;为应用配置适当的超时机制,以此自动终止非活动会话;运行内置 APEX Advisor 来检测潜在安全问题,例如未受保护的页面、项目和按钮;使用声明式转义和编程式转义 API 防范跨站点脚本 (XSS) 攻击。

架构

这一架构适用于使用 Oracle APEX Application Development (APEX Service) 和所有 Oracle 自治数据库服务进行低代码应用开发与部署。通过部署这些服务,企业可以自动供应和全面管理整个体系的所有组件,包括网关、负载均衡器和 Oracle REST Data Services。

低代码架构

上图展示了使用 Oracle APEX Application Development (APEX Service) 和所有 Oracle 自治数据库服务进行低代码应用开发与部署的底层架构。它提供了一个包含一个公共子网和一个专用子网的全托管式环境,还提供了以下服务:APEX Applications、Oracle REST Data Services API 和外部 REST API。这些服务通过互联网网关或 NAT 网关访问全托管式环境。

其中,公共子网包含一个负载均衡器,专用子网包含一个 Oracle REST Data Services 实例和一个 Oracle 自治数据库 — Oracle 自治数据库上部署了一个 Oracle APEX 实例。

来自 APEX 应用和 Oracle REST Data Services API 的流量将通过互联网网关路由至负载均衡器,后者将以双向方式将流量导向专用子网中的 Oracle REST Data Services 实例。随后,Oracle REST Data Services 服务将与 Oracle 自治数据库进行双向通信。最后,来自基于 Oracle 自治数据库的 Oracle APEX 实例的流量会通过 NAT 网关直接路由至外部 REST API。

在这一架构中,所有应用工件均被部署到数据库层,该层支持零延迟数据访问,因为应用层与数据库层之间不需要网络通信。

  • 网关和负载均衡器
    这一全托管式基础设施将自动供应,支持您访问 APEX 服务。这些服务对于低代码 APEX 应用开发人员完全透明。
  • Oracle APEX
    基于 Oracle 自治数据库的 Oracle APEX 为应用开发和部署提供了一个预配置、安全的全托管式环境。
  • 自治数据库
    Oracle 自治数据库是一款自治驱动、自治保护和自治修复,专门针对事务处理工作负载进行了优化的数据库服务。您不需要配置或管理任何硬件,也不需要安装任何软件,OCI 将全面负责数据库创建以及备份、修补、升级和调优工作。此外,Oracle 自治数据库还能提供一个融合数据库,满足您对所有类型的数据的存储、编录、搜索和处理要求。
  • Oracle REST Data Services
    Oracle REST Data Services (ORDS) 可以将 HTTPS 与您的 Oracle 数据库连接在一起。作为一个中间层 Java 应用,Oracle REST Data Services 提供了一个数据库管理 REST API、SQL Developer Web、一个面向 APEX 应用的 PL/SQL 网关,支持发布 RESTful Web 服务以便与 Oracle 数据库中的数据和存储过程交互。

其他考虑事项

在实施低代码模式时,您还需要注意以下事项:

  • 使用 APEX 开发的应用可以直接使用 REST API 或自动在本地同步 REST 数据,从而与外部服务和系统集成。
  • 您还可以使用内置的 REST Data Workshop 和 Oracle REST Data Services,将使用 APEX 开发的功能发布为 REST API 以供外部使用。

替代方案和反面模式

必要时,请使用以下替代方案,避免实施反面模式。

  • 替代方案
    对于特定边缘场景,您可以使用高控制技术扩展低代码应用。对于不适合使用低代码开发方法的应用组件,您可以使用 Java 或 JavaScript 应用来访问数据,实现通用的单一数据存储。在这一模式下,您可以灵活使用最合适的技术满足特定用例需求,使用低代码方法满足其他需求。
  • 反面模式
    对于绝大多数应用,我们都不建议手动编写。机会性应用的开发涉及很多复杂性问题,包括安全性、可访问性、高效数据访问、性能和全球化。使用低代码平台,您可以更高效地解决这些复杂问题。

使用场景

以下是低代码模式的一些示例:

  • 机会性应用
    有时当新的商机出现时,企业需要快速构建新的应用。同时,为了满足不断变化的业务需求和巩固竞争力,很多企业累积了大量应用。即使没有应用积压问题,业务优先级也可能会快速变化,需要企业快速构建应用并轻松按需更新。对此,企业可使用 APEX 来轻松构建和维护应用。
  • 数据报告和分析
    全面、准确地获取整个组织或某个部门的信息通常是一项极具挑战性的任务。首先,由于数据分散在多个系统中,现有报告作用有限,有时无法提供制定明智业务决策所需的详细信息。其次,很多企业难以限制哪些用户有权查看哪些内容,难以避免数据泄露。最后,运行预定义报告可能要耗费数小时的时间。而借助 APEX 及其广泛的报告和数据可视化功能,企业可以更加轻松为各种用户社区开发相应的仪表盘。
  • SaaS 和 EBS 扩展
    ERP 系统功能丰富,但有时无法提供用户需要的特定报告,不支持您企业或行业需要的特定功能。同时,很多企业的一些常见业务流程存在步骤繁琐、效率低下的问题。对此,使用 APEX 构建应用扩展不仅可以提供适当的信息,还可以大幅提高工作效率和改善用户体验。
  • 传统应用现代化
    Oracle Forms 应用提供的客户端/服务器用户体验往往落后于时代。这些旧系统一般都存在易用性和可访问性问题,难以与各种浏览器协同工作,而且不太适合移动环境。对此,Oracle APEX 是一个理想的现代化平台,可以轻松将 Oracle Forms 应用转换为现代 Web 应用。它能够原生运行旧应用的存储过程和 PL/SQL 程序包,极大地简化开发工作。
  • 替换电子表格
    曾几何时,几乎所有企业都使用电子表格来传递和报告数据。其原因在于,电子表格易于创建。只要有相应数据,任何人可以创建适当的电子表格。而在创建电子表格后,用户通常会将其发送给同事来更新信息,这不可避免会产生很多数据各不相同的副本和糟糕的业务流程。对此,请将单一数据源存储在高度安全的数据库中,然后使用基于浏览器的应用来维护数据。

更多内容

详细了解相关资源。

AI/ML 指南

大数据是一组可用来管理、收集、存储、编目、准备、处理和分析所有类型的数据(非结构化、半结构化和结构化)的功能和模式,无论数据来自数据库、视频、表单、文档、日志文件、网页还是图像等等。一个理想的机器学习平台应当采用全托管模式,支持数据工程师和数据科学家在模型开发生命周期中轻松执行所有这些步骤。

Oracle 大数据功能涵盖各种服务和工具,让您能够根据您的技能和喜好开始您的大数据之旅。Oracle 融合数据库可全面存储各种类型的数据,可按需扩展至数 PB 容量,支持快速提取数据和事件(采用事务性事件队列),能够以杰出的内置安全性可靠保护所有数据。使用 Oracle 自治数据库,您可以利用融合数据架构,在一个融合数据库平台上满足所有数据规模、数据类型、速度和准确性要求。

现实中,数据科学家和机器学习工程师不希望耗费宝贵的时间去供应、升级、修补和保护基础设施,希望专注于构建、训练和部署真正具有业务影响力的模型。对此,请采用全托管式机器学习平台,以便数据科学家轻松执行模型生命周期(构建、训练、部署和监视)中的所有步骤。同时,请使用来源无关的数据开展机器学习,以便数据科学家使用一致、可靠的数据来构建、训练和部署模型。

如今,大多数现代机器学习工具包都是开源工具包,是由 Python 编写的。因此,您的机器学习平台应当原生支持开源框架和 Python。同时,它还应支持用户通过安装自己的库或升级已安装的库来自定义机器学习环境;支持数据科学家全面利用结构化、非结构化或半结构化数据来训练模型,跨多个计算资源纵向或横向扩展提取、转换和加载 (ETL) 或训练步骤。

最后,您的机器学习平台应当支持轻松部署模型以便实时使用,应当尽可能减少摩擦(理想方式是通过简单的 REST 调用),应当能够保留已部署模型的谱系,确保模型可审计、可复现。

设计原则

在实施大数据和分析模式时,请遵循以下现代应用开发设计原则。

使用全托管式服务消除应用开发中的复杂性,减少运行时数量以及简化数据管理

数据的价值取决于您使用数据的能力。如今,大数据工具在开源社区中广受欢迎,而对于这些大数据工具的大部分功能,现代数据库都能提供等效特性,尤其是在数据仓库、分析、AI/ML 模型训练和部署领域。Oracle 融合数据库就是这样一种大数据平台。

Oracle 的原生高级功能(例如 Oracle ADW 业务数据平台外部表和 SQL)支持您在 Oracle 数据库和 OCI 对象存储中使用数据湖仓一体,实时存储和分析 PB 级数据。

自动构建、测试和部署

DataOps 可充分释放大数据管道的价值,在大数据领域发挥着举足轻重的作用。对此,Oracle Cloud Infrastructure 数据集成服务支持您高效摄取数据、实施 ETL 处理和 ELT 下推,以及创建可按顺序或并行连接各项任务的管道,简化流程。您可以在管道中使用 Oracle 云上和 Oracle 云外部的各种常用数据源;使用数据集成服务的调度功能定义每项任务的运行时间和频率;使用 Oracle Database Cloud Service Management 定义针对一组数据库的数据库作业计划;通过 CI/CD 管道以及面向应用开发人员的统一观测性来增强机器学习流程。

使用全功能的融合数据库满足所有数据的需求

请使用最佳工具来简化、自动处理和加速数据整合,充分释放业务价值。对于数据仓库、部门级数据集市以及包含结构化数据的服务层和表示层,请使用针对这些场景进行了优化的 Oracle 自治数据库。此外,Oracle ADW 业务数据平台还支持您连接分析、商务智能和报告工具(例如 Oracle 分析云)。

采用深度防御方法为整个应用生命周期提供保护

请制定适当的计划来保护您的数据。您需要跟踪所有引入了数据并从数据湖获取数据的作业,需要保留数据谱系元数据,需要确保访问控制策略始终处于最新状态。

请遵循最小权限原则来确保用户和服务账户仅拥有执行任务所需的最小权限。您可以使用 Oracle Cloud Infrastructure 身份与访问管理 (IAM) 来控制哪些人有权访问数据平台组件;通过 IAM 的多因素身份验证为管理员实施强验证;使用 Oracle 数据安全服务来捕获所有数据、用户和访问模式的安全状况信息;通过 Vault 服务存储敏感信息,例如密码和身份验证令牌。

架构

请使用可扩展的融合数据库(事务处理和数据仓库)来运营企业,存储和分析所有类型的数据。在这一架构中,各种数据源(最终用户、设备、事件、传感器和应用)通过数据集成服务 (Oracle GoldenGate) 和面向流处理数据的 Oracle 事务处理事件队列,向数据库提供数据。它将数据存储在 Oracle 自治数据库(Oracle 自治事务处理和 Oracle ADW 业务数据平台)中,使用 OCI 对象存储满足大数据(使用 SQL 处理外部表)需求,使用 Oracle 机器学习执行模型构建和部署,通过 Oracle 分析云来挖掘数据洞察。

其中,基于 Oracle 自治数据库的 Oracle 机器学习(OML 笔记本、OML AutoML UI、OMML 服务和 OML4Py)支持您浏览和准备数据,构建、评估和部署机器学习模型。

当您将模型训练所需的数据引入数据库后,该架构可提供丰富的强大功能。您可以在靠近数据的位置进行数据处理;可以通过数据探索功能探索和准备各种类型的数据源和事件,为 OML 训练做准备;可以使用 OML,通过 SQL、Python(使用 OML4Py)或无代码 AutoML 来构建、训练和部署模型;可以使用 OML 服务,以 ONNX 模型格式导入在其他环境(例如 OCI 数据科学,包括 Tensorflow 或 PyTorch)下训练的模型。

该模式采用“将算法移动到数据”的方法。您可以从所有数据源(使用外部表)访问或摄取所有数据,然后处理并将数据存储到一个面向 ML 模型的融合数据库。当在数据库中训练模型完毕后,您可以使用 SQL 查询(使用 PREDICTION 运算符)或 OML4Py API 直接部署模型。当然,您也可以使用 OML 服务来部署在外部环境下训练的模型。最后,Oracle 自治数据库还提供了文本、空间和图形分析机器学习功能。

AI/ML 架构

该架构使用了以下组件:

  • 自治数据库
  • OCI 数据目录
  • Oracle Machine Learning (OML) – 随带 SQL 和 OML4Py
  • OML 服务
  • Oracle 事务性事件队列 (TEQ)
  • GoldenGate 数据集成
  • Oracle Spatial Studio
  • Oracle Graph Studio
  • Oracle 文本引擎

它支持以下数据源:

  • 企业应用
  • 设备
  • 最终用户
  • 活动
  • 传感器
  • 所有数字资产

该架构在 VCN 中部署了以下组件:

  • 虚拟云网络 (VCN)
    VCN 是一个您可在 Oracle Cloud Infrastructure 区域中设置的可自定义的软件定义网络。与传统数据中心网络一样,VCN 同样支持您全面控制您的网络环境。一个 VCN 可包含多个不重叠的,可在创建 VCN 后更改的 CIDR 块。您可以将一个 VCN 细分为多个子网并将子网限定到某个区域或某个可用性域。其中,每个子网包含一系列不与 VCN 中其他子网重叠的连续地址。您可以在创建子网后更改子网大小。子网既可以是公共子网,也可以是专用子网。
  • 数据集成
    Oracle Cloud Infrastructure 数据集成是一项全托管式无服务器云服务,旨用于摄取和转换数据,满足数据科学和分析流程需求。它可以利用 Oracle 现代化的无代码数据流设计器,简化面向数据湖和数据仓库的复杂 ETL 和 ELT;同时支持您使用现成可用的运算符(例如联接、聚合或表达式)来配置数据。
  • ADB 中的 Oracle Cloud Infrastructure 事务性事件队列 (TEQ)
    Oracle 自治数据库中的 Oracle 事务性事件队列提供数据库集成式消息队列功能。它采用高度优化、分区的实施方法,充分利用 Oracle 数据库功能,不仅能够持久化存储消息,允许生产者和使用者高吞吐量地交换信息,还支持在基于不同数据库的队列之间传播消息。Oracle 事务性事件队列是一种高性能分区实施方法,每个队列支持多个事件流。
  • Oracle 自治数据库
    Oracle 自治数据库是一项自治驱动、自治保护和自治修复,专门针对数据仓库工作负载进行了优化的数据库服务,您不需要配置或管理任何硬件,也不需要安装任何软件,Oracle Cloud Infrastructure 将全面负责所有数据库创建工作。

    作为一项云数据仓库服务,Oracle 自治数据库可消除数据仓库运营、数据安全保护和数据驱动应用开发中的所有复杂性。它可以自动供应、配置、保护、调优、扩展和备份数据仓库,其提供的工具支持自助数据加载、数据转换、业务模式、自动洞察和内置融合数据库功能,可实现跨多种数据类型和机器学习分析的简易查询。
  • OCI 对象存储
    OCI 对象存储支持您快速访问大量的任意类型的结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等富文本。您可以安全、可靠地存储数据,然后直接从互联网或云平台检索数据;可以无缝扩展存储,不必担忧性能或可靠性出现任何下降;可使用标准存储进行“热”存储(需要快速、即时和频繁访问),使用归档存储进行“冷”存储(长时间保留、很少访问或几乎不访问)。

    这种互联网级的高性能存储平台可提供可靠、经济高效的数据持久性。利用 Oracle 对象存储服务,您可以存储无限数量、任意类型的非结构化数据,包括分析数据以及图像和视频等富文本。
  • 基于 Oracle 自治数据库的 Oracle 机器学习
    Oracle 机器学习基于 Oracle 自治数据库(自治事务处理和 ADW 业务数据平台)运行。它不仅支持空间和图形处理,还能满足许多其他场景的需要,例如包裹投递路径简化以及反洗钱领域的快速异常检测。
  • Oracle 分析云
    Oracle 分析云是一个同类优秀的云分析平台,可为业务分析师和业务用户提供强大支持。它提供了 AI 驱动的前沿自助分析功能,可满足数据准备、发现和可视化需求;提供了基于增强分析的智能企业和按需报告特性;支持自然语言处理和生成。无论您是业务分析师、数据工程师、平民数据科学家、部门经理、领域专家还是企业高管,Oracle 分析云都能帮助您轻松将数据转化为洞察。
  • 分析、机器学习和自定义应用
    这包括分析服务、Oracle 机器学习和自定义应用,适用于编录、准备、处理和分析大数据。
  • OCI Data Catalog
    Oracle Cloud Infrastructure Data Catalog 是一项适用于企业数据的全托管、自助式数据发现与治理解决方案,它能够提供一个协作环境,帮助数据工程师、数据科学家、数据管理员和首席数据官高效管理组织的技术、业务和运营元数据。

    Oracle Cloud Infrastructure 数据目录是一项元数据管理服务,可帮助数据专家高效发现数据,并为数据治理提供可靠支持。
  • Oracle GoldenGate
    这一全托管式服务可提供一个实时、基于日志的变更数据捕获 (CDC) 和复制软件平台,满足当今事务驱动型应用的需求。它可以跨异构环境,实时捕获、路由、转换和交付事务性数据。

注意事项和反面模式

对于大数据和分析,请注意以下事项。

  • 减少数据副本和移动
    数据移动不仅成本高昂,消耗资源和时间,还会降低数据保真度。因此,请根据数据类型、数据质量以及转换需求,选择合适的服务来存储和处理数据。首先,您可以使用 Oracle 融合数据库作为数据湖来存储所有类型的原始数据,实时管理多达数 TB 的运营与分析数据。您还可以通过适当的对象存储来扩展这一存储。其次,您可以使用 Oracle ADW 业务数据平台来存储转换后的数据,为演示做准备。适当的存储方法有助于避免复制和移动数据,能够减少重复数据副本 — 这些副本难以维护,难以保持同步。
  • 为用户提供所需数据接口
    企业数据和分析平台通常要满足多种用户需求,例如数据工程师、数据分析师、应用开发人员、大数据工程师、数据库管理员、业务分析师、数据科学家、数据管理员以及其他使用者。这些用户在使用数据方面分别有自己的需求和偏好。因此,理解各种使用场景以及数据使用者的需求非常重要。例如,对于 SQL 查询以及与商务智能工具对接,请使用 Oracle ADW 业务数据平台。

对于实施机器学习和人工智能,请注意以下事项。

  • 首先,请为模型开发生命周期的每一个步骤提供水平可扩展性,包括 ETL 和数据处理、模型训练以及模型部署。其次,请确保模型具有出色的再现性。现实中,模型需要具备可审计性和再现性。而要确保模型再现,您需要在保存模型时提供关于源代码、训练和验证数据集以及环境(第三方库和架构)的引用。对此,请使用 Git 存储库引用并提交散列值(以便跟踪代码),同时使用对象存储来保存训练和验证数据集的快照。
  • 版本控制代码、特性和模型。这是为了保证模型具有再现性。
  • 打包、共享和重用第三方运行时依赖;重用 Python 笔记本、作业和模型部署。这有助于尽可能降低各个步骤之间第三方依赖不匹配的风险。
  • 在限制数据传输时不限定数据源。将数据传输至模型训练环境是一个非常耗时的过程。因此,请尽可能使用跨笔记本环境或训练作业共享的数据库中的数据,同时保留本地数据集快照,以此进行模型训练和验证。

反面模式

在设计实施时,请注意以下事项:

  • 不使用融合数据库会导致数据碎片化、副本蔓延以及数据安全风险
  • 数据编录和治理的缺失会导致数据湖变成数据沼泽

替代方案和反面模式

必要时,请使用以下替代方案,避免实施反面模式。

  • 替代方案
    对于特定边缘场景,您可以使用高控制技术扩展低代码应用。对于不适合使用低代码开发方法的应用组件,您可以使用 Java 或 JavaScript 应用来访问数据,实现通用的单一数据存储。在这一模式下,您可以灵活使用最合适的技术满足特定用例需求,使用低代码方法满足其他需求。
  • 反面模式
    对于绝大多数应用,我们都不建议手动编写。机会性应用的开发涉及很多复杂性问题,包括安全性、可访问性、高效数据访问、性能和全球化。使用低代码平台,您可以更高效地解决这些复杂问题。

使用场景

以下是使用 Oracle Cloud Infrastructure (OCI) 数据和分析服务摄取、存储、编录、准备、处理和分析大数据的实施范例。

  • 数据仓库和业务分析

    使用 Oracle ADW 业务数据平台(作为数据仓库或数据集市)和 Oracle 分析云。

    • 数据集成服务可以从目标来源提取数据。其中,数据集成类型取决于数据是批数据、流处理数据还是同步的数据库记录,以及数据是存储在本地还是云端。
    • 将数据传输至 Object Storage 以便云服务共享访问,以及在将数据存储到 Autonomous Data Warehouse 或 Big Data 平台之前进行数据处理。此外,您还可以将数据直接传输至 Oracle ADW 业务数据平台,然后使用 ELT 功能进行转换,或者直接摄取其他数据库中的记录。
    • Oracle 分析云可基于数据库中的数据提供数据可视化,包括机器学习结果。它能够将尽可能多的处理工作推送到 Oracle ADW 业务数据平台,进行数据流处理。
    • 对象存储(作为一种可选方法)可满足活动归档或数据共享要求。活动归档能够将不常用的数据从 ADW 移动至成本更低的存储层(对象存储)。移动后,用户仍然可以查询数据,但性能会有所降低。此外,对象存储还可以用于存储跨多项云服务的共享数据。
    • Oracle Cloud Infrastructure 数据目录可以从 Oracle ADW 业务数据平台和对象存储数据源中收集元数据。您可以与 OCI 数据目录交互,以此使用和管理目录。
  • 使用数据湖和数据仓库,通过湖仓一体模式来管理所有类型的数据

    管理 ADW 业务数据平台中的数据,使用 Oracle 分析云执行数据可视化。

    • 数据集成服务可以从目标来源提取数据。其中,数据集成类型取决于数据是批数据、流处理数据还是同步的数据库记录,以及数据是存储在本地还是云端。
    • 通过云服务将数据传输至 Oracle 融合数据库,进行数据和事件处理(因为数据存储在 ADW 业务数据平台中)。您也可以将数据直接传输至 Oracle ADW 业务数据平台,然后使用 ELT 功能进行转换,或者直接摄取其他数据库中的记录。
    • ADW 业务数据平台可以从对象存储中查询数据,或者使用 SQL 或 Oracle Cloud Infrastructure 数据集成从对象存储中提取数据。

更多内容

详细了解相关资源。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. Oracle 专指 Oracle 境外公司而非甲骨文中国。
  2. 相关 Cloud 或云术语均指代 Oracle 境外公司提供的云技术或其解决方案。