clickhouse是乙個用於聯機分析(olap)的列式資料庫管理系統(dbms)。
絕大多數是讀請求資料以相當大的批次(> 1000行)更新,而不是單行更新;或者根本沒有更新。
已新增到資料庫的資料不能修改。
對於讀取,從資料庫中提取相當多的行,但只提取列的一小部分。
寬表,即每個表包含著大量的列
查詢相對較少(通常每台伺服器每秒查詢數百次或更少)
對於簡單查詢,允許延遲大約50毫秒
列中的資料相對較小:數字和短字串(例如,每個url 60個位元組)
處理單個查詢時需要高吞吐量(每台伺服器每秒可達數十億行)
事務不是必須的
對資料一致性要求低
每個查詢有乙個大表。除了他意以外,其他的都很小。
查詢結果明顯小於源資料。換句話說,資料經過過濾或聚合,因此結果適合於單個伺服器的ram中
很容易可以看出,olap場景與其他通常業務場景(例如,oltp或k/v)有很大的不同, 因此想要使用oltp或key-value資料庫去高效的處理分析查詢場景,並不是非常完美的適用方案。例如,使用olap資料庫去處理分析請求通常要優於使用mongodb或redis去處理分析請求。
sudo apt-get install apt-transport-https ca-certificates dirmngrsudo apt-key adv --keyserver hkp: --recv e0c56bd4echo "deb main/" | sudo tee /etc/apt/sources.list.d/clickhouse.listsudo apt-get updatesudo apt-get install -y clickhouse-server clickhouse-clientsudo service clickhouse-server startclickhouse-client
sudo apt-get update如果更新不了可以修改下源,然後修改source.list,clickhouse.list
create table pnts (lon float64, lat float64) engine = mergetree() order by (lon, lat);time clickhouse-client --query="insert into pnts format csvwithnames" < test_data.csv
計算最大小經緯度
面篩選
select geohashencode(lon, lat, 5),count(1) from pnts group by geohashencode(lon, lat, 5)
緩衝區計算
geohash聚合
參考資料:
ClickHouse原始碼分析 SQL解析
clickhouse的sql解析入口函式 parsequery,函式原型 astptr parsequery iparser parser,const char begin,const char end,const std string query description,size t max qu...
clickhouse資料模型之留存分析
關於使用者留存模型是各大商業資料分析平台必不可少的功能,企業一般用該模型衡量使用者的活躍情況,也是能直接反應產品功能價值的直接指標 如,boss想要了解 改版後,對使用者加購以及後續下單情況的影響等。如下圖,這就是乙個典型的留存分析功能 通常實現上述需求的傳統做法是多表關聯,了解clickhouse...
世界座標系空間,頁面空間,裝置空間,物理裝置空間
一 座標空間 1 win32 應用程式設計介面 api 使用四種座標空間 世界座標系空間 頁面空間 裝置空間和物理裝置空間。應用程式運用世界座標系空間對圖形輸出進行旋轉,斜切或者反射。2 win32 api 把世界座標系空間和頁面空間稱為邏輯空間,最後一種座標空間 即物理裝置空間 通常指應用程式視窗...