需要框架来处理Redshift和python之间的交互

时间:2015-10-17 05:51:37

标签: python pandas amazon-s3 sqlalchemy amazon-redshift

我正在构建一个python应用程序,其中包含Amazon Redshift和本地python之间的大量交互(将查询发送到redshift,将结果发送到本地等...)。我的问题是:处理此类互动的最简洁方法是什么。

目前,由于sqlalchemy,我正在使用pandas.read_sql()直接在本地加载表格。但我不确定这是非常优化还是安全。

最好通过Amazon S3,然后带回boto的文件,最后用pandas.read_csv()阅读它们吗?

最后,有没有一个更好的想法来处理这样的交互,也许没有用Python做任何事情?

1 个答案:

答案 0 :(得分:3)

您可以查看大火生态系统中您可能认为有用的想法和库:http://blaze.pydata.org

blaze库本身允许你在类似pandas的高级别编写查询,然后将查询转换为redshift(使用SQLAlchemy):http://blaze.readthedocs.org/en/latest/index.html

但是这可能对您的目的来说太高级了,您可能需要对行为进行更精确的控制 - 但无论您如何以及何时移动数据,它都可以使代码保持相似。

可以单独使用odo库从Redshift复制到S3到本地文件并返回。这可以独立于大火库使用:http://odo.readthedocs.org/en/latest/