大数据(5r)ClickHouse客户端

Posted 小基基o_O

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(5r)ClickHouse客户端相关的知识,希望对你有一定的参考价值。

文章目录

1、命令行客户端

clickhouse-client
常用参数说明默认值备注
--host, -h服务端的主机名localhost
--port端口9000HTTP接口和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-clientclickhouse-common-staticrpm,然后安装

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:客户端命令行参数

大数据(5m)ClickHouse极速入门

大数据ClickHouse进阶:ClickHouse 数据查询

大数据ClickHouse进阶(二十六):ClickHouse数据备份

大数据ClickHouse进阶(十九):ClickHouse字典的数据源

大数据ClickHouse进阶:ClickHouse的Join子句