问题描述
我的问题:
我需要从组织的 Oracle DB(Oracle 云基础设施)到 AWS S3 存储桶创建的数据管道。理想情况下,我希望有某种机制让 oracle 将已进入数据库的新数据推送到 S3 存储桶,因为它被添加(以任何格式)。
问题:
这是否适用于 Oracle 原生,特别是 Oracle 云基础设施?
或者有没有您见过的更好的解决方案?
注意: 我看到 AWS 有数据同步产品,这似乎可以解决这个问题,但我不确定它是否适合这个特定问题。
解决方法
S3 存储桶是对象存储;它只能保存完整的文件。您无法像在普通文件系统中那样打开和更新现有文件,即使只是添加新行也是如此。您需要在 Oracle 之外构建整个文件,然后使用其他机制将其推送到 S3。
您可能需要考虑以下步骤:
- 使用 Oracle 云与其对象存储的集成,将您的数据从 Oracle 云导出到 Oracle 对象存储(类似于 S3)。 (https://blogs.oracle.com/datawarehousing/the-simplest-guide-to-exporting-data-from-autonomous-database-directly-to-object-storage)
然后:
- 让客户使用 Oracle 的 Amazon S3 Compatibility API 像通常访问 S3 一样访问 Oracle Object Store。 (https://docs.oracle.com/en-us/iaas/Content/Object/Tasks/s3compatibleapi.htm)
或:
- 使用外部驱动的脚本将数据(从 Oracle Object Store 或直接从数据库)下载到服务器,然后将文件推送到 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 Object Storage 移动到 S3,具体取决于网络配置要求。 (https://aws.amazon.com/blogs/aws/aws-datasync-adds-support-for-on-premises-object-storage/)