Я использовал этот код для 'COPY LOCAL' в python на Vertica 7.1 :
conn_info = {'host': '192.168.1.1', 'port': 5433, 'user': 'dbadmin', 'password': 'xxxxxx', 'database': 'db'}
connection = vertica_python.connect(**conn_info)
cur = connection.cursor()
file_name="/tmp/tmp_file"
temp_file = open(file_name,"w")
temp_file .write(records)
temp_file.close()
os.system('gzip -cvf9 %s > %s.gz'%(file_name,file_name))
qr="copy tmp_table(int_id, int_timestamp, ... ) from local '%s' GZIP delimiter ';' RECORD TERMINATOR E'\\r' NULL '\\N';"%(file_name+'.gz')
cur.execute(qr)
Но я хочу сделать то же самое на Vertica 9.0.1 сейчас, и я получил эту ошибку:
Traceback (последний вызов был последним):
Файл "collector_as.py", строка 264, в
cur.execute(qr)
Файл "/usr/local/lib/python2.7/dist-packages/vertica_python/vertica/cursor.py", строка 126, в исполнении
self.connection.process_message(self._message)
Файл "/usr/local/lib/python2.7/dist-packages/vertica_python/vertica/connection.py", строка 232, в process_message
raise errors.MessageError("Unhandled message: {0}".format(message))
MessageError: необработанное сообщение:
моя версия vertica-python:
pip freeze | grep vertica --> vertica-python==0.7.3
------------------------
Также я попробовал новый vertica-db-client из VERTICA (vertica-client-9.0.1-4.x86_64.tar.gz)
моя версия vertica-db-client:
pip freeze | grep vertica --> vertica-db-client==9.0.1.4
и я получил эту ошибку:
Traceback (последний вызов был последним):
Файл "collector_as.py", строка 265, в
cur.execute(qr)
NotSupportedError: COPY LOCAL не поддерживается