python连接vertica基本设置


一.与vertica创建连接

import vertica_python
# 按照数据库基本信息填写参数
conn_info = {'host': '127.0.0.1',
             'port': 5433,
             'user': 'some_user',
             'password': 'some_password',
             'database': 'a_database',
             # autogenerated session label by default,
             'session_label': 'some_label',
             # default throw error on invalid UTF-8 results
             'unicode_error': 'strict',
             # SSL is disabled by default
             'ssl': False,
             # autocommit is off by default
             'autocommit': True,
             # using server-side prepared statements is disabled by default
             'use_prepared_statements': False,
             # connection timeout is not enabled by default
             # 5 seconds timeout for a socket operation (Establishing a TCP connection or read/write operation)
             'connection_timeout': 5}

# 使用with...as...可以在with语句块结束后,自动关闭数据库连接
# using with for auto connection closing after usage
with vertica_python.connect(**conn_info) as connection:
    # do things

二.python执行SQL(vertica)语句

1.查询结果返回list形式

# 结果返回list形式
with vertica_python.connect(**conn_info) as conn:
    cur = conn.cursor()
    #cur.execute()里放执行语句
    cur.execute("SELECT NODE_NAME FROM V_MONITOR.CURRENT_SESSION")
	cur.fetchall()
# 返回结果:[ [1, 'something'], [2, 'something_else'] ]    

2.查询结果返回字典形式

# 结果返回字典形式
with vertica_python.connect(**conn_info) as conn:    
    cur = connection.cursor('dict')
    cur.execute("SELECT * FROM a_table LIMIT 2")
    cur.fetchall()
# 返回结果:[ {'id': 1, 'value': 'something'}, {'id': 2, 'value': 'something_else'} ]

3.插入字段

with vertica_python.connect(**conn_info) as connection:
    cur = connection.cursor()
    cur.execute("INSERT INTO tbl VALUES (%s, %s); COMMIT;", [1, 'aa'], use_prepared_statements=False)

参考资料 : https://github.com/vertica/vertica-python


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM