需要框架来处理 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/
我正在构建一个 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/