1. 程式人生 > >ClickHouse原始碼筆記2:聚合流程的實現

ClickHouse原始碼筆記2:聚合流程的實現

>上篇筆記講到了聚合函式的實現並且帶大家看了聚合函式是如何註冊到ClickHouse之中的並被呼叫使用的。**這篇筆記,筆者會續上上篇的內容,將剖析一把ClickHouse聚合流程的整體實現。** 第二篇文章,我們來一起看看聚合流程的實現~~ 上車! ### 1.基礎知識的梳理 ##### ClickHouse的實現介面 * **Block類** 前文我們**聊到ClickHouse是一個列式儲存資料庫,在記憶體之中用IColumn介面來作為資料結構表示資料。** **而Block則是這些列的集合,也就是說Block包含了一組列**,而無數個Block就構成了我們通常理解的表了。 在ClickHouse進行查詢之中,資料的最小處理單位是 Block 。**由下面程式碼可以看到,Block就是由一組列以及列名對應列的偏移map組成的。** ``` class Block { private: using Container = ColumnsWithTypeAndName; using IndexByName =