大数据(5r)ClickHouse客户端
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(5r)ClickHouse客户端相关的知识,希望对你有一定的参考价值。
文章目录
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 install clickhouse_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>
import ru.yandex.clickhouse.ClickHouseConnection;
import ru.yandex.clickhouse.ClickHouseDataSource;
import ru.yandex.clickhouse.settings.ClickHouseProperties;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class Main
public static void main(String[] args)
// 连接配置
ClickHouseProperties p = new ClickHouseProperties();
p.setUser("用户");
p.setPassword("密码");
p.setDatabase("库");
p.setSocketTimeout(30000);
String url = "jdbc:clickhouse://主机地址:8123";
ClickHouseDataSource ds = new ClickHouseDataSource(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)
throw new RuntimeException(e);
4、DBeaver连接ClickHouse
jdbc:clickhouse://主机:8123/库?socket_timeout=600000
以上是关于大数据(5r)ClickHouse客户端的主要内容,如果未能解决你的问题,请参考以下文章
大数据ClickHouse进阶:ClickHouse 数据查询
大数据ClickHouse进阶(二十六):ClickHouse数据备份