使用 Python 将数据插入 RedShift
Posted
技术标签:
【中文标题】使用 Python 将数据插入 RedShift【英文标题】:Insert data into RedShift by using Pyhon 【发布时间】:2018-06-15 15:29:17 【问题描述】:可以在不先将数据复制到 S3 的情况下将数据从本地计算机插入 RedShift 吗? 基本上作为将记录直接插入到 RedShift 中?
如果是 - 可以使用什么库/连接字符串? (我不关心性能)
谢谢。
【问题讨论】:
你试过...插入它吗? 不,没有权限,正在找朋友。 【参考方案1】:可以在不先将数据复制到 S3 的情况下将数据从本地计算机插入 RedShift 吗?基本上作为将记录直接插入到 RedShift 中?
是的,可以做到。但不是首选方法,尽管您已经加权,但性能不是问题。
您可以使用psycopg2
库。您可以从任何机器(本地/在 EC2 或任何其他云平台)上运行此程序,该机器与您的 Redshift 实例具有网络连接/允许连接/来自/来自您的 Redshift 实例。
这是python代码sn-p。
import psycopg2
def redshift():
conn = psycopg2.connect(dbname='your_database', host='a********8.****s.redshift.amazonaws.com', port='5439', user='user', password='Pass')
cur = conn.cursor();
cur.execute('insert into test values('1','2','3','4')")
print('success ')
redshift();
【讨论】:
【参考方案2】:这取决于您谈论的是 RedShift 还是 RedShift Spectrum。
在 RSS 中,您必须将数据放在 S3 上,但如果您使用 RedShift,您可以使用 sqlalchemy 进行插入。
【讨论】:
【参考方案3】:从 python 查询 AWS Redshift 的最简单方法是通过这个 Jupyter 扩展 - Jupyter Redshift
您不仅可以查询和保存结果,还可以在笔记本环境中将结果写回到数据库中。
【讨论】:
以上是关于使用 Python 将数据插入 RedShift的主要内容,如果未能解决你的问题,请参考以下文章