clickhouse:俄罗斯公司开源,列式数据库,C++编写,支持SQL实时查询的 大型数据管理系统
安装:参考博文:https://blog.csdn.net/JIANG123456T/article/details/77674857
clickhouse连接不上,可能的问题:
1.未设置白名单
2.版本太低,核对版本号
删除:
1.查看安装的clickhouse [root@localhost clickhouse]# rpm -qa|grep clickhouse
2.yum remove -y clickhouse-*
3.删除配置 rm -rf /var/lib/clickhouse rm -rf /etc/clickhouse-* rm -rf /var/log/clickhouse-server
客户端连接工具:DBeaver
clickhouse服务:
1.启动 systemctl start clickhouse-server
2.重启 systemctl restart clickhouse-server
3.查状态 systemctl status clickhouse-server
配置:/etc/clickhouse-server/config.xml
<listen_host>服务器ip</listen_host> //监听
vi /etc/clickhouse-server/users.xml
可用内存大小可修改:<max_memory_usage>10000000000</max_memory_usage>
user.xml可设置账号密码: 账号default 密码123
<default>
<password>123</password>
<networks>
<ip>服务器ip</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</default>
使用中会遇到的问题:
1.类型问题:clickhouse类型
clickhouse的int32才对应传统数据库的int (4个字节),需要使用toUInt32(column)
2.一致性问题
clickhouse删除和更新只保证数据最终一致,如果对一致性要求较高,一般使用全量同步方案,该方案未作测试,仅供参考
3.过期数据处理(INTERVAL取值:second(秒),minute(分钟),hour(小时),day(日),week(周),month(月),quarter(季度),year(年))
当列字段中的值过期时, ClickHouse会将它们替换成数据类型的默认值。如果分区内,某一列的所有值均已过期,ClickHouse会从文件系统中删除此列。
# 为表中已存在的列字段添加 TTL
ALTER TABLE table
MODIFY COLUMN `c` String TTL d + toIntervalDay(1)
# 修改列字段的 TTL
ALTER TABLE table
MODIFY COLUMN c String TTL d + INTERVAL 1 WEEK;
当表中的行过期时,ClickHouse 会删除所有对应的行。
# 修改表的 TTL,date超过三个月的数据自动删除
ALTER TABLE a.table MODIFY TTL date + toIntervalMonth(3);