欢迎访问深圳敏捷云计算科技有限公司!

在甲骨文云OCI上部署开源数据湖屋:探索未来数据管理的新境界

2024-03-05 原创文章

云服务平台——这不仅仅是一个技术术语。它是理解和分析所有数据的现代开放架构。它融合了数据湖和数据仓库的功能,处理各类企业数据,提供高级分析和商业洞察。云服务平台打破数据孤岛,让你能够跨数据领域进行分析。你可以在Oracle Cloud Infrastructure (OCI)上从零开始构建自己的云服务平台。


架构

这个架构呈现了一个平台拓扑图,组件概览,推荐的最佳实践,以及使用Terraform自动部署在OCI上的开源数据湖。

云服务平台可以存储和聚合企业应用数据。数据既可以发送到数据湖,也可以发送到数据仓库。存

在数据湖中的数据,既可以被处理并加载到数据仓库,也可以直接从数据湖中读取,用于高级分析。

下图展示了这一参考架构。



在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自动化了配置、数据加载、查询执行和故障处理,为开发人员和数据库管理员节省了大量时间。

Oracle Cloud Infrastructure对象存储在此架构中作为数据湖。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利用一个网络文件系统(NFS),该系统由位于私有子网中的两个虚拟机实例共享。这些实例存在于一个可用性域内的两个不同故障域中。文件系统存在于一个专用的私有子网中,该子网具有网络安全组(NSG),允许所有实例访问挂载目标。用户可以通过OCI负载均衡器访问Zeppelin和Grafana,这是这种高可用设计的一部分。


这种架构使用Oracle Cloud Infrastructure数据集成,从对象存储加载文件到MySQL。《MySQL, Data Integration and Data Science for Marine Life Workshop》介绍了如何设置和运行数据流,以对象存储为源,MySQL为目的地。


这个架构包含以下OCI组件:

租户

  • 当你注册Oracle Cloud Infrastructure时,Oracle会在Oracle Cloud中为你设置一个安全且独立的分区,这就是租户。在你的租户内,你可以在Oracle Cloud中创建、组织和管理资源。租户与公司或组织同义。通常,一家公司将拥有一个租户,并在该租户内反映其组织结构。一个租户通常与一个订阅关联,一个订阅通常只有一个租户。


分区

  • 分区是Oracle Cloud Infrastructure租户内的跨区域逻辑分区。使用分区来组织Oracle Cloud中的资源,控制对资源的访问,并设置使用配额。为了控制对特定分区中资源的访问,你需要定义策略,指定谁可以访问资源以及他们可以执行什么操作。


策略

  • Oracle Cloud Infrastructure身份和访问管理策略指定谁可以访问哪些资源,以及如何访问。访问权限在组和分区级别授予,这意味着你可以编写一个策略,为一个组在特定分区或租户内提供特定类型的访问权限。


区域

  • 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负载均衡服务提供从单一入口点到后端多个服务器的自动化流量分配。


计算实例

  • Oracle Cloud Infrastructure计算服务允许你在云中配置和管理计算主机。你可以根据CPU、内存、网络带宽和存储的资源需求,启动具有不同形状的计算实例。创建计算实例后,你可以安全地访问它,重启它,附加和分离卷,并在不再需要时终止它。


文件存储

  • Oracle Cloud Infrastructure文件存储服务提供了一个持久、可扩展、安全、企业级的网络文件系统。你可以从任何裸机、虚拟机或VCN中的容器实例连接到文件存储服务的文件系统。通过使用Oracle Cloud Infrastructure FastConnect和IPSec VPN,你还可以从VCN外部访问文件系统。


互联网网关

  • 互联网网关允许VCN中的公共子网与公共互联网之间的流量。


网络地址转换(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来额外保护你的密钥、证书和秘密。
  • 网络服务提供了两种使用安全规则控制数据包级别流量的虚拟防火墙功能:安全列表和网络安全组(NSG)。NSG包含一组仅适用于你选择的单个VCN中的一组VNIC的入站和出站安全规则。例如,你可以选择VCN中多层应用的Web层中充当Web服务器的所有计算实例。
  • NSG安全规则的功能与安全列表规则相同。然而,对于NSG安全规则的源或目的地,你可以指定NSG而不是CIDR块。因此,你可以轻松编写安全规则,以控制同一VCN中两个NSG之间的流量或单个NSG内的流量。当你创建数据库系统时,你可以指定一个或多个NSG。你还可以更新现有的数据库系统以使用一个或多个NSG。


计算

  • 根据每个实例的需求,选择适当的OCPUs和内存组合,并按需配置本地NVMe和/或块存储。考虑使用可用的灵活形状,它在组合OCPUs和内存方面提供更多的灵活性。



考虑因素

在Oracle Cloud Infrastructure (OCI)上部署数据湖时,请考虑以下因素:


整合数据源

  • 对于对象存储与MySQL的整合,我们选择了Oracle Cloud Infrastructure数据集成。如果你想使用开源工具,Talend是一个选择。由于Talend的下载不能自动化(下载需要你注册Talend),因此它没有被包含在这个架构中。


数据科学和机器学习

  • 我们选择了开源的Apache Zeppelin作为我们的数据科学和数据发现平台。或者,你可以使用Oracle Cloud Infrastructure数据科学,这是实现高级数据驱动洞察和应用程序的关键工具,它为数据科学家提供自动化的工作流程、JupyterLab笔记本和数百种开源工具,以及构建模型的简化方法。它是一个协作平台,通过共享和以结构化的方式复制模型,以及安全地实现企业级结果的方法,使团队能够一起工作。该平台是全托管的,满足现代企业的需求。


分析和报告

  • 在这个架构中,我们选择了Grafana作为分析平台。考虑使用Oracle Analytics Cloud,这是一个高级的托管服务,可以全面满足你的分析和报告需求。


实例可用性和可扩展性

  • 在这个示例中,我们展示了同一可用性域内不同故障域的两个实例的高可用性架构。你可以选择将实例放置在不同的可用性域(在可用的区域内),以获得更高的故障容忍度。
  • 另一种方法,代表了对更具挑战性和变化性能需求的更动态适应,是使用实例池和自动伸缩。
  • 实例池允许你在同一区域内基于相同配置创建多个Oracle Cloud Infrastructure计算实例。
  • 自动伸缩使你能够根据性能指标(如CPU利用率)自动调整实例池中计算实例的数量。自动伸缩有助于在高需求时期为用户提供持续的性能,并在低需求时期帮助你降低成本。


数据库可用性和可扩展性

  • 考虑部署额外的Oracle MySQL DB系统作为备用副本,以实现高可用性。你可以将副本放置在不同的故障域、可用性域或区域。


数据库备份

  • Oracle MySQL数据库服务支持两种类型的备份:包含数据库系统中所有数据的完整备份和自上次完整备份以来添加或更改的数据的增量备份。备份以以下方式运行:手动:在控制台中的操作或通过API发出的请求启动备份。你可以将手动备份保存一天到365天。自动:自动安排的备份无需任何操作即可运行,可以在你选择的时间进行。自动备份的保留期在一天到35天之间。默认保留值为七天。定义后,你不能编辑自动备份的保留期。


文件存储

  • 在这个示例中,我们利用了Oracle Cloud Infrastructure文件存储服务。另一种选择是,多节点架构可以使用共享块卷。块卷可以作为读写连接到多个实例。在这种情况下,必须安装群集感知系统或解决方案,如Oracle Cluster File System版本2(OCFS2)。


安全

  • 考虑使用Oracle Cloud Guard主动监控和维护OCI中资源的安全。Oracle Cloud Guard使用你可以定义的检测器配方检查资源的安全弱点,并监控操作员和用户的风险活动。当检测到任何错误配置或不安全活动时,Oracle Cloud Guard会推荐纠正措施,并根据你可以定义的响应者配方协助这些措施。对于需要最高安全性的资源,Oracle建议你使用安全区域。安全区域是与基于最佳实践的Oracle定义的安全策略配方相关联的分区。例如,安全区域中的资源不能从公共互联网访问,且必须使用客户管理的密钥加密。当你在安全区域中创建和更新资源时,OCI会根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。


应用程序开发

  • Oracle Application Express(Oracle APEX),Oracle的低代码开发平台,是一个可以用来在数据湖上构建可扩展和安全企业应用程序的工具示例。
  • 使用Oracle APEX,开发人员可以快速开发和部署解决实际问题并提供即时价值的引人注目的应用程序。你不需要成为众多技术的专家就能提供复杂的解决方案。专注于解决问题,让Oracle APEX处理其余事务。它拥有世界级的功能,你可以在任何地方部署它。

                   

部署

这个参考架构的Terraform代码可在GitHub上获取。你可以一键将代码拉取到Oracle Cloud Infrastructure资源管理器中,创建堆栈并部署它。或者,你可以从GitHub下载代码到你的电脑,自定义代码,并使用Terraform CLI部署架构。

  • 使用Oracle Cloud Infrastructure资源管理器中的示例堆栈进行部署:

点击链接,如果你还没有登录,请输入租户和用户凭证。

查阅并接受条款和条件。选择你希望部署堆栈的区域。按照屏幕上的提示和指示创建堆栈。创建堆栈后,点击Terraform操作,并选择“规划”。等待作业完成,并审查计划。如需进行任何更改,请返回到堆栈详情页面,点击编辑堆栈,并进行所需更改。然后,再次运行“规划”操作。如果不需要进一步更改,请返回到堆栈详情页面,点击Terraform操作,并选择“应用”。




使用GitHub中的Terraform代码进行部署:

  1. 前往GitHub。
  2. 克隆或下载仓库到你的本地电脑。
  3. 按照README文档中的说明操作。



开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。


Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。


利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。


Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。