如何使用python 3在vertica中插入flex表中的数据



我计划将我的非结构化数据保存在vertica flex表中。我正在从客户端接收数据列表(列表中的数据类型可能在每次调用中有所不同),我想使用python 3将其保存在vertica flex表中。如何做到这一点?

我在谷歌上发现的东西,但有数据被加载在flex表直接使用csv或json文件,而不是编程。我想用python编程保存它。

提前感谢您的帮助-:)

我找到了一种方法来复制/插入数据从列表到flex表(在vertica)使用python:

列表
# for python list
tempList = list()    
tempList.append('{ "_id" : "01011", "city" : "CHESTER-APL21", "loc" : [ -72.988761, 42.279421 ], "pop" : 1688, "state" : "MA" }')
tempList.append('{ "_id" : "01011", "city" : "CHESTER-APL21", "loc" : [ -72.988761, 42.279421 ], "pop" : 1688, "state" : "MA" }')
cur.copy( "COPY STG.unstruc_data FROM STDIN parser fjsonparser() ", ''.join(tempList))
connection.commit()
<标题>为JSON h1>
# for csv file
with open("D:/SampleCSVFile_2kb/SampleCSVFile_2kb.csv", "rb") as fs:
    my_file = fs.read().decode('utf-8','ignore')
    cur.copy( "COPY STG.unstruc_data FROM STDIN PARSER FDELIMITEDPARSER (delimiter=',', header='false') ", my_file) # buffer_size=65536
    connection.commit()

Vertica-Python支持INSERT INTO。

除非您需要频繁且非常小的插入,否则将数据写入文件并使用COPY最有可能提供更好的性能。如果你用python来做,这还不符合你的"程序化"的想法吗?

  • https://github.com/uber/vertica-python
  • https://pypi.python.org/pypi/vertica-python/

最新更新