扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦
建议:测试与学习时,使用容器安装方便上手与学习
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 # optional
sudo apt-add-repository "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/"
sudo apt-get update
sudo apt-get install clickhouse-server-common clickhouse-client -y
sudo service clickhouse-server start
clickhouse-client
单机的安装部署,很简单,安装上基本就可以启动体验它的强大功能,你会发现clickhouse单机性能也很强。对于其他操作系统,最简单的使用方式是官方提供的Clickhouse Docker images。或者通过官方文档源码构建Clickhouse。
官方Docker镜像提供也是基于Ubuntu之上的,Docker提供强大的底层系统兼容性,所以基本在任何能安装启动Docker系统之上都可以运行clickhouse,官方提供的docker镜像,也提供docker file
,可以根据自己的需要进行定制化,由于官方镜像默认监听得是IPV6地址,可能启动无法正常使用,可以进入容器修改相关配置项,方可正常使用,本文不介绍Docker安装,具体按照步骤参考:https://www.runoob.com/docker/centos-docker-install.html。
> sudo docker pull yandex/clickhouse-client
> sudo docker pull yandex/clickhouse-server
$ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server
-d 代表后台运行 --name 自定义ck的服务名称 -p:容器端口映射到当前主机端口 不指定默认http端口是8123,tcp端口是9000
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
CREATE TABLE test (FlightDate Date,Year UInt16) ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);
insert into test (FlightDate,Year) values('2020-06-05',2001);
select count(*) from test;
clickhouse 允许远程访问,我们可以clickhouse的配置文件从Docker中拷贝出来
docker cp clickhouse-server:/etc/clickhouse-server/ /etc/clickhouse-server/
修改 /etc/clickhouse-server/config.xml 配置
docker run -d --name docker-clickhouse --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 -v /etc/clickhouse-server/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server
docker ps -a
docker exec -it 容器id /bin/bash
比如进入容器id为69e0598f6c26 的ck服务,clickhouse-client 进入clickhouse命令行,show table 查看表
maven项目引入依赖
ru.yandex.clickhouse
clickhouse-jdbc
0.1.40
注意事项:clickhouse的http访问默认端口是8123,tcp默认端口是9000。所有jdbc连接ck的端口是8123
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ClickHouse {
public static void main(String[] args) {
//String createTable = "CREATE TABLE test (FlightDate Date,Year UInt16) ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);";//查询数据库
//String insert = "insert into test (FlightDate,Year) values('2020-06-05',2001);";//查看表
String select = "select count(*) count from test";//查询ontime数据量
sqlProcess(select);
}
public static void sqlProcess(String sql) {
String address = "jdbc:clickhouse://127.0.0.1:8123/default";
Connection connection = null;
Statement statement = null;
ResultSet results = null;
try {
Class.forName("ru.yandex.clickhouse.ClickHouseDriver");
connection = DriverManager.getConnection(address);
statement = connection.createStatement();
results = statement.executeQuery(sql);
ResultSetMetaData rsmd = results.getMetaData();
List
以上就是这篇文章的全部内容,我是阿华田,励志做一名对大家有帮助的博主,能看到这里的都是人才。非常感谢人才们看到这里。如果这个文章写得还不错,觉得「阿华田」有点东西的话 求点赞 求关注❤️ 求分享 ,对我来说真的 非常非常有用!!!白嫖不好,创作不易,下面是我的公众号,谢谢各位的支持和认可,我们下篇文章见!