Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 从S3到RDS的数据迁移_Amazon Web Services_Amazon S3_Aws Lambda_Aws Dms_Aws Data Pipeline - Fatal编程技术网

Amazon web services 从S3到RDS的数据迁移

Amazon web services 从S3到RDS的数据迁移,amazon-web-services,amazon-s3,aws-lambda,aws-dms,aws-data-pipeline,Amazon Web Services,Amazon S3,Aws Lambda,Aws Dms,Aws Data Pipeline,我正在处理一个需求,在这个需求中,我正在将csv文件从prem服务器上的多部分上传到S3 Bucket 为了使用AWS Lambda实现这一点,我创建了一个预先签名的url,并使用此url上载csv文件。现在,一旦我在AWS S3中拥有了该文件,我希望将其移动到AWS RDS Oracle DB。最初,我计划使用AWS Lambda进行此操作 所以一旦我在S3中有了这个文件,它就会触发lambda(S3事件),lambda会将这个文件推送到RDS。但是这个问题在于文件大小(600MB) 我正在寻

我正在处理一个需求,在这个需求中,我正在将csv文件从prem服务器上的多部分上传到S3 Bucket

为了使用AWS Lambda实现这一点,我创建了一个预先签名的url,并使用此url上载csv文件。现在,一旦我在AWS S3中拥有了该文件,我希望将其移动到AWS RDS Oracle DB。最初,我计划使用AWS Lambda进行此操作

所以一旦我在S3中有了这个文件,它就会触发lambda(S3事件),lambda会将这个文件推送到RDS。但是这个问题在于文件大小(600MB)

我正在寻找另一种方式,每当有一个文件上传到S3,它应该触发任何AWS服务,该服务将把这个csv文件推送到RDS。我已经通过了AWS DMS/数据管道,但无法找到任何方法来自动化此迁移


我需要在每次s3上传时自动执行此迁移,这也是经济高效的。

设置s3集成并构建存储过程以帮助自动加载。找到详细信息

更新:


看起来您甚至不需要创建存储过程。您只需使用所述的RDS过程即可。然后,您只需创建一个事件驱动的lambda函数,该函数在给定的S3事件(例如,在object PUT()、POST()、COPY等)上触发,该函数传递访问事件对象所需的S3元数据。是一个简单的Python示例,说明Lambda和config可能是什么样子。然后,您将使用在触发器事件上传递的元数据(如Python示例中所述)动态创建过程调用,然后执行该过程。您还可以向同一lambda功能添加满足您需求的后续工作流逻辑,即
TASK\u ID
fetch&operation handling,monitoring等,或者通过添加额外的lambda来分离这些关注点。希望这有帮助

是部分数据还是完整数据?@mokugo devops在S3中?是的,全部数据。。这意味着当我在S3中有完整的数据时,我希望它被迁移。但是数据超过500 MB。因此,该过程需要替换数据库?不,在数据库中,我需要在现有数据库中创建一个条目。我是否可以在此添加s3事件以触发每次上载时的迁移。我还应该将存储过程放在何处以实现自动化。谢谢@benfarr。我试过这个,它成功了。但是我仍然需要手动调用存储的进程来迁移数据。没问题,@Nimmo。我刚刚更新了回复,应该可以帮助您完成其余的工作。如果需要添加自定义存储过程以完成其他工作,也可以从lambda函数触发自定义存储过程。谢谢@benfarr。它起作用了。我在运行“SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(p_bucket_name=>'destinion',p_directory_name=>'DATA_PUMP_DIR')作为任务id from DUAL”查询时得到任务id作为响应。我可以将此数据转储到rds表中吗?此外,我无法看到sql中的数据。只是我正在获取任务id。