2015-04-30 3 views
2

У меня есть набор данных в кадре данных pandas, который я хочу написать Vertica. Я уже создал свою таблицу, используя библиотеку vertica_python. Каков наилучший способ записи моего фрейма данных в Vertica?Как написать pandas dataframe для Vertica?

+0

Возможное решение - https://community.vertica.com/t5/Vertica-Forum/Writing-Pandas-dataframe-to-vertica/mp/227918 – fixxxer

+0

Хм, похоже, они указывают на эту библиотеку: https://pypi.python.org/pypi/vertica-sqlalchemy/0.1, но он довольно непроверен. Любые другие мысли о потенциальных решениях? Я склоняюсь к тому, чтобы догадываться, что я делаю строчное редактирование с помощью шаблонов jinja2, но для меня это не кажется очень pythonic. – orange1

ответ

3

Часто при подключении к Vertica вы можете использовать Postgresql как стенд, поскольку некоторые части Vertica были первоначально основаны на Postgresql.

from sqlalchemy import create_engine 
engine = create_engine('postgresql://user:[email protected]:5433/MYDB') 
df.to_sql('table_name', engine) 

Если это не сработает, вы можете попробовать пакет vertica-sqlalchemy.

Кроме того, в зависимости от созданного SQL (и если драйвер ODBC преобразует INSERT в COPY), это может быть очень медленным. Если вы обнаружите, что он делает много отдельных вставок в базе данных, вы, вероятно, захотите переключиться на метод COPY, где вы создаете строки и COPY FROM STDIN, чтобы сделать это быстрее.