我想使用 python boto3 脚本将数据加载到 Amazon Redshift 集群中

Posted

技术标签:

【中文标题】我想使用 python boto3 脚本将数据加载到 Amazon Redshift 集群中【英文标题】:I want to load data into an Amazon Redshift Cluster using python boto3 script 【发布时间】:2019-07-14 22:12:32 【问题描述】:

我想使用 boto3 Python 脚本将数据加载到 Amazon Redshift 集群中。

我想使用 boto3 python 创建一个脚本来执行以下操作:

    创建集群 将数据加载到集群中 创建集群性能报告

我在 boto3 中看到没有可用于将数据加载到集群中的方法。可能来自平面文件或 S3。

如何使用 boto3 或任何其他 python 包将数据加载到集群中?

【问题讨论】:

【参考方案1】:

1.创建 Amazon Redshift 集群

调用create_cluster() 命令。

2。将数据加载到集群中

Amazon Redshift 像普通的 PostgreSQL v8.0.2 数据库一样运行。要在数据库本身上运行命令(包括COPY 命令),您应该建立到数据库的 JDBC/ODBC 连接。

见:Connecting to an Amazon Redshift Cluster Using SQL Client Tools - Amazon Redshift

一种常用的方法是使用psycopg2

conn = psycopg2.connect(...)
cur = conn.cursor()
cur.execute("COPY...")
conn.commit()

见:Copying data from S3 to AWS redshift using python and psycopg2

3.创建集群性能报告

绩效报告有两种信息来源:

Amazon Redshift Performance Data 来自 Amazon CloudWatch 数据库本身中的STL Tables for Logging

见:Monitoring Amazon Redshift Cluster Performance - Amazon Redshift

【讨论】:

优秀。很好的答案,非常感谢。再次感谢。

以上是关于我想使用 python boto3 脚本将数据加载到 Amazon Redshift 集群中的主要内容,如果未能解决你的问题,请参考以下文章

使用 argparse 将 Shell 参数传递给 Boto3 Python

python 脚本使用boto3启动类似于给定实例的实例

如何避免将大文件重复加载到 python 脚本中?

AWS ECS Docker 容器 Boto3 IAM 权限

如何在 Python 中使用 boto3 模块检查 Redshift 的集群状态?

Boto3 AWS KMS 加密解密文件