clickhouse
文章平均质量分 60
lixia0417mul2
避免成为那些从来没有接触过真正技术的所谓技术生涯
展开
-
clickhouse优化汇总
clickhouse 的几个优化方式原创 2023-12-09 11:02:31 · 76 阅读 · 0 评论 -
clickhouse从mysql同步数据到clickhouse的几种方式
从mysql同步数据到ck的几种方式原创 2023-12-05 01:38:09 · 1315 阅读 · 1 评论 -
clickhouse的向量化执行
clickhouse向量化原创 2023-12-02 12:59:23 · 326 阅读 · 0 评论 -
Clickhouse在货品标签场景的应用
使用ck实现货品标签表原创 2023-12-02 12:38:26 · 380 阅读 · 0 评论 -
传统数仓和clickhouse对比
ck和传统数仓对比原创 2023-11-26 11:45:25 · 403 阅读 · 0 评论 -
clickhouse中使用extract抽取关键信息
clickhouse extract常见用法 extract抽取字符串中的ip地址信息原创 2023-07-09 02:03:17 · 954 阅读 · 0 评论 -
clickhouse插入最佳实践
ck 异步插入 ck 分批插入 ck 插入性能原创 2023-06-06 02:01:48 · 1764 阅读 · 0 评论 -
clickhouse 日志 Block with ID already exists ignoring it
clickhouse 数据块去重 Replicate表的好处原创 2023-05-15 01:58:21 · 200 阅读 · 0 评论 -
clickhouse hot/cold存储策略
ttl 按照条件删除数据 ttl 实现hot/cold存储 通过存储策略实现数据cold/hot存储原创 2023-05-01 01:48:37 · 614 阅读 · 0 评论 -
clickhouse 选择排序键的考虑事项
clickhouse排序键选择 clickhouse排序键和压缩率的关系原创 2023-04-27 01:13:25 · 325 阅读 · 0 评论 -
clickhouse的每一列为什么都需要.mrk文件
clickhouse中标记文件的作用 clickhouse中.mrk文件的作用原创 2023-04-21 01:41:07 · 232 阅读 · 0 评论 -
clickhouse跳表索引最佳实践--minmax索引+Set索引
clickhouse跳表索引 set跳表索引 minmax跳表索引原创 2023-04-15 16:28:22 · 1062 阅读 · 0 评论 -
clickhouse的性能指标及重要知识点(一)
clickhouse 插入原子性 clickhouse nullable字段类型 clickhouse 向量化执行原创 2023-04-08 19:42:39 · 522 阅读 · 0 评论 -
clickhouse开窗函数之同比环比
clickhouse 开窗函数 clickhouse 环比同比 clickhouse row_number over 语法 clickhouse partition by xx proceding xx following 语法原创 2022-11-12 22:46:53 · 1716 阅读 · 0 评论 -
clickhouse常见部署图及LowCardinality低基数类型优缺点
clickhouse LowCardinality 低基数 低基数实现原理 clickhouse jdbc读写sql布局 低基数优点 低基数数据类型缺点原创 2022-10-07 02:03:05 · 1394 阅读 · 0 评论 -
clickhouse常见物化视图用法和注意事项
物化视图 物化视图隐藏表 物化视图显式表 物化视图定义 物化视图缺点 物化视图插入性能 物化视图注意事项原创 2022-10-03 00:20:48 · 951 阅读 · 0 评论 -
记一次性能飙升的Mysql CRUD数据表迁移到Clickhouse表的过程
clickhouse mysql表迁移到clickhouse表 clickhouse以增代删操作 ReplacingMergeTree实现mysql表的中增删改操作 mysql表性能瓶颈原创 2022-09-25 12:47:57 · 539 阅读 · 0 评论 -
clickhouse mergetree存储结构靠近LSM日志合并树之旅
clickhouse 存储结构 mergetree的数据存储结构 LSM日志合并树 mergetree小批量数据写入优化手段原创 2022-09-22 01:52:09 · 907 阅读 · 0 评论 -
clickhouse的Distributed分布式表查询的性能陷阱
clickhouse 分布式表查询性能陷阱 clickhouse分布式表group by慢原创 2022-09-19 02:01:08 · 667 阅读 · 0 评论 -
clickhouse常用函数小结
argMin和argMax用法:with toStartOfDay(timestamp) as dayselect day, argMin(message, host),argMin(tuple(message,host), host) from @table group by day这个sql会返回当前的最小host名对应的message,这个sql在group by 分组后查找某个最小值的列对应的另一列的值非常有用visitParamExtractRaw 从json中获取某个字段的值:.原创 2022-05-17 21:56:32 · 1083 阅读 · 0 评论 -
clickhouse的一些总结
写入数据到clickhouse时最好是批量写入,比如一批1000行以上,并且每一批不能创建太多的分区,因为我们知道每一次insert数据插入,对应的分区都会创建一个分区的目录,后台有专门的线程合并这些分区的目录,如果每批的数据写入的数据量都足够大,clickhouse的数据写入速度是非常高的,因为数据写入时都是磁盘的顺序io操作,支持每秒30M或者200M的顺序io速度.clickhouse和es一样,他不擅长join操作,而是更擅长于把所有的字段都放在同一张表中,不过这样的话,可能容易造成数据冗余和一.原创 2022-05-08 19:08:12 · 3556 阅读 · 0 评论 -
clickhouse物化视图详解
clickhouse物化视图有常见的两种模式假设源表定义如下:create table source_table(id int32, age int32, create_time DateTime) engine=mergeTree() partition by toYYMMDD(create_time) order by id 模式一 隐式创建目标表:CREATE MATERIALIZED VIEW hide_agg_mv_view(id int32, min_age AggregateFu原创 2022-05-04 19:27:49 · 4983 阅读 · 0 评论 -
clickhouse分布式表多副本路由规则/扩缩容/备份
clickhouse分布式表查询时选择副本的路由规则, clickhouse副本扩缩容,clickhouse 分片扩缩容 clickhouse数据备份 clickhouse数据还原原创 2022-05-04 04:06:10 · 947 阅读 · 0 评论 -
clickhouse读写分离模式 -读分布式表写本地表
本文沿着上一篇文章clickhouse 副本与分片继续讨论如何对副本与分片进行读写,简单回顾下:我们组建了四个几点的集群,其中分片1由10.100.0.1和10.100.0.2节点组成,互为副本,分片2由10.100.0.3和10.100.0.4节点组成,互为副本.读写分布式表的缺点:我们知道如果通过读写都是通过分布式表进行,那么对于写操作来说,会有写放大的问题,也就是比如我们通过节点10.100.0.1的分布式表default.distribute_table写入分片1和分片2的数据,那么对于分片1的原创 2022-05-03 20:59:16 · 3869 阅读 · 0 评论 -
clickhouse副本与分片
clickhouse副本: clickhouse副本可以增加数据的可靠性,防止数据丢失,并且可以分担读写负载clickhouse分片: clickhouse的分片主要是解决单节点容量不足,需要把数据分摊到多个节点,起到类似mysql的分库分表的作用假设我们现在有10.100.0.1-10.100.0.4四个服务节点,我们搭建一个2分片1副本的集群,所有的配置内容如下所示:10.100.0.1节点 对应分片1:<yandex> <zookeeper-server>原创 2022-05-03 20:21:17 · 1004 阅读 · 0 评论 -
clickhouse: 使用ReplaceMergeTree以增代删同步mysql binlog日志
一般同步mysql的数据到clickhouse中有两种常见的方式方式1:每天定时拉取mysql的全量数据同步到clickhouse中,对于相同的主键,只保留update_time最新的一条记录,这种方式要求mysql的数据记录必须包含update_time字段,并且不能物理删除数据,删除时只能软删除比如设置is_deleted=1这种方式.我目前所在的公司就是采用的这种方式同步mysql的数据.方式2:mysql数据变更的binlog通过canal + kafka的形式以kafka主题的对外提供,k原创 2022-05-03 13:05:58 · 3179 阅读 · 2 评论 -
clickhouse join注意点及自定义存储策略
一般来说,使用clickhouse和es一样,都是使用的宽表的形式,即一张表中包含了很多的字段,建立的模型不是类似于之前常见的雪花或者星型模型,所以我们一般都会尽量避免join操作,不过如果我们真的需要表join操作时(比如A join B),需要注意以下几点:a. 右边的表B是小表,clickhouse目前不论是处理left join,right join,inner join都是先把右表B加载到内存中,然后对于B表中的每一行再去寻找A表中满足条件的记录 ----注意对于clickhouse来说,主键原创 2022-05-02 19:46:11 · 1426 阅读 · 0 评论 -
clickhouse物理存储结构及修改删除操作
clickhouse 物理存储结构 修改 删除操删除语句形如:alter table clickhouseTable delete where id >10等sql语句的执行是一个非常耗费资源的操作,他会消耗大量的磁盘io和cpu时间周期,其sql的执行过程是异步的,有专门的后台执行线程异步执行,sql语句是不支持事务操作的,一旦执行就会开始对数据产生影响,并且无法回滚.click原创 2022-04-30 02:15:45 · 2631 阅读 · 0 评论 -
clickhouse分布式表 vs 客户端分片
clickhouse实现数据分片的方式主要有以下两种:第一种: 客户端分片假设有服务器节点A和B,A和B上面分别创建了本地mergetree表,这两个表的表结构一模一样,只是数据不同,使用这种分片方式时,客户端完全控制分片逻辑,比如客户端决定数据D应该写入哪个节点中,查询数据的时候由客户端分别向节点A和B的本地表发送请求,然后把请求合并返回给应用端,这里如何写数据和读数据的逻辑完全由客户端控制。这里需要考虑到比如A节点挂了之后,客户端要能感知到并使用比如A1节点代替,这里A和A1节点可以使用Replic原创 2022-04-28 02:05:28 · 2014 阅读 · 0 评论 -
clickhouse 副本ReplicateMergeTree实现原理及导致的数据一致性问题
ReplicateMergeTree副本表原理 insert 副本同步 update/delete操作副本同步 副本表数据一致性问题 副本表数据一致性原创 2022-04-24 02:12:32 · 1427 阅读 · 0 评论 -
clickhouse的kafka表引擎 +接口表
kafka表引擎kafka表引擎能订阅kafka的主题消息并实时接收kafka主题数据,目前kafka表引擎支持消息的最少一次的语义,目前常用的使用clickhouse接收并处理kafka消息的方式如下:a. 创建kafka表引擎 create table clickhouse_kafka_topic(id int32, message string) engine =kafka() settings kafka_broker_list=‘’,kafka_format =‘’b.创建一张面向用户终端原创 2022-04-23 18:45:14 · 2335 阅读 · 0 评论 -
clickhouse 的hdfs表引擎和mysql表引擎
mysql表引擎clickhouse的mysql表引擎可以和远端的mysql数据库表建立联系,这样如果远端的mysql表数据非常大的时候就可以利用clickhouse表引擎的olap能力进行数据查询,该过程步骤如下:a. create table click_house_tableA (id int32, message string) engine = mysql(‘host’,‘port’,‘tableName’); 创建成功后就可以查询数据了,但是这里仅仅只是建立了一层代理,还没能利用到cli原创 2022-04-23 18:19:54 · 1099 阅读 · 0 评论 -
日志存储 elasticsearch vs clickhouse
elasticsearch优点:a. 查询速度快,es是基于lucene的倒排索引实现,数据分词后预先已经排好序了,所以查询速度很快,qps较高,并且cpu消耗不大b.es的索引字段比较灵活,可以随意的增加新字段到es中elasticsearch缺点:a.数据写入时要对所有的字段进行分词操作,然后在对这些分词构建倒排索引,事实上,并不是所有的分词都会在搜索中用到,这里类似于数据预聚合的概念,有些分词是没必要的b.es的倒排索引文件,正排文件,docvalue文件等都很大,压缩效果很小,这就造成了数原创 2022-04-23 12:16:05 · 2827 阅读 · 0 评论 -
clickhouse的mergetree表引擎数据查找流程图及特性
mergetree表数据查找流程 mergetree 合并树特点 mergetree合并表特色原创 2022-04-19 02:45:21 · 606 阅读 · 0 评论 -
clickhouse数据字典、系统监控
clickhouse数据字典 clickhouse 分区操作日志监控 clickhouse 服务监控原创 2022-04-14 02:20:55 · 1260 阅读 · 0 评论 -
clickhouse-小结 mutation操作 视图
1.clickhouse的本地表一般由目录+文件构成,比如有以下的表定义:create table tableA (id uint8,name String,createTime DateTime) engine=mergeTree partition by toYYMMDD(createTime) order by id对应的目录结构如下: 当进行mutation操作,也就是就行update或者delete语句的时候,比如执行以下sql:alter table tableA update nam原创 2022-04-10 20:28:18 · 752 阅读 · 0 评论 -
clickhouse小结--数据类型及常见客户端类型
1.clickhouse支持的数据类型:a. 基础类型:数值型(包括整数uint和浮点数float32),字符串型(String,FixString),日期型(Datetime)b. 复合类型:数组array,元祖tuple,嵌套类型nested简单记录下各种复合类型的操作:数组型:select array(10,20,30) as a, toTypeName(a)元祖型,假设字段定义为Tuple(uint8, String):insert into xx values((100,‘200’)原创 2022-04-10 19:09:27 · 1191 阅读 · 0 评论 -
clickhouse 常见知识点小结
limit by 用途 ck多线程扫描加速 ck sql解析原创 2022-04-10 02:10:33 · 336 阅读 · 0 评论 -
clickhouse 速度快的原因-小结
1.clickhouse是一个列式存储的数据库,每一列数据都经过了lz4的压缩,由于列数据之间重复性极高,所以拥有非常可观的压缩比,这样查询一列数据时,扫描速度极快2.cpu指令层面的优化,大量使用了向量化的操作的指令,也就是SIMD指令(单指令多数据),并且非常善于利用cpu的L1,L2,L3缓存,尽量减少读取内存或者磁盘的操作.3.不同的场景使用不同的算法或者数据结构,比如数据量较小时就是用array数组存储,数据中等大小时就用hashset结构存储,数据量庞大时使用hyperloglog结构存储原创 2022-04-02 02:41:25 · 2315 阅读 · 0 评论