1.ClickHouse简单部署
- ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++
语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报
告. - 因为机器配置限制,所以创建单节点ClickHouse集群。
- 官方预构建的二进制文件通常针对x86_64进行编译,并利用
SSE 4.2
指令集,因此,系统必须支持SSE 4.2
指令集。 - 使用以下命令检查本地服务器是否支持
SSE 4.2
指令集 -
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
结果为:
SSE 4.2 supported
因为本人较懒,所以直接使用rpm安装,如需要其他部署方式可参考博客
-
- 1.1 添加官方存储库
-
sudo yum install yum-utils sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
1.2 安装
-
sudo yum install clickhouse-server clickhouse-client
至此clickhouse单节点部署完毕,参考博客:http://(6条消息) clickhouse-单节点部署_与数据交流的路上的博客-CSDN博客
-
2.ClickHouse简单使用
-
本文主要是外表的创建,如需了解更多的操作,请参考博客:http://clickhouse入门教程,基础命令 - 简书 (jianshu.com)
-
2.0启动clockhouse服务
-
systemctl staart clickhouse.server
-
2.1 登录客户端
-
clickhouse-client --host localhost --port 9000 --user default
-
host
: 指定ip,可省略使用默认值localhost,可缩写为h
port
: 指定端口号,可省略user
: 登录用户,省缺值为default,可缩写为u
multiline
: 允许终端执行多行命令,可缩写m
-
2.2 创建库
-
create database if not exists test;
-
2.3创建表
-
create table if not exists test.t_order ( id Int64 COMMENT '订单id', datetime DateTime COMMENT '订单日期', name String COMMENT '商品名称', price Decimal32(2) COMMENT '商品价格', user_id Int64 COMMENT '用户id' ) engine = MergeTree partition by toYYYYMM(datetime) order by id;
-
2.4 数据插入
-
insert into t_order values (1, '2021-03-09 21:42:00', '大力丸', 999.99, 202003090001)
3.在StarRocks中创建ClickHouse外部表
-
在StarRocks中创建ClickHouse外部表是以JDBC方式所以第一步,创建JDBC资源:
-
3.1 创建JDBC资源,语法为:
-
create external resource resource_name properties ( "type"="jdbc", "user"="default", "password"="", "jdbc_uri"="jdbc:clickhouse://host:ip/database_name", "driver_url"="https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2/clickhouse-jdbc-0.3.2-all.jar", "driver_class"="com.clickhouse.jdbc.ClickHouseDriver" );
其中
-
create external resource:为外部资源创建关键字
-
resource_name:JDBC资源名称
-
properties 参数设置
-
type:资源类型
-
user:ClickHouse用户名,本人使用的是Clickhouse部署完成后的默认用户,密码默认为空,如需要更换用户,需要根据你的自身的设置更换用户,设置相应的密码。
-
jdbc_uri:jdbc:clickhouse://host:port/database_name
-
host为你ClickHouse的ip地址,port为你的端口,使用官方驱动的端口默认为8123,使用tcp协议的第三方驱动的默认端口为9000,
-
本人使用的驱动时官方驱动:下载连接为:
-
https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2/clickhouse-jdbc-0.3.2-all.jar
-
driver_url:驱动类,官方给的默认为:com.clickhouse.jdbc.ClickHouseDriver
-
3.2 创建外部表:
-
CREATE EXTERNAL TABLE `t_order_3` ( `id` bigint(20) NULL COMMENT "", `dateTime` datetime NULL COMMENT "", `name` varchar(65533) NULL COMMENT "", `price` decimal128(38, 2) NULL COMMENT "", `user_id` bigint(20) NULL COMMENT "" ) ENGINE=JDBC COMMENT "JDBC" PROPERTIES ( "resource" = "jdbc_ck2", "table" = "t_order" );
在创建外部表时,
-
1.注意字段类型的对应关系;
-
2.注意使用的resource名称;
-
3.注意对应的ClickHouse表名称。
-
创建成功后,可以查询一下,检查外部表是否创建成功。
-
第一次报错:
-
这是CK默认设置中不允许别的IP访问,需要修改/etc/clickhouse-server/users.xml
-
可参考博客:http://(12条消息) 关于Clickhouse拒绝远程连接报错的解决方式_Genebrother的博客-CSDN博客_clickhouse 连接被拒绝
-
本人第一次写博客,有错误请大佬在评论指出。