我正在构建一个python应用程序,其中包含Amazon Redshift和本地python之间的大量交互(将查询发送到redshift,将结果发送到本地等...)。我的问题是:处理此类互动的最简洁方法是什么。
目前,由于sqlalchemy
,我正在使用pandas.read_sql()
直接在本地加载表格。但我不确定这是非常优化还是安全。
最好通过Amazon S3,然后带回boto
的文件,最后用pandas.read_csv()
阅读它们吗?
最后,有没有一个更好的想法来处理这样的交互,也许没有用Python做任何事情?
答案 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/