日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

列名无效如何解决_XSKY ClickHouse如何实现存算分离

發布時間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 列名无效如何解决_XSKY ClickHouse如何实现存算分离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在介紹ClickHouse之前,說一下OLAP。OLAP也叫聯機分析處理(Online Analytical Processing)。OLAP系統以維度模型來存儲歷史數據,其主要存儲描述性的數據并且在結構上都是同質的。

01ClickHouse

OLAP應用有如下特點:

1、大多數的請求是讀請求;

2、每次查詢都從數據庫中讀取大量的行,但是同時又僅需要少量的列;

3、寬表,即每個表包含著大量的列;

4、處理單個查詢時需要高吞吐量(每個服務器每秒高達數十億行);

5、每一個查詢除了一個大表外都很小;

6、查詢結果明顯小于源數據,換句話說,數據被過濾或聚合后能夠被盛放在單臺服務器的內存中。

OLAP引擎的痛點:

· SparkSQL & Hive性能不夠快;

· Impala對內存要求高,需要依賴Hadoop生態軟件和基礎。

綜上,市面上的OLAP引擎不夠理想,這時,ClickHouse來了。ClickHouse由俄羅斯yandex公司開發,專為在線數據分析而設計,能夠使用SQL查詢生成實時數據報告,在2016年開源。

首先,也是ClickHouse最突出的優點:"快"。ClickHouse官方測試對比,1億的數據集測試中,ClickHouse的性能,比Hive快259倍,比MySQL快801倍

ClickHouse vs Vertica vs Greeplum

其次,ClickHouse足夠輕量,不依賴Hadoop生態。除了解決上述的問題,ClickHouse還有如下優點:

1、列式存儲+數據壓縮;

2、并行和分布式查詢;

3、支持SQL;

4、實時數據更新。

02存儲需求

ClickHouse作為OLAP的新寵備受關注,國內大廠也紛紛跟進大規模使用。那么ClickHouse對存儲有什么需求?

ClickHouse早期并沒有走Hadoop生態,而是采用Local attached storage(本地存儲)的存儲方式,其可靠性通過原生支持shard + replication來保障。也可以通過RAID 5方式,來提高磁盤數據的可靠性和讀取能力。

但ClickHouse存儲畢竟不是專業存儲,面臨著以下幾個問題:

1、在ClickHouse眾多的表引擎中,又屬合并樹(MergeTree)表引擎及其家族系列(*MergeTree)最為強大,在生產環境絕大部分場景中都應該使用此系列的表引擎。ReplicatedMergeTree實現了ClickHouse的replication特性,需要依賴ZooKeeper實現分布式系統的協作,當并發寫入量較大時,ZooKeeper對表元數據同步有延遲,會成為集群的瓶頸,降低集群整體性能;

2、當數據寫入ClickHouse某個節點異常,導致副本間的數據不一致;

3、難擴容,難維護。

針對上述問題,XSKY為用戶的ClickHouse需求打造了高可用的軟件定義存儲解決方案:

· 本身高可用的存儲,去中心化設計,不會出現單個瓶頸的情況;

· 強一致性存儲系統,保證數據一致性;

· 支持無限制橫向擴展,使存儲性能與容量同步線性增長,同時配合圖形化的管理界面,解決運維問題。

03ClickHouse on S3

上面提到了MergerTree,這里說一下MergeTree在ClickHouse存儲方式。默認情況下ClickHouse的數據存儲在/var/lib/clickhouse/data目錄下:

說明:

1、default:數據庫名;

2、hdfs_engine_table:表名;

3、2a1dedbe81258ce26f3c450185e5550811_0:其中的一個part,每次插入數據就會生成一個part,part會不定時的merge成更大的一個part,每個part里的數據都是按照主鍵排序存儲;

4、checksums.txt:校驗值文件;

5、columns.txt:列名文件,記錄了表中的所有列名;

6、x.bin:每一列的真實數據;

7、x.mrk2:每一列的mrk文件;

8、primary.idx:主鍵文件,存儲了主鍵值。

早在去年的時候,ClickHouse社區就進了一個PR:https://github.com/ClickHouse/ClickHouse/pull/7946,關于支持S3&HDFS 的計劃,并在之后陸續合入了DiskS3,終于在ClickHouse v20.4.2.9版本正式合入PR: https://github.com/ClickHouse/ClickHouse/pull/9646,MergeTree全面支持S3。

那么,怎么讓ClickHouse的數據存儲在S3上?僅需如下兩個步驟即可:

一、創建存儲配置

在/etc/clickhouse-server/config.d目錄下創建配置文件并添加如下配置:

說明:

1、YOUR_ENDPOINT:對象存儲的endpoint,如:10.0.x.x:8060;

2、BUCKET_NAME:桶名;

3、OBJECT_PREFIX:對象名前綴;

4、AK:對象用戶的訪問密鑰;

5、SK:對象用戶的秘密密鑰。

二、創建MergeTree表

在創建表時設置上一步驟中創建的存儲策略SETTINGS storage_policy = 's3'即可。

經過上述兩個步驟就可以進行插入刪除操作。

我們先來看看s3_table是怎么存儲到對象存儲上的?

如下,這么看跟普通的MergeTree沒有區別?

其實真實的數據已經存儲在對象存儲上,比如:1_2_2_0/count.txt文件中記錄著真正的位置。

可通過S3 Browser查看到指定目錄下已存了真實數據。

04應用測試

如上講述了如何使用對象存儲存儲ClickHouse的數據,下面就做一個簡單的測試。這里使用航班飛行的真實數據。

說明:該ClickHouse環境為虛機測試環境,16G的內存,4核CPU,不能體現出性能,僅做功能測試。

1、通過如下命令下載2017年的飛行數據:

2、創建ontime數據庫:

3、將下載好的數據導入到ClickHouse:

4、進行數據查詢:

· 查看導入的數據量:

· 查詢2017最受歡迎的目的地:

· 查詢最受歡迎的出發城市:

05總結

近年來ClickHouse發展迅猛,除了其豐富的功能,優秀的性能,還有就是在當下不可忽視的數據量增長。XSKY對象存儲可為企業提供全面的云存儲安全服務,其可擴展的性能、先進的數據存儲和管理功能,更重要的是能夠實現ClickHouse的存算分離,讓應用更加專注于應用。

END

總結

以上是生活随笔為你收集整理的列名无效如何解决_XSKY ClickHouse如何实现存算分离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。