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