女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

QuestDB時序數(shù)據(jù)庫性能居然領先ClickHouse和InfluxDB這么多

話說科技 ? 2021-06-01 14:45 ? 次閱讀

作者:Vlad Ilyushchenko,QuestDB的CTO

在QuestDB (https://questdb.io/, https://github.com/questdb/questdb),我們已經(jīng)建立了一個專注于性能的開源時間序列數(shù)據(jù)庫。我們創(chuàng)建QuestDB初衷是為了將我們在超低延遲交易方面的經(jīng)驗以及我們在該領域開發(fā)的技術方法帶到各種實時數(shù)據(jù)處理用途中。

QuestDB的旅程始于2013年的原型設計,我們在去年HackerNews發(fā)布會期間(https://news.ycombinator.com/item?id=23975807)發(fā)表的一篇文章中描述了2013年之后所發(fā)生的變化。我們的用戶在金融服務、物聯(lián)網(wǎng)、應用監(jiān)控和機器學習領域都部署了QuestDB,使時間序列分析變得快速、高效和便捷。

什么是存儲時間序列數(shù)據(jù)的最佳方式?

在項目的早期階段,我們受到了基于矢量的append-only系統(tǒng)(如kdb+)的啟發(fā),因為這種模型帶來了速度和簡潔代碼路徑的優(yōu)勢。QuestDB的數(shù)據(jù)模型使用了我們稱之為基于時間的數(shù)組,這是一種線性數(shù)據(jù)結構。這允許QuestDB在數(shù)據(jù)獲取過程中把數(shù)據(jù)切成小塊,并以并行方式處理所有數(shù)據(jù)。以錯誤的時間順序到達的數(shù)據(jù)在被持久化到磁盤之前會在內存中進行處理和重新排序。因此,數(shù)據(jù)在到達數(shù)據(jù)庫中之前已經(jīng)按時間排序。因此,QuestDB不依賴計算密集的索引來為任何時間序列的查詢重新排序數(shù)據(jù)。

這種liner模型與其他開源數(shù)據(jù)庫(如InfluxDB或TimescaleDB)中的LSM樹或基于B樹的存儲引擎不同。

除了更好的數(shù)據(jù)獲取能力,QuestDB的數(shù)據(jù)布局使CPU能夠更快地訪問數(shù)據(jù)。我們的代碼庫利用最新CPU架構的SIMD指令,對多個數(shù)據(jù)元素并行處理同類操作。我們將數(shù)據(jù)存儲在列中,并按時間進行分區(qū),以在查詢時從磁盤中提取最小的數(shù)據(jù)量。

2106011125241910431403.png

數(shù)據(jù)被存儲在列中,并按時間進行分區(qū)

QuestDB與ClickHouse、InfluxDB和TimescaleDB相比如何?

我們看到時間序列基準測試套件(TSBS https://github.com/timescale/tsbs)經(jīng)常出現(xiàn)在關于數(shù)據(jù)庫性能的討論,因此我們決定提供對QuestDB和其他系統(tǒng)進行基準測試的能力。TSBS是一個Go程序集,用于生成數(shù)據(jù)集,然后對讀寫性能進行基準測試。該套件是可擴展的,因此可以包括不同的用例和查詢類型,并在不同系統(tǒng)之間進行比較。

以下是我們在AWS EC2 m5.8xlarge實例上使用多達14個worker的純cpu用例的基準測試結果,該實例有16個內核。

210601112524164559475.png

TSBS結果比較了QuestDB、InfluxDB、ClickHouse和TimescaleDB的最大獲取吞吐量。

我們使用4個worker達到最大的攝取性能,而其他系統(tǒng)需要更多的CPU資源來達到最大的吞吐量。QuestDB用4個線程達到了95.9萬行/秒。我們發(fā)現(xiàn)InfluxDB需要14個線程才能達到最大的攝取率(334k行/秒),而TimescaleDB用4個線程達到145k行/秒。ClickHouse以兩倍于QuestDB的線程達到914k行/秒。

當在4個線程上運行時,QuestDB比ClickHouse快1.7倍,比InfluxDB快6.5倍,比TimescaleDB快6.6倍。

210601112523974694536.png

使用4個線程的TSBS基準測試結果:QuestDB、InfluxDB、ClickHouse和TimescaleDB每秒獲取的行數(shù)。

當我們使用AMD Ryzen5處理器再次運行該套件時,我們發(fā)現(xiàn),我們能夠使用5個線程達到每秒143萬行的最大吞吐量。與我們在AWS上的參考基準m5.8xlarge實例所使用的英特爾至強Platinum相比:

2106011125221500359221.png

比較QuestDB TSBS在AWS EC2與AMD Ryzen5上的負載結果

你應該如何存儲亂序的時間序列數(shù)據(jù)?

事實證明,在攝取過程中對 "亂序"(O3)的數(shù)據(jù)進行重新排序特別具有挑戰(zhàn)性。這是一個新的方法,我們想在這篇文章中詳細介紹一下。我們對如何處理失序攝取的想法是增加一個三階段的方法。

1.保持追加模式,直到記錄不按順序到達為止

2.在內存中對暫存區(qū)的未提交的記錄進行排序

3.在提交時對分類的無序數(shù)據(jù)和持久化的數(shù)據(jù)進行核對和合并

前兩個步驟很直接,也很容易實現(xiàn),依然只是處理追加的數(shù)據(jù),這一點沒變。只有在暫存區(qū)有數(shù)據(jù)的時候,昂貴的失序提交才會啟動。這種設計的好處是,輸出是向量,這意味著我們基于向量的閱讀器仍然是兼容的。

這種預提交的排序和合并方式給數(shù)據(jù)獲取增加了一個額外的處理階段,同時也帶來了性能上的損失。不過,我們還是決定探索這種方法,看看我們能在多大程度上通過優(yōu)化失序提交來減少性能損耗。

我們如何分類、合并和提交無序的時間序列數(shù)據(jù)

處理一個暫存區(qū)給了我們一個獨特的機會來全面分析數(shù)據(jù),在這里我們可以完全避免物理合并,并通過快速和直接的memcpy或類似的數(shù)據(jù)移動方法來替代。由于我們的基于列的存儲,這種方法可以被并行化。我們可以采用SIMD和非時序數(shù)據(jù)訪問,這對我們來說是很重要的。

我們通過優(yōu)化版本的radix排序對來自暫存區(qū)的時間戳列進行排序,所產(chǎn)生的索引被用于并行對暫存區(qū)的其余列進行排序。

210601112522633858319.png

并行得將列進行排序

現(xiàn)在排序的暫存區(qū)是相對于現(xiàn)有分區(qū)數(shù)據(jù)進行映射的。從一開始可能并不明顯,但我們正試圖為以下三種類型的每一種建立所需的操作和維度。

210601112522831457341.png

失序(O3)排序和合并方案

當以這種方式合并數(shù)據(jù)集時,前綴和后綴組可以是持續(xù)的數(shù)據(jù)、失序的數(shù)據(jù),或者沒有數(shù)據(jù)。合并組(Merge Group)是最繁忙的,因為它可以被持久化的數(shù)據(jù)、失序的數(shù)據(jù)、失序的數(shù)據(jù)和持久化的數(shù)據(jù)占據(jù),或者沒有數(shù)據(jù)。

當明確了如何分組和處理暫存區(qū)的數(shù)據(jù)時,一個工人池就會執(zhí)行所需的操作,在少量的情況下調用memcpy,其他都轉向SIMD優(yōu)化的代碼。通過前綴、合并和后綴拆分,提交的最大活度(增加CPU容量的易感性)可以通過partition_affected x number_of_columns x 3得到。

時間序列數(shù)據(jù)應該多久進行一次排序和合并?

能夠快速復制數(shù)據(jù)是一個不錯的選擇,但我們認為在大多數(shù)時間序列獲取場景中可以避免大量的數(shù)據(jù)復制。假設大多數(shù)實時失序的情況是由傳遞機制和硬件抖動造成的,我們可以推斷出時間戳分布將在一定區(qū)間范圍。

例如,如果任何新的時間戳值有很大概率落在先前收到的值的10秒內,那么邊界就是10秒,我們稱這個為滯后邊界。

當時間戳值遵循這種模式時,推遲提交可以使失序提交成為正常的追加操作。失序系統(tǒng)可以處理任何種類的延遲,但如果延遲的數(shù)據(jù)在指定的滯后邊界內到達,它將被優(yōu)先快速處理。

如何比較時間序列數(shù)據(jù)庫的性能

我們已經(jīng)在TimescaleDB的TSBS GitHub倉庫中開啟了一個合并請求(Questdb基準支持 https://github.com/timescale/tsbs/issues/157),增加了針對QuestDB運行基準測試的能力。同時,用戶可以克隆我們的基準測試fork(https://github.com/questdb/tsbs),并運行該套件以查看自己的結果。

tsbs_generate_data --use-case="cpu-only" --seed=123 --scale=4000 `。

--timestamp-start="2016-01-01T00:00:00Z" --timestamp-end="2016-01-02T00:00:00Z" \

--log-interval="10s" --format="influx" > /tmp/bigcpu

tsbs_load_questdb --file /tmp/bigcpu --workers 4

構建具有授權許可的開源數(shù)據(jù)庫

在進一步推動數(shù)據(jù)庫性能的同時,使開發(fā)人員能夠輕松地開始使用我們的產(chǎn)品,這一點每天都激勵著我們。這就是為什么我們專注于建立一個堅實的開發(fā)者社區(qū),他們可以通過我們的開源分銷模式參與并改進產(chǎn)品。

除了使QuestDB易于使用之外,我們還希望使其易于審計、審查,提交代碼或其他的項目貢獻。QuestDB的所有源代碼都在GitHub(https://github.com/questdb/questdb)上以Apache 2.0許可證提供,我們歡迎對此產(chǎn)品的各種貢獻,包括在GitHub上創(chuàng)建issue或者提交代碼。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    數(shù)據(jù)庫數(shù)據(jù)恢復——MongoDB數(shù)據(jù)庫文件拷貝后服務無法啟動的數(shù)據(jù)恢復

    MongoDB數(shù)據(jù)庫數(shù)據(jù)恢復環(huán)境: 一臺Windows Server操作系統(tǒng)虛擬機上部署MongoDB數(shù)據(jù)庫。 MongoDB數(shù)據(jù)庫故障: 管理員在未關閉MongoDB服務的
    的頭像 發(fā)表于 04-09 11:34 ?234次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復——MongoDB<b class='flag-5'>數(shù)據(jù)庫</b>文件拷貝后服務無法啟動的<b class='flag-5'>數(shù)據(jù)</b>恢復

    TDengine 發(fā)布時序數(shù)據(jù)分析 AI 智能體 TDgpt,核心代碼開源

    組成部分,標志著時序數(shù)據(jù)庫在原生集成 AI 能力方面邁出了關鍵一步。 TDgpt 是內嵌于 TDengine 中的時序數(shù)據(jù)分析 AI 智能體,具備時序數(shù)據(jù)預測、異常檢測、數(shù)據(jù)補全、分類
    的頭像 發(fā)表于 03-27 10:30 ?240次閱讀
    TDengine 發(fā)布<b class='flag-5'>時序數(shù)據(jù)</b>分析 AI 智能體 TDgpt,核心代碼開源

    數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server附加數(shù)據(jù)庫提示“錯誤 823”的數(shù)據(jù)恢復案例

    SQL Server數(shù)據(jù)庫附加數(shù)據(jù)庫過程中比較常見的報錯是“錯誤 823”,附加數(shù)據(jù)庫失敗。 如果數(shù)據(jù)庫有備份則只需還原備份即可。但是如果沒有備份,備份時間太久,或者其他原因導致備份
    的頭像 發(fā)表于 02-28 11:38 ?414次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—SQL Server附加<b class='flag-5'>數(shù)據(jù)庫</b>提示“錯誤 823”的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    MySQL數(shù)據(jù)庫的安裝

    MySQL數(shù)據(jù)庫的安裝 【一】各種數(shù)據(jù)庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介紹
    的頭像 發(fā)表于 01-14 11:25 ?498次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫</b>的安裝

    數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?

    數(shù)據(jù)庫是一種部署在虛擬計算環(huán)境中的數(shù)據(jù)庫,它融合了云計算的彈性和可擴展性,為用戶提供高效、靈活的數(shù)據(jù)庫服務。云數(shù)據(jù)庫主要分為兩大類:關系型數(shù)據(jù)庫
    的頭像 發(fā)表于 01-07 10:22 ?417次閱讀

    時序數(shù)據(jù)庫TDengine 2024年保持高增長,實現(xiàn)收入翻倍

    近日,時序數(shù)據(jù)庫 (Time Series Database) TDengine 正式公布了 2024 年重大成就和發(fā)展成績盤點。在這一年中,TDengine 以持續(xù)創(chuàng)新的技術能力、迅猛增長的市場
    的頭像 發(fā)表于 01-02 13:50 ?498次閱讀
    <b class='flag-5'>時序數(shù)據(jù)庫</b>TDengine 2024年保持高增長,實現(xiàn)收入翻倍

    數(shù)據(jù)庫數(shù)據(jù)恢復—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、Mysql數(shù)據(jù)庫表中無任何數(shù)據(jù)或只有部分
    的頭像 發(fā)表于 12-16 11:05 ?533次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—Mysql<b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復流程

    ClickHouse:強大的數(shù)據(jù)分析引擎

    作者:京東物流 陳昌浩 最近的工作中接觸到CK,一開始還不知道CK是什么,通過查詢才知道CK是ClickHouseClickHouse 是俄羅斯的Yandex于2016年開源的列式存儲數(shù)據(jù)庫
    的頭像 發(fā)表于 12-10 10:23 ?460次閱讀
    <b class='flag-5'>ClickHouse</b>:強大的<b class='flag-5'>數(shù)據(jù)</b>分析引擎

    數(shù)據(jù)庫數(shù)據(jù)恢復—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復案例

    mysql數(shù)據(jù)庫故障: mysql數(shù)據(jù)庫文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫無法進行查詢等操作;2、使用mysqlcheck和myisamchk無法修復數(shù)據(jù)庫
    的頭像 發(fā)表于 12-09 11:05 ?529次閱讀

    使用片DAC61416芯片,如輸出50channel,這么多通道還能同時輸出嗎?

    如果使用片DAC61416芯片,如輸出50channel,這么多通道還能同時輸出嗎?會不會存在輸出時間上的偏差?
    發(fā)表于 11-29 10:46

    數(shù)據(jù)庫數(shù)據(jù)恢復—通過拼接數(shù)據(jù)庫碎片恢復SQLserver數(shù)據(jù)庫

    一個運行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成一個NDF文件,每個NDF幾百GB大小。數(shù)據(jù)庫包含兩個LDF文件。 存儲損壞,數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?616次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>

    有云服務器還需要租用數(shù)據(jù)庫嗎?

    如果你的應用程序需要處理大量的數(shù)據(jù),并且這些數(shù)據(jù)需要高效的查詢和分析能力,那么租用專業(yè)的數(shù)據(jù)庫服務可能是更好的選擇。這些服務通常提供了更高的性能、更好的可擴展性和更強的
    的頭像 發(fā)表于 10-31 10:50 ?308次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復案例

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復數(shù)據(jù)庫
    的頭像 發(fā)表于 09-20 11:46 ?636次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯誤的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    利用NVIDIA RAPIDS加速DolphinDB Shark平臺提升計算性能

    DolphinDB 是一家高性能數(shù)據(jù)庫研發(fā)企業(yè),也是 NVIDIA 初創(chuàng)加速計劃成員,其開發(fā)的產(chǎn)品基于高性能分布式時序數(shù)據(jù)庫,是支持復雜計算和流數(shù)據(jù)
    的頭像 發(fā)表于 09-09 09:57 ?773次閱讀
    利用NVIDIA RAPIDS加速DolphinDB Shark平臺提升計算<b class='flag-5'>性能</b>

    小米試點業(yè)務系統(tǒng)上線OceanBase,數(shù)據(jù)庫性能飛躍新高度

    在科技日新月異的今天,小米集團作為全球領先的智能設備制造商,其業(yè)務的快速發(fā)展對底層技術架構提出了前所未有的挑戰(zhàn)。特別是在數(shù)據(jù)庫領域,面對海量數(shù)據(jù)處理、高并發(fā)訪問以及嚴苛的故障應對需求,傳統(tǒng)數(shù)據(jù)
    的頭像 發(fā)表于 07-03 15:39 ?932次閱讀