• Python连接Clickhouse遇坑篇,耗时一天成功连接!


    首先!!!!!!!!!不要看网上那些乱七八糟的使用clickhouse-driver连接了,真tm难用,端口能搞死你那种,超级烦!能恶心死你那种!但是,我这里就不一样了,非常简单

    有能力的推荐直接看官方文档:Python Integration with ClickHouse Connect | ClickHouse Docs

    python版本要求:大于3.7的才可以

    使用 ClickHouse Connect这个库:

    pip install clickhouse-connect

    使用 ClickHouse Connect 客户端实例连接到 ClickHouse Cloud 服务:

    1. import clickhouse_connect
    2. 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带有二维行和值数组的客户端方法:

    1. row1 = [1000, 'String Value 1000', 5.233]
    2. row2 = [2000, 'String Value 2000', -107.04]
    3. data = [row1, row2]
    4. client.insert('new_table', data, column_names=['key', 'value', 'metric'])

    要使用 ClickHouse SQL 检索数据,请使用客户端query方法:

    1. result = client.query('SELECT max(key), avg(metric) FROM new_table')
    2. result.result_set
    3. Out[13]: [(2000, -50.9035)]

    如果说你想用clickhouse-driver:

    也可以,但是你需要知道服务器上的端口号是多少,不能直接使用数据库连接工具里面的端口号:

    比如我们的,就只能用32654这个端口,不能用9000,

    代码:

    1. from clickhouse_driver import Client
    2. client = Client(host='服务器地址', port=端口, database='用户名', password='密码')
    3. sql = 'select * from p_637.d_638 order by id limit 20, 10;'
    4. res = client.execute(sql)
    5. print(res)

  • 相关阅读:
    Java之流程控制(5)
    sql语句查询某字段中有汉字的数据
    Python之数据库使用
    ESP32---logging库
    Java 复习笔记 - 常用API 中
    分布式存储系统之Ceph基础
    C++ mySQL数据库连接池(windows平台)
    node.js学习之数据库及基本操作、SQL语句
    HTTP协议的请求协议和响应协议的组成,HTTP常见的状态信息
    java临时文件
  • 原文地址:https://blog.csdn.net/weixin_44786530/article/details/128094447