ClickHouse快速學習

2021-10-23 18:38:23 字數 3209 閱讀 2788

因為clickhouse的內部通訊位址預設使用的是9000埠,所以需要更改,以免和hdfs的衝突,修改集群檔案metrika.xml檔案,指定三個埠的埠為9100,分別傳送到伺服器,然後修改/etc/clickhouse-server/config.xml檔案,將其中的port檔案改為9100,

這時候clickhouse就可以使用9100作為資料庫集群之間tcp通訊的埠,這樣就導致clickhouse-client不能使用預設的9000,所以登陸的時候要指定埠號

為什麼要用clickhouse?

1.clickhouse是c開發的,快

2.用到olap(聯機分析處理)

3.對hadoop技術棧的補充,專門用來對資料進行分析的,補充spark和hive沒有涉及的維度查詢

聯機分析處理olap是一種軟體技術,它使分析人員能夠迅速、一致、互動地從各個方面觀察資訊,以達到深入理解資料的目的。它具有fasmi(fast analysis of shared multidimensional information),即共享多維資訊的快速分析的特徵。其中f是快速性(fast),指系統能在數秒內對使用者的多數分析要求做出反應;a是可分析性(analysis),指使用者無需程式設計就可以定義新的專門計算,將其作為分析的一部 分,並以使用者所希望的方式給出報告;m是多維性(multi—dimensional),指提供對資料分析的多維檢視和分析;i是資訊性(information),指能及時獲得資訊,並且管理大容量資訊。 [1]

1.快,近乎實時的結果獲取

2.面對的資料是整理好的,甚至處理好的,不需要進行大規模修改,而且不需要支援事務,只是查詢使用

3.因為是針對各種維度進行分析用的,所以最好使用的是列式儲存,(這也導致clickhouse要比mysql更適合做這個工作)

1.絕大多數請求都是用於讀訪問的

2.資料需要以大批次(大於1000行)進行更新,而不是單行更新;或者根本沒有更新操作

3.資料只是新增到資料庫,沒有必要修改

4.讀取資料時,會從資料庫中提取出大量的行,但只用到一小部分列

5.表很「寬」,即表中包含大量的列

6.查詢頻率相對較低(通常每台伺服器每秒查詢數百次或更少)

7.對於簡單查詢,允許大約50毫秒的延遲

8.列的值是比較小的數值和短字串(例如,每個url只有60個位元組)

9.在處理單個查詢時需要高吞吐量(每台伺服器每秒高達數十億行)

10.不需要事務

11.資料一致性要求較低

12.每次查詢中只會查詢乙個大表。除了乙個大表,其餘都是小表

13.查詢結果顯著小於資料來源。即資料有過濾或聚合。返回結果不超過單個伺服器記憶體大小

show tables;

# 建立表

create table if not exists stu (uid string,age uint16) engine=tinylog

insert into

#查詢select * from stu

# 新增

# 建立列舉

create table t_enum(

x enum8('hello'=1,'world'=3))engine=tinylog

select * from t_enum

# 插入列舉

insert into t_enum values ('hello')

# 檢視結構

desc t_enum

# 檢視列舉對應的值

select cast(x,'int8') from t_enum

# 建立陣列

select array(1,2,3) as x ,totypename(x)

# 建立元組

select tuple('a',1) as y ,totypename(y)

# 建立日期型別

select todatetime('2014-01-31 23:23:12') as da,

todate(da) as date_local,

todate(da,'asia/yekaterinburg') as date_beijing,

tostring(da,'us/samoa') as riben

select length('的')

select upper('ajlkdsfjlaksdjf')

select lower('ajlkdsfjlaksdj')

# 判斷是否是utf8的字元

select isvalidutf8('')

# 轉換為utf8

select tovalidutf8('')

# 要重複的次數

select repeat('assss',10)

# 反轉

select reverse('abc')

# 陣列操作

# 刪除最後一項

select arraypopback([1,2,3,4]) as res

# 高階函式

# 支援lambda表示式

# 每個array中的元素+2

select arraymap(x->(x*2),[1,2,3]) as tr

# 合併陣列

select arraymap((x,y)->(x+y),[1,2,3],[10,20,30])

# 過濾陣列,支援 運算子,以及and, or, alias, not, token, as, between, like,

# is, not like, in, not in, global in, global not in 等關鍵字

select arrayfilter(x->x >10 [2,23,43,5,63,2,4]) as res

# 陣列元素拆分

# 當v返回的真的時候,將會切分 => [[12,32,43,5],[4,6,3]] ,在左側切

select arraysplit((s,v)->v,[12,32,43,5,4,6,3],[0,0,0,0,1,0,0])

# 右側切 =>[[12,32,43,5,4],[6,3]]

select arrayreversesplit((s,v)->v,[12,32,43,5,4,6,3],[0,0,0,0,1,0,0])

一語中的 快速了解ClickHouse

clickhouse 是 yandex 俄羅斯最大的搜尋引擎 開源的乙個用於實時資料分析的基於列儲存的資料庫,其處理資料的速度比傳統方法快 100 1000 倍。clickhouse 的效能超過了目前市場上可比的面向列的 dbms,每秒鐘每台伺服器每秒處理數億至十億多行和數十千兆位元組的資料。cli...

clickhouse 部署 介紹

clickhouse是乙個用於聯機分析處理 olap 的列式資料庫管理系統 columnar dbms 傳統資料庫在資料大小比較小,索引大小適合記憶體,資料快取命中率足夠高的情形下能正常提供服務。但殘酷的是,這種理想情形最終會隨著業務的增長走到盡頭,查詢會變得越來越慢。你可能通過增加更多的記憶體,訂...

初步認識clickhouse

命令列客戶端 可以選擇使用互動式與非互動式 批量 兩種模式 互動模式 進入互動模式 clickhouse client 如果埠不是9000的,可以通過 port自行設定 clickhouse client port x 退出客戶端 exit 原生客戶端介面 tcp 可以從clickhouse源 進行...