在 OCI 上部署开源数据资源池
体系结构
此架构引入了平台拓扑、组件概述、推荐的最佳实践以及 Terraform 自动化功能,可在 OCI 上部署开源数据资源池。
数据资源池可以存储和聚合企业应用数据。数据可以发送到数据湖或数据仓库。数据资源池中存在的数据可以进行处理并加载到数据仓库中,也可以直接从数据资源池读取用于高级分析。
下图说明了此引用体系结构。

插图 open-source-data-lakehouse.png 的说明
open-source-data-lakehouse-oracle.zip
在 OCI 上的此数据资源池体系结构中,Oracle MySQL HeatWave 用于数据仓库。Oracle MySQL HeatWave 是唯一具有内置高性能内存查询加速器的 MySQL 云服务。对于数据库管理员和应用程序开发人员来说,这是唯一允许他们直接从 MySQL 数据库运行 OLTP 和 OLAP 负载的服务。由于 MySQL 针对 OLTP 进行了优化,因此许多 MySQL 实施使用单独的 OLAP 数据库进行业务分析。
Oracle MySQL HeatWave 按数量级为分析和混合工作负载提高 MySQL 性能,且对现有应用不做任何更改。Oracle MySQL HeatWave 为事务和分析负载提供统一的平台。这样一来,无需花费大量时间且成本高昂的 ETL 复杂且需要与单独的分析数据库集成。Oracle MySQL HeatWave 中的 MySQL Autopilot 自动执行预配、数据加载、查询执行和故障处理,从而节省开发人员和 DBA 的大量时间。
Oracle Cloud Infrastructure Object Storage 用作此体系结构中的数据资源池。利用 OCI 对象存储,企业可以将所有数据存储在经济高效的弹性环境中,同时提供必要的处理、持久性和分析服务来发现新的业务洞察。通过 OCI 对象存储上的数据资源池,您可以存储和整理结构化和非结构化数据,并使用来自多个来源的大量高度多样化的数据。
提供的体系结构包含以下开源组件:
- Apache Zeppelin
Apache Zeppelin 是一个基于 Web 的笔记本,它支持数据驱动的交互式数据分析和协作文档,包括 SQL、Scala、Python、R 等。
Zeppelin 用于此体系结构中的数据科学和数据探索。在 Zeppelin 中,您可以创建笔记本并利用 Zeppelin 解释器概念,该概念允许插入任何语言或后端数据处理系统。通过从 Zeppelin 到 MySQL 和到对象存储的连接,您可以在真正的数据湖内部查询体验中同时运行联合查询并从数据仓库和数据湖中检索数据。
- Grafana
Grafana 是此体系结构中的开源平台。Grafana 是一个流行的 Web 应用程序,用 TypeScript(前端)和 Go(后端)编写。它为支持的数据源提供图表和图形,其中一个是 MySQL。许多插件在线可用来扩展 Grafana。
Zeppelin 和 Grafana 使用网络文件系统 (Network File System,NFS),该文件系统由放置在专用子网中的两个虚拟机实例共享。这些实例位于可用性域内的两个不同容错域中。该文件系统存在于专用专用子网中,该子网具有网络安全组 (Network Security Group,NSG),通过该子网可以从所有实例访问挂载目标。用户可以通过 OCI 负载平衡器访问 Zeppelin 和 Grafana,这是此高可用性设计的一部分。
此体系结构使用 Oracle Cloud Infrastructure Data Integration 将文件从对象存储加载到 MySQL。MySQL“数据集成和数据科学 for Marine Life”研习会介绍了如何设置和运行对象存储作为源和 MySQL 作为目标的数据流。
该体系结构具有以下 OCI 组件:
- 租户
租户是您注册 Oracle Cloud Infrastructure 时 Oracle 在 Oracle Cloud 中设置的安全隔离分区。您可以在租户内的 Oracle Cloud 中创建、组织和管理资源。租户与公司或组织同义。通常,公司有一个租户,并反映公司在该租户中的组织结构。一个租户通常与一个订阅关联,一个订阅通常只有一个租户。
- 区间
区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间在 Oracle Cloud 中组织资源,控制对资源的访问,以及设置使用限额。要控制对给定区间中资源的访问,您需要定义策略来指定谁可以访问资源以及他们可以执行的操作。
- 策略
Oracle Cloud Infrastructure Identity and Access Management 策略指定谁可以访问哪些资源以及如何访问哪些资源。在组和区间级别授予了访问权限,这意味着您可以编写策略向组授予特定区间或租户中特定类型的访问权限。
- 区域
Oracle Cloud Infrastructure 区域是一个局部地理区域,其中包含一个或多个数据中心,称为可用性域。区域独立于其他区域,而广阔的距离可以分离它们(跨国家甚至大陆)。
- 虚拟云网络 (VCN) 和子网
VCN 是可在 Oracle Cloud Infrastructure 区域中设置的可定制的软件定义网络。与传统的数据中心网络一样,VCN 允许您完全控制您的网络环境。VCN 可以具有多个不可重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 分段到子网,这些子网可以限定到区域或可用性域。每个子网包含一个连续的地址范围,这些地址与 VCN 中的其他子网不重叠。您可以在创建子网后更改其大小。子网可以是公共子网,也可以是专用子网。
- 可用性域
可用性域是一个区域中的独立数据中心。每个可用性域中的物理资源都与其他可用性域中的资源隔离,因而具备容错能力。可用性域不共享电源、冷却设备或内部可用性域网络等基础设施。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 故障域
故障域是可用性域内一组硬件和基础设施。每个可用性域具有三个具有独立电源和硬件的容错域。在多个容错域之间分配资源时,您的应用可以承受容错域中的物理服务器故障、系统维护和电源故障。
- 对象存储
OCI 对象存储是互联网规模的高性能存储平台,可提供经济高效的可靠持久性。对象存储可以存储任意内容类型的非结构化数据,包括分析数据。您可以直接从互联网或云平台内安全地存储或检索数据。借助多个管理接口,您可以轻松启动较小且无缝扩展,而不会降低性能或服务可靠性。
通过存储不经常使用的数据,然后通过与 Apache Zeppelin 无缝联接数据,将对象存储用作数据仓库的冷存储层。对于需要保留很长时间且很少或很少访问的文件,使用归档存储。
- MySQL HeatWave
Oracle MySQL 数据库服务是完全托管的数据库服务,它允许开发人员使用全球广受欢迎的开源数据库快速开发和部署安全的云原生应用。Oracle MySQL HeatWave 是 Oracle MySQL 数据库服务的新型集成高性能内存查询加速器,可加快 MySQL 在分析和事务处理查询方面的性能。
- 数据集成
Oracle Cloud Infrastructure 数据集成是完全托管的云原生服务,它可以将各种数据源中的数据提取、加载、转换、清理和重新映射到目标 Oracle Cloud Infrastructure 服务。ETL(提取转换负载)在 Spark 上利用完全托管的横向扩展处理。用户使用直观的无代码用户界面设计数据集成流程。该界面可优化集成流来生成高效的引擎和编排,并自动分配和扩展执行环境。OCI 数据集成提供交互式探索和数据准备,并通过定义规则来处理模式更改,帮助数据工程师防止模式偏差。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancing 服务提供从单个入口点到后端多个服务器的自动流量分配。
- 计算实例
Oracle Cloud Infrastructure Compute 服务允许您在云中预配和管理计算主机。您可以通过配置启动计算实例,以满足 CPU、内存、网络带宽和存储的资源需求。创建计算实例后,您可以安全地访问它,重新启动它,连接和分离卷,并在不再需要时终止它。
- 文件存储
Oracle Cloud Infrastructure File Storage 服务提供持久、可扩展、安全的企业级网络文件系统。您可以从 VCN 中的任何裸金属、虚拟机或容器实例连接到文件存储服务文件系统。您还可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN 从 VCN 外部访问文件系统。
- Internet 网关
互联网网关允许 VCN 中的公共子网与公共互联网之间的通信。
- 网络地址转换 (network address translation,NAT) 网关
NAT 网关允许 VCN 中的专用资源访问互联网上的主机,同时不会向传入的互联网连接公开这些资源。
- 网络安全组 (NSG)
NSG 用作云资源的虚拟防火墙。使用 Oracle Cloud Infrastructure 的零信任安全模型,将拒绝所有流量,您可以控制 VCN 中的网络流量。NSG 包含一组入站和出站安全规则,这些规则仅应用于单个 VCN 中的一组指定 VNIC。
建议
- VCN
创建 VCN 时,根据计划连接到 VCN 中的子网的资源数量,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择与您的内部部署网络或任何其他网络不重叠的地址范围,以便必要时在 VCN 和内部部署网络之间设置连接。
设计子网时,请考虑流量和安全性要求。将特定层或角色中的所有资源连接到可以用作安全边界的同一子网。
- 安全性
使用策略限制谁可以访问贵公司拥有的 Oracle Cloud Infrastructure (OCI) 资源以及他们如何访问这些资源。
要成功实施安全,需要特定策略。考虑使用 Oracle Cloud Infrastructure Vault 为密钥、证书和密钥提供额外保护。网络服务提供了两个虚拟防火墙功能,它们使用安全规则在数据包级别控制流量:安全列表和网络安全组 (network security group,NSG)。NSG 包含一组入站和出站安全规则,这些规则仅应用于在单个 VCN 中所选的一组 VNIC。例如,您可以选择在 VCN 中多层应用的 Web 层充当 Web 服务器的所有计算实例。
NSG 安全规则的功能与安全列表规则相同。但是,对于 NSG 安全规则的源或目标,您可以指定 NSG 而不是 CIDR 块。因此,您可以轻松编写安全规则来控制同一 VCN 中两个 NSG 之间的流量,或者单个 NSG 中的流量。创建数据库系统时,可以指定一个或多个 NSG。您还可以更新现有数据库系统以使用一个或多个 NSG。
- 计算
可以选取具有适当 OCPU 和内存组合的配置,并根据需要为每个实例预配本地 NVMe 和/或块存储。考虑使用可用的灵活配置,这种配置可以提供更灵活的 OCPU 和内存组合。
考虑事项
在 Oracle Cloud Infrastructure (OCI) 上部署数据资源池时,请考虑以下事项:
- 集成数据源
对于与 MySQL 的对象存储集成,我们选择了 Oracle Cloud Infrastructure 数据集成。如果您想要使用开源工具,Talend 是一个选项。此架构中未包括人才,因为其下载无法自动进行(下载需要您注册人才)。
- 数据科学和机器学习
我们选择了开源 Apache Zeppelin 作为我们的数据科学和数据发现平台。此外,您还可以使用 Oracle Cloud Infrastructure Data Science,它是高级数据驱动的洞察和应用的关键推动因素,可帮助数据科学家访问自动化工作流、JupyterLab 笔记本和数百个开源工具,以及用于构建模型的简化方法。它是一个协作平台,使团队能够协作处理以结构化和重现模型的方法,从而实现企业级结果。该平台完全托管,可满足现代企业的需求。
- 分析和报告
在此架构中,Grafana 被选为分析平台。考虑使用 Oracle Analytics Cloud,这是一个可以全面满足分析和报告要求的高级托管服务。
- 实例可用性和可扩展性
在此示例中,在高可用性体系结构中,我们在同一可用性域内的不同容错域中显示两个实例。您可以选择将实例放置在不同的可用性域中(如果有的话,在区域中),以实现更高的容错能力。
另一种方法是使用实例池和自动缩放,这种方法可以更动态地适应更苛刻和不同的性能需求。
通过实例池,您可以根据同一区域中的相同配置预配和创建多个 Oracle Cloud Infrastructure Compute 实例。
利用自动缩放,您可以根据性能指标(例如 CPU 占用率)自动调整实例池中的计算实例数。自动缩放可帮助您在高需求期间为用户提供一致的性能,并有助于您在低需求期间降低成本。
- 数据库可用性和可扩展性
考虑将其他 Oracle MySQL 数据库系统部署为备用副本,以实现高可用性。可以将副本放置在其他容错域、可用性域或区域中。
- 数据库备份
Oracle MySQL 数据库服务支持两种类型的备份:数据库系统中所有数据的完整备份,仅包含自上次完整备份以来添加或更改的数据的增量备份。备份通过以下方式运行:
- 手动:控制台中的操作或通过 API 发出的请求将启动备份。人工备份最少可保留一天,最多可保留 365 天。
- 自动:自动安排的备份在您选择的时间运行,无需任何必需的交互。自动备份保留 1 到 35 天。默认保留值为 7 天。定义后,无法编辑自动备份的保留期。
- 文件存储
在此示例中,我们将利用 Oracle Cloud Infrastructure File Storage 服务。另外,多节点体系结构还可以提供共享块存储卷。一个块存储卷可以作为读写卷连接到多个实例。在这种情况下,必须安装群集感知系统或解决方案,例如 Oracle Cluster File System 版本 2 (OCFS2)。
- 安全性
考虑使用 Oracle Cloud Guard 主动监视和维护 OCI 中资源的安全性。Oracle Cloud Guard 使用检测器配方,您可以定义它们来检查资源是否存在安全漏洞以及监视操作员和用户是否有风险活动。检测到任何错误配置或不安全活动时,Oracle Cloud Guard 将根据您可以定义的响应器配方建议更正操作并协助执行这些操作。对于需要最大安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,安全区域中的资源不能从公共 Internet 访问,必须使用客户管理的密钥对其进行加密。在安全区域中创建和更新资源时,OCI 会针对安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。
- 应用程序开发
Oracle Application Express (Oracle APEX) 是 Oracle 低代码开发平台的一个示例,您可以使用该工具在数据资源池之上构建可扩展且安全的企业应用程序。
使用 Oracle APEX,开发人员可以快速开发和部署引人注目的应用,解决实际问题并提供即时价值。您不需要成为众多技术的专家来提供复杂的解决方案。专注于解决问题,让 Oracle APEX 关注其他问题。它具有先进的功能,您可以在任何地方部署它。
部署
GitHub 上提供了此参考体系结构的 Terraform 代码。只需单击一下即可将代码提取到 Oracle Cloud Infrastructure Resource Manager 中,然后创建堆栈并部署堆栈。或者,您也可以使用 Terraform CLI 将代码从 GitHub 下载到计算机,定制代码并部署体系结构。
- 使用 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈进行部署:
- 在 GitHub 中使用 Terraform 代码进行部署:
- 转至 GitHub。
- 将存储库克隆或下载到本地计算机。
- 按照
README文档中的说明进行操作。