У меня есть набор данных в кадре данных pandas, который я хочу написать Vertica. Я уже создал свою таблицу, используя библиотеку vertica_python. Каков наилучший способ записи моего фрейма данных в Vertica?Как написать pandas dataframe для Vertica?
2
A
ответ
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
, чтобы сделать это быстрее.
Возможное решение - https://community.vertica.com/t5/Vertica-Forum/Writing-Pandas-dataframe-to-vertica/mp/227918 – fixxxer
Хм, похоже, они указывают на эту библиотеку: https://pypi.python.org/pypi/vertica-sqlalchemy/0.1, но он довольно непроверен. Любые другие мысли о потенциальных решениях? Я склоняюсь к тому, чтобы догадываться, что я делаю строчное редактирование с помощью шаблонов jinja2, но для меня это не кажется очень pythonic. – orange1