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

甲骨文云OCI 利用无服务器应用程序自动化数据仓库数据加载:高效智能的数据处理解决方案

2024-03-20 原创文章

Oracle Functions是一种无服务器、高度可扩展、完全托管的函数即服务(FaaS)平台,建立在Oracle云基础设施之上,并由开源的Fn Project引擎驱动。开发者可以使用Oracle Functions编写和部署代码,实现业务价值,而无需担心底层基础设施的配置或管理。Oracle Functions是容器原生的,函数被打包为Docker容器镜像。

架构

这个参考架构展示了您如何使用无服务器函数自动化从各种数据库或应用程序生成的文件中提取数据并将数据加载到数据仓库以进行分析的过程。

架构图展示了数据流程。当压缩的CSV文件上传到Oracle云基础设施对象存储中的特定存储桶时,事件服务被触发。发出的事件调用一个函数,该函数从上传的文件中提取数据,并将数据加载到Oracle自动化数据仓库实例中。数据加载到数据仓库后,处理过的CSV文件被移动到Oracle云基础设施对象存储中的另一个存储桶。

此架构包含以下组件:

区域

Oracle云基础设施区域是一个地理位置本地化的区域,包含一个或多个称为可用性域的数据中心。各区域相互独立,彼此之间可能相隔很远(横跨国家甚至大洲)。

可用性域

可用性域是区域内独立、互不依赖的数据中心。每个可用性域中的物理资源与其他可用性域的资源隔离,提供故障容忍性。可用性域不共享基础设施,如电力或冷却系统,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该区域内其他可用性域。

虚拟云网络(VCN)和子网

VCN是您在Oracle云基础设施区域内设置的可自定义的软件定义网络。与传统数据中心网络一样,VCN为您提供对网络环境的完全控制。VCN可以拥有多个非重叠的CIDR块,这些块在创建VCN后可以更改。您可以将VCN划分为子网,这些子网可以针对一个区域或一个可用性域。每个子网包含一个连续的地址范围,不与VCN中的其他子网重叠。创建后可以更改子网的大小。子网可以是公共的或私有的。

在此参考架构中,函数部署在一个私有区域子网中。

事件和函数

Oracle云基础设施服务发出事件,这些是描述资源变化的结构化消息。事件针对创建、读取、更新或删除(CRUD)操作、资源生命周期状态变化以及影响云资源的系统事件发出。

Oracle函数使您能够部署代码,直接调用或响应事件触发它。Oracle函数使用托管在Oracle云基础设施注册表中的Docker容器。

在这个架构中,当文件上传到Oracle云基础设施对象存储中的存储桶时,会发出一个事件。该事件调用一个基于Python的函数,提取文件中的数据并将其加载到Oracle自动化数据仓库。处理后的文件随后移动到另一个存储桶。

对象存储

对象存储提供快速访问大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全地在互联网上或云平台内直接存储和检索数据。您可以无缝扩展存储,而不会经历性能或服务可靠性的下降。对于需要快速、立即和频繁访问的“热”存储,使用标准存储。对于长期保留且很少或很少访问的“冷”存储,使用归档存储。

自动化数据仓库

Oracle自动化数据仓库是一种自动驾驶、自我保护、自我修复的数据库服务,专为数据仓库工作负载优化。您无需配置或管理任何硬件,也无需安装任何软件。Oracle云基础设施负责创建数据库,以及备份、打补丁、升级和调整数据库。

建议

您的需求可能与这里描述的架构不同。以下建议可作为起点。

虚拟云网络(VCN)

创建VCN时,根据您计划连接到VCN子网的资源数量,确定所需的CIDR块数量及每个块的大小。使用标准私有IP地址空间内的CIDR块。

选择不与您打算建立私有连接的任何其他网络(在Oracle云基础设施、您的本地数据中心或其他云提供商)重叠的CIDR块。

函数

此参考架构中使用的函数是用Python编写的。Oracle函数还支持Java、Node、Go和Ruby等语言。根据您的选择使用合适的编程语言。

Oracle自动化数据仓库

在参考架构中,函数通过使用Simple Oracle Document Access(SODA)访问数据仓库。您可以通过修改函数实现其他访问方法,例如使用cx_oracle和Oracle客户端库的SQL。

在参考架构中,函数和数据仓库位于同一子网。如有必要,您可以将它们部署在不同的子网中。

           

考虑因素

可扩展性

数据库

您可以随时手动调整数据库的CPU核心数量。自治数据库的自动扩展功能允许您的数据库在任何时候使用高达当前基础CPU核心数量的三倍。随着需求增加,自动扩展会自动增加正在使用的核心数量。自治数据库允许您随时扩展存储容量,而不影响可用性或性能。

函数

Oracle函数根据请求负载自动创建和移除函数容器。您只在函数被调用及运行期间支付费用。

安全

使用Oracle云基础设施身份和访问管理(IAM)策略来控制谁可以访问您的云资源以及可以执行哪些操作。

您可以将仅函数调用权限或函数管理和函数调用权限分配给特定群组。

您还可以使用IAM策略控制从Oracle函数到Oracle云基础设施对象存储的访问权限。

在Oracle云基础设施对象存储中,默认启用加密,且无法关闭。

此参考架构展示了数据仓库和函数在同一子网中。为了增强隔离,您可以为数据仓库使用单独的子网。

为了保护数据库密码或任何其他秘密,考虑使用Oracle云基础设施保管库服务。

部署

这个参考架构的Terraform代码在GitHub上可获取。你可以一键将代码拉入Oracle云基础设施资源管理器,创建堆栈并部署。或者,从GitHub下载代码至你的电脑,定制代码,并通过Terraform命令行界面(CLI)部署架构。

通过Oracle云基础设施资源管理器部署:

a. 点击,如果你还未登录,输入租户和用户凭证。

b. 阅读并接受条款和条件。

c. 选择你希望部署堆栈的区域。

d. 按照屏幕上的提示和指示创建堆栈。

e. 创建堆栈后,点击Terraform操作,选择计划。

f. 等待任务完成,并审查计划。

g. 如需进行任何更改,返回到堆栈详情页面,点击编辑堆栈,并做出所需更改。然后,再次运行计划操作。

h. 如果不需要进一步更改,返回到堆栈详情页面,点击Terraform操作,选择应用。

通过Terraform CLI部署:

a. 访问GitHub。

b. 下载或克隆代码到你的本地电脑。

c. 按照README中的说明操作。

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

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

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

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

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务