摘要:
目标 .Figure out part 生成逻辑 2.针对某个Insert,根据列中的哪些值生成parts.找出对应代码。SipHash值是如何计算的,计算的列中的哪些行。 以 a_local为例 PARTITION BY partition_key. 3.测试 4.Insert 语句是否是并行。答 阅读全文
摘要:
当时想实践一下Pipeline的构建。 未能实现的原因主要是在于 1. ClickHouse架构认识不足。 2.CMakeLists.txt 功力不足。 各占一半一半。 1. Source 1234567891011121314151617181920212223242526272829 class 阅读全文
摘要:
场景: 一个项目,两个分支。 1. 社区分支 没有接受 本地分支 代码。 2. 本地分支依赖社区分支。 3.社区有版本更新时,需要将本地分支的代码合并到 社区release 分支。 这里主要介绍此方法。 Branch A: (Community) startA <- c0 <- c1 <- c2 < 阅读全文
摘要:
Clickhouse sync 解析 作用: 可以更及时清理Atomic 数据库内部的表元数据信息。 无 cluster 模式 以 Drop table table_map sync; 此处是本地表。 结论 Sync 语法无法改变 BackgroundSchedulePool 使用线程异步执行的本质 阅读全文
摘要:
Join (Inner Join) Join 算法 https://clickhouse.com/docs/en/operations/settings/settings/#settings-join_algorithm Specifies JOIN algorithm. Possible valu 阅读全文
摘要:
在序列化Map之前,按照key进行排序,构建数组,arr[i]记录应该在这个位置上的item在offsets上的偏移.auto cmp = [](const StringRef& lhs, const StringRef& rhs){ return (strcmp(lhs.data, rhs.dat 阅读全文
摘要:
Processor 简述 Processor是处理SQL中各步骤数据的基本单元。数据,从Processor流入,经过Processor处理,处理后从Processor流出。 从功能上主要分为三类, 1.输入数据,抽象ISource 2.过程处理,Transform 3.结果输出(一般是常见是写磁盘) 阅读全文
摘要:
ColumnString 存储结构. Offsets是 元素的偏移量,UInt64比较合理. 我们可以从 insert 函数中得到 chars (PaddedPODArray<UInt8>)和offsets (PaddedPODArray<>的配合关系. 函数基本作用就是 将chars进行resiz 阅读全文
摘要:
PaddedPODArray<> 模板: 理解Column内存布局的金钥匙 ClickHouse 设计者使用ColumnString类型中的getDataAt()方法实际调用的是PODArray类型. Chars 使用PaddedPODArray<UInt8>类型, PaddedPODArray模板 阅读全文