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

Need Framework to handle Interactions between Redshift and python

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

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

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

最后,是否有更好的想法来处理此类交互,也许不是在 Python 中做所有事情?

您可以查看 blaze 生态系统以获取您可能会觉得有用的想法和库:http://blaze.pydata.org

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

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

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