1

场景:我们有一个源 SQL 数据库表,每 24 小时更新一次。我正在设计一个自动化过程,该过程将CSV在源数据库更新发生后将该表导出到文件到 EC2 实例。

问题:我试图找出将包含数据库记录的 CSV 文件从使用bcp命令行实用程序导出的表加载到 Aurora Serverless PostgreSQL 数据库的最佳方法。

我目前的计划是使用脚本从该文件中生成一堆insert语句CSV

然后使用 EC2 Linux 实例上的 AWS CLI 与 Aurora 数据库通信并执行以下命令:

// empty the table 
AWS rds-data execute-statement --transaction-id $ID --database users --sql "delete from mytable"

使用 Aurora Serverless 的数据 API功能运行事务,例如:

$ $ID=`aws rds-data begin-transaction --database users --output json | jq .transactionId`
// populate the table with latest data
$ aws rds-data execute-statement --transaction-id $ID --database users --sql "insert into mytable values (value1,value2)"
$ aws rds-data execute-statement --transaction-id $ID --database users --sql "insert into mytable values (value1,value2)"
$ ...
$ aws rds-data commit-transaction $ID

有没有更好的方法将该 CSV 文件加载到 Aurora DB?或者我应该坚持上述解决方案。

注意:我在 AWS 文档上找到了那篇文章 - “从 Amazon S3 存储桶中的文本文件将数据加载到 Amazon Aurora MySQL 数据库集群”,但它明确指出This feature currently isn't available for Aurora Serverless clusters.

4

0 回答 0