转:https://blog.csdn.net/qq_44275894/article/details/123973699
一、介绍
cliskhouse官方地址
ClickHouse 是一个真正的面向列的 数据库管理系统 (DBMS),用于查询的在线分析处理 (OLAP)。
数据按列存储,并且在执行数组(向量或列块)期间存储。只要有可能,操作就会被发送到数组上,而不是单个值上。它被称为“向量化查询执行”,它有助于降低实际数据处理的成本。
二、安装
注意:
ClickHouse 可以在任何具有 x86_64、AArch64 或 PowerPC64LE CPU 架构的 Linux、FreeBSD 或 Mac OS X 上运行
1、下载
在本地下载 ClickHouse 最简单的方法是运行以下命令。如果您的操作系统受支持,则会下载相应的 ClickHouse 二进制文件并使其可执行:
curl https://clickhouse.com/ | sh
服务器环境下,也可采用如下方式:
- 获取安装包,并上传至服务器
- 使用root用户登录后,执行sh 文件名进行安装,等待出现ClickHouse Install Complete! 即表示安装完成
2、启动
./clickhouse server
3、查看及操作
详细sql文档,可以移步官方
ClickHouse 服务启动命令 : systemctl start clickhouse-server ClickHouse 服务停止命令 : systemctl stop clickhouse-server ClickHouse 服务重启命令 : systemctl restart clickhouse-server 查看ClickHouse 服务状态命令 : systemctl status clickhouse-server
三、在Java中使用
1、如果是maven项目,可以在pom中添加坐标
<dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.2.6</version> </dependency>
或者下载好jar 包,add to libraries
2、连接clickhouse
/** * 功能描述: 自己定义clickhouse连接方式,测试使用 * * @Param: [sql] * @Return: void * @Author: lqfeng * @Date: 2022/3/29 14:51 */ public void clickhouseTest(String sql) { Connection connection = null; Statement statement = null; ResultSet rs = null; try { //创建clickhouse连接 Class.forName("ru.yandex.clickhouse.ClickHouseDriver"); // 获取连接 connection = DriverManager.getConnection("jdbc:clickhouse://127.0.0.1:8123/test", "root", "root); // 创建声明 statement = connection.createStatement(); // 执行sql rs = statement.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData(); List<JSONObject> list = new ArrayList(); HashSet<String> objects = new HashSet<>(); while (rs.next()) { JSONObject jsonMap = new JSONObject(); for (int i = 1; i <= rsmd.getColumnCount(); i++) { jsonMap.put(rsmd.getColumnName(i), rs.getString(rsmd.getColumnName(i))); } list.add(jsonMap); } for (JSONObject map : list) { System.err.println(map); } } catch (Exception e) { log.info("=========clickhouse查询异常===========", e); } finally { try { if (rs != null) { rs.close(); } if (statement != null) { statement.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } // Integer result = clickhouseDao.queryInt(sql); }
官方示例:
import com.clickhouse.jdbc.*; import java.sql.*; import java.util.*; public class HelloClickHouse { public static void main(String[] args) throws Exception { String url = "jdbc:ch://<host>:<port>"; Properties properties = new Properties(); // properties.setProperty("ssl", "true"); // properties.setProperty("sslmode", "NONE"); // NONE to trust all servers; STRICT for trusted only ClickHouseDataSource dataSource = new ClickHouseDataSource(url, properties); try (Connection connection = dataSource.getConnection(<username>, <password>); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from system.tables limit 10")) { ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); int columns = resultSetMetaData.getColumnCount(); while (resultSet.next()) { for (int c = 1; c <= columns; c++) { System.out.print(resultSetMetaData.getColumnName(c) + ":" + resultSet.getString(c) + (c < columns ? ", " : "\n")); } } } } }
翻译
搜索
复制
标签:简单,介绍,server,clickhouse,statement,sql,new,ClickHouse From: https://www.cnblogs.com/qsds/p/17684076.html