使用 Golang API 将表从 Amazon RDS 导出到 csv 文件

Posted

技术标签:

【中文标题】使用 Golang API 将表从 Amazon RDS 导出到 csv 文件【英文标题】:Exporting table from Amazon RDS into a csv file using Golang API 【发布时间】:2020-04-23 08:41:58 【问题描述】:

我正在寻找某种方法将 SQL 查询结果从 AWS lambda 直接导出到 CSV 文件。我发现了这个类似的问题 - Exporting table from Amazon RDS into a csv file。但它不适用于 AWS Golang API。

实际上,我想安排一个 lambda 函数,该函数将每天从 RDS(SQL Server)查询一些视图/表,并将其以 CSV 格式放入 S3 存储桶。所以,我想在lambda中直接下载CSV形式的查询结果,然后上传到S3。

我也找到了AWS的data pipeline服务,直接将RDS数据复制到S3,不知道这里能不能用。

如果有人能建议我正确的流程和实现它的参考,那将会很有帮助。

【问题讨论】:

你是在找这个query results to a CSV file in the local machine 还是I want to schedule a lambda function(我假设你指的是AWS lambda)。在云端和本地机器上运行代码是两件不同的事情。 @DmitryHarnitski 很抱歉造成混乱。我想安排一个 lambda 函数。 【参考方案1】:

您可以在运行 Amazon RDS 的数据库实例之间传输文件 SQL Server 和 Amazon S3 存储桶。通过这样做,您可以使用亚马逊 S3 具有 SQL Server 功能,例如 BULK INSERT。例如,您可以 将 .csv、.xml、.txt 和其他文件从 Amazon S3 下载到数据库 实例主机并将数据从 D:\S3\ 导入数据库。全部 文件存储在数据库实例的 D:\S3\ 中

参考:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/User.SQLServer.Options.S3-integration.html

【讨论】:

感谢您的回复。但我想从 RDS(SQL Server)而不是 Aurora 查询数据。 按照文档,我创建了 IAM 角色并将其设置到 RDS 实例中。但即使花了这么多时间,我也无法创建一个存储过程来将结果导出为 CSV。我收到此错误 - ***.com/questions/59602890/…

以上是关于使用 Golang API 将表从 Amazon RDS 导出到 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pandas 或 python 将具有数百万行的表从 PostgreSQL 复制到 Amazon Redshift

如何使用 Java 将表从 MySQL 导入 Hive?

Sqoop - 使用 Avro 格式将表从 Oracle 导入 Hive 的最佳选择是啥?

将表从数据库导出到 csv 文件

如何使用 pyodbc 将表从 MS Access 迁移到 Postgres?

使用 KSQL 将表从 Kafka 转储到 MariaDB