python中通過JDBC的方式連接kudu數據庫


說明:

最近在做一個數據質量檢查平台,開發語言是Python,環境是centos7,用的框架是Django,因為需要進行kudu數據庫連接,在網上找到了相關能用的連接代碼。

網上很多不負責任的博客,有很多代碼都不能使用了。

在總結實驗之后,在這里分享記錄一下:(如不能使用請聯系微信:LivPzs)

  1. 需要jaydebeapi包;  pip install jaydebeapi 安裝;
  2. 需要一個Impala的jar包; 鏈接: https://pan.baidu.com/s/1Ef4aFwyoBVBM2G9wDIntFQ  密碼: u2jf
  3. 需要連接驅動; 字符串: 'com.cloudera.impala.jdbc41.Driver'
  4. 需要連接url;  如:jdbc:impala://192.168.201.88:21020/default;AuthMech=3
  5. 需要用戶名和密碼; 如:1234, 1234

 

連接函數代碼:

# 導入jaydebeapi包
import jaydebeapi

#                 連接url ,用戶名,密碼, 驅動,   sql,   jar包地址
def get_kudu_info(conn_url, user, pwd, driver, sql_str, jar_addr):
    """查詢kudu"""
    # 創建連接
    conn = jaydebeapi.connect(driver, conn_url, [user, pwd], jar_addr)
    # 獲取游標
    cursor = conn.cursor()
    # 執行sql
    cursor.execute(sql_str)
    # 獲取執行結果
    result = curs.fetchall()
    # 關閉游標
    cursor.close()
    # 關閉連接
    conn.close()
    # 返回結果
    return result

 

調用演示:

 1 # -----------------------------------上面的連接函數 ------------------------------------
 2 # 導入jaydebeapi包
 3 import jaydebeapi
 4 
 5 #                 連接url ,用戶名,密碼, 驅動,   sql,   jar包地址
 6 def get_kudu_info(conn_url, user, pwd, driver, sql_str, jar_addr):
 7     """查詢kudu"""
 8     # 創建連接
 9     conn = jaydebeapi.connect(driver, conn_url, [user, pwd], jar_addr)
10     # 獲取游標
11     cursor = conn.cursor()
12     # 執行sql
13     cursor.execute(sql_str)
14     # 獲取執行結果
15     result = curs.fetchall()
16     # 關閉游標
17     cursor.close()
18     # 關閉連接
19     conn.close()
20     # 返回結果
21     return result
22 
23 
24 
25 # ----------------------------------------開始調用---------------------------------------
26 # 連接url
27 conn_url = jdbc:impala://192.168.201.88:21150/default;AuthMech=3
28 
29 # 用戶名密碼
30 username = 'root'
31 password = ''
32 
33 # 驅動
34 driver_str = 'com.cloudera.impala.jdbc41.Driver'
35 
36 #查詢sql
37 database_abbr = 'describe sjjsq_db_kudu'   # 庫名
38 table_name = 'dwa_base_tzfxx'  # 表名
39 sql_str = f"""describe {database_abb}.{table_name}"""
40 
41 # impala jar包地址
42 jar_addr = '/home/app/py/ImpalaJDBC41.jar'
43 
44 # 開始調用
45 query_result = get_kudu_info(conn_url, username, password, driver_str, sql_str, jar_addr)
46 
47 # query_result 就是我們的查詢結果了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM