首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vertica-python复制本地错误

vertica-python复制本地错误
EN

Stack Overflow用户
提问于 2018-06-27 11:36:55
回答 1查看 1.2K关注 0票数 2

我在Vertica 7.1上使用这段代码在python中复制本地

代码语言:javascript
复制
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上做同样的操作,我得到了以下错误:

回溯(最近一次调用): 文件"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中 引发errors.MessageError(“未处理消息:{0}”.format(消息)) MessageError:未处理消息:

我的vertica-python版本:

代码语言:javascript
复制
pip freeze | grep vertica  -->  vertica-python==0.7.3

i尝试了来自维蒂卡的新vertica-db-客户机(vertica-client-9.0.1-4.x86_64.tar.gz)

我的vertica-db-客户端版本:

代码语言:javascript
复制
pip freeze | grep vertica  -->  vertica-db-client==9.0.1.4

我得到了一个错误:

回溯(最近一次调用): 文件"collector_as.py",第265行,在 cur.execute(qr) NotSupportedError:不支持复制本地

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 19:06:41

当使用vertica执行复制命令时,可以使用cur.copy(...)方法。

游标的复制方法采用两个参数

  1. 复制命令
  2. 要复制的文件

另外,您使用的不是FROM LOCAL,而是FROM STDIN

代码语言:javascript
复制
qr="copy tmp_table(int_id, int_timestamp, ... ) from STDIN GZIP delimiter ';' RECORD TERMINATOR E'\\r' NULL  '\\N';"
cur.copy(qr, file_name+'.gz')

如果您使用vsql(例如),那么使用FROM LOCAL的语法将是正确的,但是vertica-python基本上将给定的文件作为第二个参数,并将其作为STDIN导入复制命令。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51061816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档