一.與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