常見資料庫
常見的行式資料庫系統有:MySQL、Postgres和MS SQL Server。
常見的列式資料庫有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+。
ClickHouse是一個适合聯機分析(OLAP)的列式資料庫管理系統(DBMS)。
OLAP場景的關鍵特征
- 絕大多數是讀請求
- 資料以相當大的批次(> 1000行)更新,而不是單行更新;或者根本沒有更新。
- 已添加到資料庫的資料不能修改。
- 對于讀取,從資料庫中提取相當多的行,但隻提取列的一小部分。
- 寬表,即每個表包含着大量的列
- 查詢相對較少(通常每台伺服器每秒查詢數百次或更少)
- 對于簡單查詢,允許延遲大約50毫秒
- 列中的資料相對較小:數字和短字元串(例如,每個URL 60個位元組)
- 處理單個查詢時需要高吞吐量(每台伺服器每秒可達數十億行)
- 事務不是必須的
- 對資料一緻性要求低
- 每個查詢有一個大表。除了他以外,其他的都很小。
- 查詢結果明顯小于源資料。換句話說,資料經過過濾或聚合,是以結果适合于單個伺服器的RAM中
更小的存儲
ClickHouse還提供針對特定類型資料的專用編解碼器,這使得ClickHouse能夠與更小的資料庫(如時間序列資料庫)競争并超越它們。
多核心并行處理
ClickHouse會使用伺服器上一切可用的資源,進而以最自然的方式并行處理大型查詢。
多伺服器分布式處理
在ClickHouse中,資料可以儲存在不同的shard上,每一個shard都由一組用于容錯的replica組成,查詢可以并行地在所有shard上進行處理。
支援SQL
ClickHouse支援一種基于SQL的聲明式查詢語言,它在許多情況下與ANSI SQL标準相同。
支援的查詢GROUP BY, ORDER BY, FROM, JOIN, IN以及非相關子查詢。
相關(依賴性)子查詢和視窗函數暫不受支援。
安裝部署
可以使用yum直接進行安裝。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
預設配置
http端口:8123
tcp端口:9000
預設使用者:default
預設密碼:無
可以直接使用clickhouse-client在終端進行操作。