最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一文走進(jìn)時(shí)序數(shù)據(jù)庫(kù)性能測(cè)試工具 TSBS

2023-08-10 16:19 作者:KaiwuDB  | 我要投稿

?一、背景

在物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等時(shí)序數(shù)據(jù)場(chǎng)景中,數(shù)據(jù)的高速寫入能力至關(guān)重要,會(huì)對(duì)產(chǎn)品方案的可用性、可靠性和擴(kuò)展性產(chǎn)生影響。

以物聯(lián)網(wǎng)為例,當(dāng)面臨千萬(wàn)甚至上億設(shè)備、平均每個(gè)設(shè)備采集幾十個(gè)到幾百個(gè)指標(biāo)時(shí),每秒生成的數(shù)據(jù)將達(dá)到數(shù)十億至數(shù)百億。能否及時(shí)可靠的插入這種量級(jí)的數(shù)據(jù),是評(píng)價(jià)一個(gè)時(shí)序數(shù)據(jù)庫(kù)的核心要素和第一需求。

因此,對(duì)于時(shí)序數(shù)據(jù)庫(kù)的性能進(jìn)行測(cè)試也就尤為重要,TSBS?作為一款對(duì)時(shí)序數(shù)據(jù)庫(kù)批量加載性能和查詢執(zhí)行性能的開(kāi)源測(cè)試工具,得到了越來(lái)越多的應(yīng)用。

二、TSBS 介紹

Time Series Benchmark Suite (TSBS) 是一個(gè)使用 go 語(yǔ)言編寫的,用于生成時(shí)序數(shù)據(jù)集的基準(zhǔn)測(cè)試工具,可以對(duì)各種時(shí)序數(shù)據(jù)庫(kù)的讀寫性能進(jìn)行基準(zhǔn)測(cè)試。TSBS 具有可擴(kuò)展性, 可以對(duì)各種時(shí)序數(shù)據(jù)場(chǎng)景(例如 devops,IoT 等)進(jìn)行批量寫入性能和查詢執(zhí)行性能基準(zhǔn)測(cè)試。

目前 TSBS 支持 IOT 及 Devops 兩種場(chǎng)景:

  • IoT 場(chǎng)景:模擬物聯(lián)網(wǎng)環(huán)境中的數(shù)據(jù)負(fù)載,這個(gè)用例模擬來(lái)自一個(gè)虛構(gòu)的卡車公司的一組卡車的數(shù)據(jù)流,包括來(lái)自每輛卡車的診斷數(shù)據(jù)和指標(biāo),并引入了相關(guān)的環(huán)境因素,例如 out-of-order 數(shù)據(jù)和批量攝取(對(duì)于離線一段時(shí)間的卡車)。它還跟蹤卡車元數(shù)據(jù),并使用它將度量和診斷作為查詢集的一部分聯(lián)系在一起。

  • Devops 場(chǎng)景:“開(kāi)發(fā)操作”用例,有兩種形式。完整形式用于生成、插入和測(cè)量 9 個(gè)“系統(tǒng)”中的數(shù)據(jù),這些數(shù)據(jù)可以在真實(shí)的devops場(chǎng)景(e.g.、CPU、內(nèi)存、磁盤等)中進(jìn)行監(jiān)控。這 9 個(gè)系統(tǒng)一起在每個(gè)讀取間隔生成 100 個(gè)度量。另一種形式只關(guān)注CPU指標(biāo),以實(shí)現(xiàn)更簡(jiǎn)單、更精簡(jiǎn)的用例。這個(gè)用例每次讀取生成 10 個(gè) CPU 指標(biāo)。除了度量讀數(shù)之外,還為數(shù)據(jù)集中的每個(gè)主機(jī)生成“標(biāo)記”(包括主機(jī)的位置、操作系統(tǒng)等)。

目前支持的數(shù)據(jù)庫(kù):

  • Akumulie

  • Cassandrae

  • ClickHousee

  • CrateDBe

  • InfluxDB

  • MongoDB

  • SiriDBe

  • TimescaleDB

  • VictoriaMetricse


未支持 TSBS 的時(shí)序數(shù)據(jù)庫(kù),可自行適配數(shù)據(jù)庫(kù)類型后開(kāi)展性能測(cè)試工作。


三、TSBS 測(cè)試工具

1. TSBS 測(cè)試工具安裝

(1)使用 go get 對(duì) TSBC 及其相關(guān)應(yīng)用進(jìn)行下載


(2)切換到 cmd 下使用 go install 進(jìn)行部分應(yīng)用的安裝

(3)切換到 cmd 下使用 go install 進(jìn)行剩下的安裝

2. TSBS 測(cè)試工具使用

TSBS 基準(zhǔn)測(cè)試分為 3 個(gè)階段:數(shù)據(jù)生成和查詢語(yǔ)生成、數(shù)據(jù)寫入/插入測(cè)試、查詢測(cè)試。下面 TSBS 測(cè)試工具三個(gè)階段的使用以 IOT 場(chǎng)景和 timescaledb 數(shù)據(jù)庫(kù)為例進(jìn)行介紹。

(1)數(shù)據(jù)生成

通過(guò) TSBS 生成基準(zhǔn)測(cè)試的數(shù)據(jù),將其作為基準(zhǔn)測(cè)試階段的輸入。需要的變量,如下:

  • --use-case:使用場(chǎng)景,包括iot、devops、cpu-only,例如iot;

  • --seed:用于確定性生成的 PRNG 種子。例如:123;

  • --scale:要生成的卡車/設(shè)備數(shù)量。例如:50000;

  • --timestamp-start:數(shù)據(jù)中時(shí)間戳的開(kāi)始時(shí)間。例如:2016-01-01T00:00:00Z;

  • --timestamp-end:數(shù)據(jù)中時(shí)間戳的結(jié)束時(shí)間。例如:2016-01-01T00:10:00Z;

  • --log-interval:每個(gè)設(shè)備的每次讀取之間應(yīng)該間隔多長(zhǎng)時(shí)間,以秒為單位。例如:10s;

  • --format:需要生成的數(shù)據(jù)庫(kù),例如: timescaledb。

可自行設(shè)置變量在自定義目錄下生成數(shù)據(jù)文件,示例:如使用上述變量生成數(shù)據(jù)集(在自定義目錄/tmp/下生成 tsdb-data 數(shù)據(jù)文件)。


上面示例會(huì)生成一個(gè)偽 -CSV 文件,用于將數(shù)據(jù)批量加載到 TimescaleDB 中。每個(gè)數(shù)據(jù)庫(kù)都有自己的格式,用于存儲(chǔ)數(shù)據(jù),使其數(shù)據(jù)庫(kù)對(duì)應(yīng)的加載器最容易寫入數(shù)據(jù)。


(2)查詢生成

需要的變量,如下:

  • 與數(shù)據(jù)生成中的用例、卡車數(shù)量、開(kāi)始時(shí)間相同;

  • --timestamp-end:數(shù)據(jù)生成后一秒的結(jié)束時(shí)間,例如:對(duì)于 2016-01-01T00:10:00Z 使用 2016-01-01T00:10:01Z;

  • --queries:生成的SQL語(yǔ)句的查詢數(shù),例如:1000;

  • --query-type:要生成的SQL語(yǔ)句查詢類型,例如:" specific-sub-table ";

例如:下列為生成?timescaledb?單類型一組查詢的例子,可以通過(guò)改變查詢類型?--query-type?一項(xiàng)來(lái)生成其他查詢語(yǔ)句類型(查詢類型的完整列表見(jiàn)末尾附錄內(nèi)容):

3)數(shù)據(jù)插入/寫入測(cè)試

TSBS 通過(guò)獲取上一步中生成的數(shù)據(jù)并將其用作特定于數(shù)據(jù)庫(kù)的命令行程序的輸入來(lái)測(cè)量插入/寫入性能。tsbs_load 可執(zhí)行文件可以在任何受支持的數(shù)據(jù)庫(kù)中加載數(shù)據(jù)??墒褂妙A(yù)生成的數(shù)據(jù)文件作為輸入。每個(gè)加載程序確實(shí)共享一些公共標(biāo)志——例如,batch-size 批處理大?。ㄒ黄鸩迦氲淖x取數(shù))、worker(并發(fā)插入的客戶端的數(shù)量)、連接詳細(xì)信息(主機(jī)和端口)等。要查找特定數(shù)據(jù)庫(kù)的標(biāo)志,請(qǐng)使用 -help 標(biāo)志(例如,tsbs_load_timescaledb -help)。

例如:

會(huì)在 TimescaleDB 中創(chuàng)建一個(gè)名為 benchmark 的新數(shù)據(jù)庫(kù),存儲(chǔ)數(shù)據(jù)。在加載完整數(shù)據(jù)集時(shí)除最后兩行之外的所有行都包含 CSV 格式的數(shù)據(jù),標(biāo)題中包含列名。這些列名對(duì)應(yīng)于:時(shí)間戳、期間每秒的指標(biāo)、插入總指標(biāo)、每秒總體指標(biāo)、期間每秒行數(shù)、總行數(shù)、每秒總行數(shù)。最后兩行為插入指標(biāo)數(shù)目(和適用的行),時(shí)間和平均寫入速率??梢酝ㄟ^(guò)更改 --workers 的值以控制同時(shí)運(yùn)行的并行 load 的級(jí)別,通過(guò)更改 --partitions 的值改變分區(qū)數(shù)。


(4)查詢測(cè)試

要測(cè)量 TSBS 中的查詢執(zhí)行性能,您首先需要使用上一節(jié)加載數(shù)據(jù)并生成如前所述的查詢。加載數(shù)據(jù)并生成查詢后,只需為正在測(cè)試的數(shù)據(jù)庫(kù)使用相應(yīng)的 tsbs_run_queries_ 二進(jìn)制文件,通過(guò)更改數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)對(duì)應(yīng)自定義目錄下生成的查詢語(yǔ)句類型來(lái)實(shí)現(xiàn)各類型的查詢性能測(cè)試。缺少的條件也可以根據(jù) -help 進(jìn)行查詢。

例如

對(duì)于 timescaledb 數(shù)據(jù)庫(kù)查詢“specific-sub-table”:

可以通過(guò)更改 --workers 的值以控制同時(shí)運(yùn)行的并行查詢的級(jí)別。

四、實(shí)踐

1. 測(cè)試環(huán)境

?

2. 導(dǎo)入性能測(cè)試

測(cè)試使用 TSBS 測(cè)試工具生成 IoT 場(chǎng)景下卡車運(yùn)輸公司的卡車數(shù)據(jù)集(約 9.9G),測(cè)試:TimescaleDB 在 workes=2 下 partitions 分別為 1、50、100、150 下的導(dǎo)入/查詢性能;

workes=1、2、4、8 下 TimescaleDB 的導(dǎo)入/查詢性能。

測(cè)試結(jié)果:

workers=2 下 TimescaleDB 測(cè)試不同 partitions,partitions=50?下具有最優(yōu)導(dǎo)入性能。具體如下圖所示:

在 partitions=50 時(shí)測(cè)試不同 workers 下 TimescaleDB 的導(dǎo)入性能,TimescaleD 導(dǎo)入性能如下所示:

3. 查詢性能測(cè)試

測(cè)試 workers=2,不同 partitions(1, 50, 100, 150)下 TimescaleDB 的查詢性能;

不同 workers(1, 2, 4, 8)下 TimescaleDB 的查詢性能。

(1)查詢語(yǔ)句:

query-specific-sub-table

query-stationary-trucks-avg-velocity:

(2)測(cè)試結(jié)果:

query-stationary-trucks-avg-velocity:


specific-sub-table:

?

五、查詢類型

1. Devops/cpu-only


2.?IoT


一文走進(jìn)時(shí)序數(shù)據(jù)庫(kù)性能測(cè)試工具 TSBS的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宜黄县| 九台市| 乌拉特中旗| 耿马| 府谷县| 上高县| 阿瓦提县| 集安市| 通化市| 潍坊市| 称多县| 锡林浩特市| 麟游县| 永善县| 甘肃省| 乌恰县| 拜城县| 文登市| 永年县| 海原县| 平陆县| 北安市| 会东县| 大安市| 玛纳斯县| 西平县| 东平县| 綦江县| 阿鲁科尔沁旗| 清新县| 大宁县| 新津县| 昌图县| 平安县| 保山市| 永安市| 阳泉市| 无锡市| 常州市| 贡嘎县| 宁蒗|