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