首先!!!!!!!!!不要看网上那些乱七八糟的使用clickhouse-driver连接了,真tm难用,端口能搞死你那种,超级烦!
推荐直接看官方文档:Python Integration with ClickHouse Connect | ClickHouse Docs
python版本要求:大于3.7的才可以
使用 ClickHouse Connect这个库:
pip install clickhouse-connect
使用 ClickHouse Connect 客户端实例连接到 ClickHouse Cloud 服务:
import clickhouse_connect
client = clickhouse_connect.get_client(host='服务器ip', port=clickhouse端口, username='用户名', password='密码')
要运行 ClickHouse SQL 命令,请使用客户端command
方法:
client.command('CREATE TABLE new_table (key UInt32, value String, metric Float64) ENGINE MergeTree ORDER BY key')
要插入批处理数据,请使用insert
带有二维行和值数组的客户端方法:
row1 = [1000, 'String Value 1000', 5.233]
row2 = [2000, 'String Value 2000', -107.04]
data = [row1, row2]
client.insert('new_table', data, column_names=['key', 'value', 'metric'])
要使用 ClickHouse SQL 检索数据,请使用客户端query
方法:
result = client.query('SELECT max(key), avg(metric) FROM new_table')
result.result_set
Out[13]: [(2000, -50.9035)]
如果说你想用clickhouse-driver:
也可以,但是你需要知道服务器上的端口号是多少,不能直接使用数据库连接工具里面的端口号:
比如我们的,就只能用32654这个端口,不能用9000,
代码:
from clickhouse_driver import Client
client = Client(host='服务器地址', port=端口, database='用户名', password='密码')
sql = 'select * from p_637.d_638 order by id limit 20, 10;'
res = client.execute(sql)
print(res)