ClickHouse原理解析與應用實踐 讀書筆記

2021-10-18 12:48:56 字數 2128 閱讀 1682

背景:

現代bi系統的典型應用場景是多維分析,某些時候可以直接使用olap指代這類場景。

olap,online analytical processing,即聯機分析/多維分析。通過不同的維度審視資料,對欄位進行聚合查詢。

rolap,relational olap,即關係型olap。建立在關係型資料庫之上的,多維分析的操作可以直接轉換成sql查詢。

molap,multidimensional olap,即多維型olap。借助預先聚合結果,使用空間換取時間的形式最終提公升查詢效能。

holap,hybrid olap,即混合架構的olap。前兩者的集合。

發展歷程

olap架構

yandex.metria產品形態

mysql時期

rolap

固定報告

metrage時期

molap

固定報告

olapserver時期

holap(metrage+olapserver)

自助報告

cliskhouse時代

rolap

自助報告

核心特徵:

完備的dbms(database management system,資料庫管理系統)功能。

列式儲存

向量化引擎

sql查詢,大小寫敏感

分布式

資料定義:

相比常規資料庫還提供了復合資料型別,包括陣列,元組,列舉,巢狀。

資料的刪除與修改:

提供了delete和update的能力,這類操作被稱作mutation查詢,可以看做是alter的變種。雖然mutation最終能實現修改和刪除,但不能完全以通常意義上的delete和update來理解。首先,mutation是「很重」的操作,更適用於批量資料的修改和刪除;其次,不支援事務,一旦語句被提交執行,會對資料產生影響,無法回滾;最後,mutation的執行是乙個後台非同步過程,語句被提交後就會立即返回,但是不代表具體邏輯已經執行完畢。

資料字典:

一種簡單,實用的儲存媒介。字典中的資料會被主動或被動載入到記憶體,並支援動態更新。適合儲存常量或經常使用的維度表資料,以避免不必要的join查詢。

資料查詢:

-- 使用with前

select pow(pow(2,

2),3

)-- 使用後

with pow(2,

2)as a select pow(a,3)

-- 使用方式

-- 1.定義變數

with

10as

start

select number from system.numbers

where number>

start

limit

5-- 2.呼叫函式

with

sum(data_uncompressed_bytes)

as bytes

select

database

,fromreadablesize(bytes)

as format

from system.

columns

group

bydatabase

order

by bytes desc

-- 3.定義子查詢

with

(select

sum(data_uncompressed_bytes)

as bytes from system.

columns

)as total_bytes

select

database,(

sum(data_uncompressed_bytes)

/total_bytes)

*100

as database_disk_usage

from system.

columns

group

bydatabase

order

by database_disk_usage desc

-- with中使用子查詢該查詢語句只能返回一行資料,如果資料集的資料大於一行則會丟擲異常

-- 在子查詢中重複使用with

flask limiter 實踐與原理解析

乙個強大的軟體產品是由許多不同的元件結合完成的,其中在每乙個產品中離不開的就是api系統,api系統在整個產品中居於中樞地位,包括系統內部元件,及客戶對產品的對接都要與api打交道,這就需要最大限度的提高api的處理能力,並且防範無效請求,還有黑客的惡意攻擊。限流可以在nginx層進行設定,當然在a...

Elasticsearch原理解析與效能調優

類似於insert。例如索引乙個文件到乙個索引 倒排索引 預設每個屬性都會有乙個倒排索引,可以設定屬性不被索引,它只能被覆蓋,不能被修改 型別類似表,同一索引的不同型別,可以擁有不同的字段,但應該擁有大部分相似的字段。它可以包含大小寫,不能包含句號,不能以下劃線開頭,長度限制為256.id文件的id...

HTTP快取機制與原理解析

http報文分為兩個部分 body 用來存放http傳輸的真正資料 http快取涉及到三個主主體 客戶端瀏覽器,快取資料庫和服務端。而http快取又分為兩種 其基本思想就是 當資料不存在於快取資料庫時,此時會直接去請求伺服器,並把得到的結果寫入快取資料庫中 若資料存在快取資料庫且未過時,則直接去快取...