ClickHouse
文章平均质量分 63
clickhouse实战
upupfeng
贵有恒,要坚持~~
展开
-
Clickhouse EmbeddedRocksDB引擎
使用clickhouse时,处理kv场景总是不得劲,偶然间看到官方的EmbeddedRocksDB引擎 ,可以支持kv场景,特此实践。RocksDB是一个嵌入式的KV存储,用来存储key和value,支持常用的读写场景。广泛应用于各大开源框架,在Flink中就用于状态存储。去ck官网看了下changelog,EmbeddedRocksDB表引擎是在ClickHouse release v20.12.3.3-stable, 2020-12-13推出的,下载其之后的版本就可以使用了。我用的ck是21..原创 2022-03-12 10:58:59 · 1519 阅读 · 0 评论 -
Docker安装Clickhouse
去docker hub搜索clickhouse-server点击tags寻找要下载的版本拉取镜像docker pull yandex/clickhouse-server:21.3.20.1启动clickhouse-server# 启动镜像,不挂载存储盘docker run -d --name ck-server-21-3 --ulimit nofile=262144:262144 \ -p 18123:8123 -p 19000:9000 -p 19009:9009 yandex/cli.原创 2022-03-04 15:03:34 · 634 阅读 · 0 评论 -
ClickHouse借助ReplacingMergeTree实现重复数据删除
MergeTree引擎的表,由于重复入库导致了表中数据重复,需要将重复的数据删除,只保留一条记录。在使用Hive的时候,遇到这种情况通常是使用row_number取第一条插入到临时表中,然后将原表数据删除,再将临时表数据写回来就可以实现去重。但是CK(clickhouse)中不支持row_number函数,需要使用别的方法去重。翻阅文档后,发现可以使用ReplacingMergeTree + Optimize来手动实现去重。需要注意的是这种方式不太适合于超大数据量数据的去重。先介绍下Replacin原创 2021-09-05 10:01:26 · 12185 阅读 · 0 评论 -
clickhouse-client命令行参数及常用案例
ClickHouse提供了原生的命令行客户端clickhouse-client来操作ClickHouse。clickhouse-client可以在交互和非交互(批处理)模式下使用。交互模式下,一次登录,可以执行多次查询。一般用不到,要查询数据直接用客户端软件就行了,如DBeaver。非交互模式一般用于使用脚本执行查询语句。使用方式clickhouse-client [参数]配置参数可以通过两种方式来配置参数:直接在命令行执行参数通过配置文件指定命令行指定--host, -h -原创 2021-08-27 18:42:23 · 20399 阅读 · 5 评论 -
Clickhouse基于system.parts表查看磁盘占用情况
日常工作中需要观察Clickhouse的磁盘使用情况,查看文档后发现基于system.parts表可以查询相关信息。需要注意的是,systems.parts只可以查询MergeTree系列的表的情况。systems.parts字段说明见文末。相关查询查看数据库的磁盘使用情况及数据行数查询本机整个数据库所有表总共的情况select \ sum(rows) as row, \ formatReadableSize(sum(bytes_on_disk)) as used_disk, \原创 2021-07-25 21:55:23 · 4712 阅读 · 1 评论 -
clickhouse-client INSERT CSV/TSV时跳过错误行
在使用clickhouse-client向ck中导入csv文件时,当csv中有个别行数据格式错误时,整个文件就插入失败了,经常会导致丢数据。经过一番搜索,发现ck提供了两个参数可以跳过错误行,其他的行正常入库,可以满足要求。参数说明input_format_allow_errors_num设置从文本格式(CSV、TSV等)读取时可接受的最大错误数。默认值为0。如果在读取行时发生错误,但错误数仍然小于input_format_allow_errors_num时,则ck将忽略该行并转到下一行。in原创 2021-07-24 16:33:54 · 2760 阅读 · 0 评论 -
ClickHouse Kafka表引擎使用详解
前言项目采用Flink、Kafka、Clickhouse的实时数仓架构,数据由Kafka接入,经过Flink处理,写入Clickhouse。初期直接由Flink写入Clickhouse,经常会出现分区太多合并不来等意外情况,效果不是很好。而且数据也需要共享到其他地方,故直接写入CK对我们来说不是很好的选择。于是先将数据写入Kafka,之后由Kafka对数据进行分发。从Kafka写入CK有很多种方法:使用Flink Connector使用github上开源的kafka ck组件使用CK的Kaf原创 2021-05-15 20:21:29 · 9652 阅读 · 12 评论