gpt4 book ai didi

amazon-s3 - 在不通过 S3 的情况下将 csv 加载到 Redshift

转载 作者:行者123 更新时间:2023-12-04 05:30:15 27 4
gpt4 key购买 nike

我正在使用 SQL 工作台/J 与 redshift 集群交互,我想在不使用 COPY 命令的情况下将 CSV 文件(大约 500k 行)加载到 redshift 表中(我确实有插入权限)(因为我没有权限复制到 s3)。

你知道它是否可行(可能使用插入),如果是,你能帮我吗?

请注意,我拥有的唯一特权是:在集群中选择、插入、更新和删除表。

谢谢。

最佳答案

COPY命令是将数据加载到 Redshift 的最佳方式 .唯一的其他方法是 INSERT逐行数据,这可以使用 python 脚本来完成,该脚本利用了 pyscopg2运行 INSERT与 Redshift 建立连接后的 SQL 查询。

因此,只需逐行迭代您的 CSV 文件并执行 INSERT查询所有行:

import psycopg2
conn = psycopg2.connect("dbname = 'your_db_name' user= 'your_user' host='redshift_cluster_endpoint_without_port_number' port='port_number' password='password'")
cur = conn.cursor()
for row in rows:
cur.execute("INSERT INTO TABLE_NAME VALUES(%s,%s,%s,%s)" %(row[0],row[1],row[2],row[3]))

哪里 row[0],row[1],row[2],row[3]是一行中所有列的数据。

请记住,逐行插入会比 COPY 慢且效率低下命令。

关于amazon-s3 - 在不通过 S3 的情况下将 csv 加载到 Redshift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44070988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com