天天看點

列式資料庫管理系統 - clickhouse

作者:linux運維菜

常見資料庫

列式資料庫管理系統 - clickhouse

常見的行式資料庫系統有: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會使用伺服器上一切可用的資源,進而以最自然的方式并行處理大型查詢。

多伺服器分布式處理

在ClickHouse中,資料可以儲存在不同的shard上,每一個shard都由一組用于容錯的replica組成,查詢可以并行地在所有shard上進行處理。

支援SQL

ClickHouse支援一種基于SQL的聲明式查詢語言,它在許多情況下與ANSI SQL标準相同。

支援的查詢GROUP BY, ORDER BY, FROM, JOIN, IN以及非相關子查詢。

相關(依賴性)子查詢和視窗函數暫不受支援。

列式資料庫管理系統 - clickhouse

安裝部署

可以使用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在終端進行操作。

列式資料庫管理系統 - clickhouse

繼續閱讀