我在独立的EC2 VM上运行了一个Oracle实例,我想做两件事。
1)将我的一个Oracle表中的数据复制到可由DynamoDB读取的云目录中。这只会进行一次。
2)然后每天我想将对源表的任何更改附加到DynamoDB表中,作为另一行将共享一个id,以便我可以看到该行如何随时间变化。
理想情况下,我想要一个解决方案,就像将SQL查询的结果传输到将数据转储到云文件系统(S3,HDFS?)的程序一样简单,然后我会想要转换将数据转换为可以使用DynamoDB读取的格式。
所以我需要这些东西:
1)传输设备,我希望能够在命令行上键入这样的内容:
sqlplus ... "SQL Query" | transport --output_path --output_type etc etc
2)对于我需要一个云文件系统的路径,S3看起来是显而易见的选择,因为我想要一个交钥匙解决方案。
3)这最后一部分很不错,因为我总是可以使用临时目录来保存原始文本并在另一步中转换它。
答案 0 :(得分:1)
我认为您所指的“云目录”或“云文件系统”是S3?我不知道在这种情况下它是怎么回事,但你使用的是非常模糊的术语。
每当您将新文件复制到S3时触发DynamoDB插件非常简单,只需让S3触发Lambda函数来处理数据并插入到DynamoDB中。我不清楚你将如何将数据导入S3。如果您只是运行一个cron作业来定期查询Oracle并将一些数据转储到一个文件,然后将其复制到S3,那么这应该可行。
您需要知道无法附加到S3上的文件,每次将新数据推送到S3时都需要编写整个文件。如果您想以某种方式流式传输数据,那么使用Kenesis而不是S3可能是更好的选择。