clickhouse系列第三篇之clickhouse客户端使用教程(1.命令行客户端连接)


clickhouse提供了一个本地命令行客户端:clickhouse-client

一.客户端支持的配置项

1. 配置项的配置方式

1.1 从命令行传入

 如果是命令行设置的配置项,那么优先级是最高的。当和配置文件中的配置项有重合的时候,会优先使用命令行配置

1.2 配置文件

 当在配置文件中配置了配置项的时候,那么会覆盖掉该配置项的默认值和设置

2. 配置项列表

  • --host,-h:用来配置服务器,默认是localhost。值可以是服务器名称或 IPv4 或 IPv6 地址
  • --post:要连接的端口,默认是9000。注意http接口和native接口使用的是不同的端口
  • --user,-u:用户名,默认是default
  • --password:密码,m偶人是‘’(空字符串)
  • --query,-q:在非交互模式场景下要处理的查询。使用时必须要指定query或queries-file选项
  • --queries-file,-qf:存放查询语句的文件路径。使用时必须要指定query或queries-file选项
  • --database,-d: 选择进入客户端之后的默认数据库。默认是服务器设置的默认数据库(default)
  • --multiline,-m:标识是否允许多行查询,即不按enter发送查询命令,而是‘;’
  • --multiquery,-n:如果指定了,允许处理以‘;’分隔的多个查询
  • --format,-f:使用指定的默认格式输出结果
  • --vertical,-E:如果指定了,就使用垂直格式输出结果。和format=Vertical.是一样的效果。在这种格式中,每一个值都单独占据一行,在显示宽表的时候会比较有帮助
  • --time,-t:如果指定了,则在非交互模式下会将查询时间打印到stderr
  • --stacktrace :如果指定了,那么在发生异常的时候,会打印堆栈跟踪
  • --config-file:指定使用的配置文件的名称
  • --secure:如果指定了,则会在安全模式下连接到服务器
  • --history_file:指定了包含命令执行记录的文件路径

注:如果是用配置项全名的话,是"配置项=value"的格式。如果是缩写的话,就是"配置项 value"的格式

clickhouse-client --database=test --query="SELECT * FROM t2"
clickhouse-client -d test -q "SELECT * FROM t2"

注:
一般我们使用的服务器和客户端也是需要相互兼容的。如果不兼容的话,会有如下的提醒

  ClickHouse client version is older than ClickHouse server. It may lack support for new features.

二. 客户端用法

客户端可以在交互模式和非交互(批处理)模式下使用

1.非交互模式

1.1 -- query 参数指定执行语句

clickhouse-client --database=test --query='insert into t2(a,b) values(1,2)'
clickhouse-client --database=test --query='select * from t2'

在这里插入图片描述

1.2 -- query 参数和发送到stdin的数据联合使用

echo -ne '2,3'|clickhouse-client --database=test --query='insert into t2 format CSV'
clickhouse-client --database=test --query='select * from t2'

在这里插入图片描述
在批处理格式下,默认的数据格式是 TabSeparated。当然我们也可以在FORMAT 子句中设置格式。

默认情况下,批处理格式只支持当个查询。
如果想要执行多个查询的话,需要在脚本里面执行。可以使用--multiquery参数。适用于除了insert之外的所有查询。查询结果会连续输出,没有额外的分隔符。
如果要执行大量查询的话,建议为每一个查询都启用一个客户端,启用一个客户端会耗时约数十毫秒

2.交互模式

所谓的交互模式,指的是通过执行clickhouse-client,进入客户端后,在客户端里执行查询
在这里插入图片描述

2.1 multiline

2.1.1 如果在进入客户端的时候没有指定multiline,那么输入查询语句的时候,不需要加’;’,直接回车就会执行

在这里插入图片描述

如果查询语句有多行的话,那么第一行输出之后 输入 \,然后回车,就不会执行,之后就可以继续输入第二行
在这里插入图片描述
2.1.2 如果在进入客户端的时候指定了multiline(默认是不指定的)的话,那么就需要用;来指定sql语句的输入完毕

在这里插入图片描述
在这里插入图片描述

2.2 可以用\G来指定垂直打印

在这里插入图片描述
在这里插入图片描述

2.3. sql的执行记录被保留在~/.clickhouse-client-history.

在这里插入图片描述

2.4. 当执行查询操作的时候,客户端会显示的内容:

  • 在默认情况下,如果查询操作执行的慢的,每秒更新进度不会超过10次。如果查询操作很快的话,那么就不会显示查询进度,而是直接显示结果

  • 在解析sql语句之后会进行格式化的查询,可以用于debug
    在这里插入图片描述

  • 可以指定输出的结果格式,默认情况下,使用的格式是 PrettyCompact。可以在查询的 FORMAT 子句中更改格式,或者通过\G在查询末尾指定、使用命令行中的–formator–vertical参数或使用客户端配置文件来更改格式。
    在这里插入图片描述

  • 会显示查询的结果行数,用时,以及查询处理的平均速度
    在这里插入图片描述

2.5. 快捷操作

可以使用Ctrl+C 取消长查询。但是,仍需要稍等片刻,让服务器中止请求。在某些阶段无法取消查询。如果不等待并再次按 Ctrl+C,客户端将退出。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要使用com.github.housepower.jdbc连接ClickHouse,您需要按照以下步骤操作: 1. 首先,将ClickHouse JDBC驱动程序添加到您的项目中。您可以从Maven中央仓库或GitHub上获得最新版本的驱动程序。将以下依赖项添加到您的项目的pom.xml文件中: ```xml <dependency> <groupId>com.github.housepower</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.3.0</version> </dependency> ``` 2. 在您的Java代码中,导入必要的类: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; ``` 3. 创建一个连接ClickHouse数据库的方法: ```java public Connection createConnection(String host, int port, String database, String username, String password) throws SQLException { String url = "jdbc:clickhouse://" + host + ":" + port + "/" + database; return DriverManager.getConnection(url, username, password); } ``` 4. 使用以下代码执行查询并获取结果: ```java try (Connection connection = createConnection("localhost", 8123, "default", "username", "password"); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table")) { while (resultSet.next()) { // 处理结果集数据 } } catch (SQLException e) { // 处理异常 } ``` 请确保将上述代码中的`host`、`port`、`database`、`username`和`password`替换为您的ClickHouse连接详细信息。同时,根据您的需求修改查询语句和结果处理逻辑。 希望这可以帮助您成功连接并与ClickHouse进行交互!如有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值