2015-10-17 2 views
2

Я создаю приложение python с большим количеством взаимодействий между Amazon Redshift и локальным питоном (отправка запросов в redshift, отправка результатов на локальный и т. Д.). Мой вопрос: какой самый чистый способ справиться с такими взаимодействиями.Нужна структура для взаимодействия Взаимодействия между Redshift и python

В настоящее время я использую sqlalchemy для загрузки таблиц непосредственно на местном языке, используя pandas.read_sql(). Но я не уверен, что это очень оптимизировано или безопасно.

Было бы лучше пройти через Amazon S3, а затем вернуть файлы с boto, чтобы, наконец, прочитать их с помощью pandas.read_csv()?

И, наконец, есть ли идея справиться с такими взаимодействиями, возможно, не все в Python?

ответ

3

Вы можете посмотреть на Blaze экосистемы идей и библиотеки вы можете найти полезными: http://blaze.pydata.org

Пламени библиотеки сами позволяют писать запросы на высоком, панда-подобный уровень, а затем переводят запрос красных смещений (с использованием SQLAlchemy): http://blaze.readthedocs.org/en/latest/index.html

Но это может быть слишком высокоуровневым для ваших целей, и вам может потребоваться более точный контроль над поведением - но это позволит вам сохранить код одинаковым независимо от того, как и когда вы перемещали данные вокруг.

Библиотека odo может использоваться независимо для копирования с Redshift на S3 в локальные файлы и обратно. Это может использоваться независимо от библиотеки пламени: http://odo.readthedocs.org/en/latest/

Смежные вопросы