文章目录
1、命令行客户端
clickhouse-client
常用参数说明默认值备注
--host, -h
服务端的主机名
localhost
--port
端口
9000
HTTP接口和TCP原生接口用的端口不同
--user, -u
用户名
default
--password
密码空字符串
--query, -q
非交互模式查询
--database, -d
数据库服务端默认配置默认配置值为
default
--multiline, -m
允许多行语句查询Enter仅代表换行,不代表查询语句完结
--multiquery, -n
允许用
;
分隔多个查询只在非交互模式下生效
--time, -t
非交互模式下,查询的执行时间被输出到
stderr
--stacktrace
如果出现异常,就打印堆栈跟踪信息
--config-file
配置文件的名称
--secure
使用安全方式连接到服务器
--history_file
存放命令历史的文件的路径
--param_<name>
查询参数配置查询参数
常用下面2组参数,1是
-m
在ClickHouse服务所在的机器,进入命令行交互模式
clickhouse-client -m --password '密码'
2是
-q
执行任务,配合
-n
允许多个SQL(用
;
分隔)
clickhouse-client -n -h '主机' --port 9000 -u '用户' --password '密码' -d '库' -q "SHOW TABLES;"
个人建议,少用
-n
1.1、ClickHouse服务的版本号查询
SELECT version();
1.2、clickhouse-client下载方法
对于CentOS7,可去官网或国内镜像站下载
clickhouse-client
、
clickhouse-common-static
等
rpm
,然后安装
2、Python连ClickHouse
安装客户端
conda create -n ck_env python=3.9.12
conda activate ck_env
pip installclickhouse_driver==0.2.4
安装成功的屏幕显示
Installing collected packages: pytz, tzdata, pytz-deprecation-shim, tzlocal, clickhouse_driver
Successfully installed clickhouse_driver-0.2.4 pytz-2022.5 pytz-deprecation-shim-0.1.0.post0 tzdata-2022.5 tzlocal-4.2
连接代码
from clickhouse_driver import Client
c = Client(host='主机', port=9000, user='用户', password='密码', database='库')
result_list = c.execute('SELECT * FROM 表')print(result_list)# list of tuple [('a2',9,datetime.date(2022,3,8)),('b3',3,datetime.date(2021,5,4))]
3、Java连接ClickHouse
<dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.3.2</version></dependency>
importru.yandex.clickhouse.ClickHouseConnection;importru.yandex.clickhouse.ClickHouseDataSource;importru.yandex.clickhouse.settings.ClickHouseProperties;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;publicclassMain{publicstaticvoidmain(String[] args){// 连接配置ClickHouseProperties p =newClickHouseProperties();
p.setUser("用户");
p.setPassword("密码");
p.setDatabase("库");
p.setSocketTimeout(30000);String url ="jdbc:clickhouse://主机地址:8123";ClickHouseDataSource ds =newClickHouseDataSource(url, p);try{// 创建连接ClickHouseConnection conn = ds.getConnection();try{Statement statement = conn.createStatement();// 查询ResultSet result = statement.executeQuery("SELECT * FROM 表");while(result.next()){ResultSetMetaData metaData = result.getMetaData();// 获取列,索引从1开始for(int i =1; i <= metaData.getColumnCount(); i++){String columnName = metaData.getColumnName(i);Object data = result.getObject(columnName);System.out.println(columnName +"=>"+ data.toString());}System.out.println();}}catch(SQLException e){
e.printStackTrace();}}catch(SQLException e){thrownewRuntimeException(e);}}}
4、DBeaver连接ClickHouse
jdbc:clickhouse://主机:8123/库?socket_timeout=600000
版权归原作者 小基基o_O 所有, 如有侵权,请联系我们删除。