寻找在 S3 存储桶中复制 oracle 表的最佳方法

Posted

技术标签:

【中文标题】寻找在 S3 存储桶中复制 oracle 表的最佳方法【英文标题】:Look for best approach replicating oracle table in S3 bucket 【发布时间】:2021-01-29 06:16:59 【问题描述】:

我的问题:

我需要一个从我组织的 Oracle 数据库(Oracle 云基础设施)到 AWS S3 存储桶的数据管道。理想情况下,我希望 oracle 有某种机制来推送已进入数据库的新数据,以便在添加时将其推送到 S3 存储桶(以任何格式)。

问题:

这对于 Oracle 原生,特别是 Oracle 云基础设施是否可行?

或者你有没有见过更好的解决方案?

注意: 我已经看到 AWS 有 Data Sync 产品,这似乎可以帮助解决这个问题,但我不确定它是否适合这个特定问题。

【问题讨论】:

【参考方案1】:

S3 存储桶是对象存储;它只能保存完整的文件。您无法像在普通文件系统中那样打开和更新现有文件,即使只是添加新行。您需要在 Oracle 之外构建整个文件,然后使用其他机制将其推送到 S3。

您可能需要考虑以下步骤:

使用 Oracle Cloud 与其对象存储的集成,将您的数据从 Oracle Cloud 导出到 Oracle 对象存储(类似于 S3)。 (https://blogs.oracle.com/datawarehousing/the-simplest-guide-to-exporting-data-from-autonomous-database-directly-to-object-storage)

那么:

让客户使用 Oracle 的 Amazon S3 兼容性 API 像通常访问 S3 一样访问 Oracle 对象存储。 (https://docs.oracle.com/en-us/iaas/Content/Object/Tasks/s3compatibleapi.htm)

或者:

使用外部驱动的脚本将数据(从 Oracle 对象存储或直接从数据库)下载到服务器,然后将文件推送到 Amazon S3。服务器可以是本地的,也可以托管在 Oracle OCI 或 AWS 中,只要它可以访问这两个对象存储即可。 (https://blogs.oracle.com/linux/using-rclone-to-copy-data-in-and-out-of-oracle-cloud-object-storage)

或者:

您可以使用 AWS Data Sync 将数据直接从 Oracle 对象存储移动到 S3,具体取决于网络配置要求。 (https://aws.amazon.com/blogs/aws/aws-datasync-adds-support-for-on-premises-object-storage/)

【讨论】:

以上是关于寻找在 S3 存储桶中复制 oracle 表的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

复制同一 Amazon S3 存储桶中的文件

如何重命名 Amazon S3 存储桶中的文件? [复制]

从同一存储桶中另一个子文件夹中的 s3 子文件夹中复制文件

从 s3 到 Redshift 的数据复制:清单与我需要下载的文件位于不同的存储桶中

AWS S3在两个存储桶之间复制文件和文件夹

如何使用angular js将aws s3文件复制到同一个存储桶中的特定文件夹