六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

極簡的時(shí)序數(shù)據(jù)處理平臺(tái)

極簡的時(shí)序數(shù)據(jù)處理平臺(tái)

時(shí)序數(shù)據(jù)庫(Time Series Database, TSDB)是一個(gè)專門為時(shí)序數(shù)據(jù)優(yōu)化設(shè)計(jì)的數(shù)據(jù)庫,用于以高效的方式存儲(chǔ)和分析時(shí)序數(shù)據(jù)。但是時(shí)序數(shù)據(jù)處理需要的不僅僅是存儲(chǔ)和分析。在典型的時(shí)序數(shù)據(jù)處理平臺(tái)中,TSDB 總是與流處理、緩存、數(shù)據(jù)訂閱和其他工具集成在一起。這使得系統(tǒng)設(shè)計(jì)復(fù)雜且難以維護(hù)。此外,它還需要消耗更多的計(jì)算和存儲(chǔ)資源。

為了降低系統(tǒng)設(shè)計(jì)復(fù)雜度和運(yùn)行成本,TDengine 充分利用時(shí)間序列數(shù)據(jù)的特點(diǎn),構(gòu)建了自己的緩存、流計(jì)算和數(shù)據(jù)訂閱功能。它不僅提供了一種高效的時(shí)間序列數(shù)據(jù)存儲(chǔ)和分析方式,還為時(shí)間序列數(shù)據(jù)處理提供了一種極簡的解決方案(Simplified Solution for Time Series Data),是一個(gè)極簡的時(shí)序數(shù)據(jù)處理平臺(tái)。

流計(jì)算

為了更快地分析業(yè)務(wù)運(yùn)行數(shù)據(jù)或在更短的時(shí)間內(nèi)檢測異常,一個(gè)合格的時(shí)序數(shù)據(jù)處理系統(tǒng)必須在數(shù)據(jù)點(diǎn)到達(dá)系統(tǒng)后立即進(jìn)行實(shí)時(shí)分析計(jì)算。流計(jì)算非常適合時(shí)間序列數(shù)據(jù)的處理。流計(jì)算可以是時(shí)間驅(qū)動(dòng)的,以固定的時(shí)間間隔產(chǎn)生新的計(jì)算結(jié)果(稱為連續(xù)查詢),也可以是事件驅(qū)動(dòng)的,每當(dāng)新數(shù)據(jù)點(diǎn)到達(dá)時(shí)立即產(chǎn)生新的計(jì)算結(jié)果。

大部分 TSDB,包括 TDengine 都為連續(xù)查詢提供了解決方案。連續(xù)查詢特別適用于降采樣、提前預(yù)計(jì)算特定類型的查詢和其他一些情況。但連續(xù)查詢還是有很多限制,例如標(biāo)量函數(shù)中的預(yù)處理和轉(zhuǎn)換、會(huì)話窗口以及其他需要低延遲的情況。因此整個(gè)系統(tǒng)仍然需要事件驅(qū)動(dòng)的流計(jì)算,大家普遍將 Spark、Flink 或其他工具集成到時(shí)間序列數(shù)據(jù)處理系統(tǒng)中,這使得系統(tǒng)設(shè)計(jì)變得復(fù)雜。

在 TDengine 全新的流計(jì)算引擎中,SQL(支持用戶自定義函數(shù))會(huì)被自動(dòng)地轉(zhuǎn)化成流計(jì)算操作的 pipeline。數(shù)據(jù)在寫入時(shí)會(huì)自動(dòng)觸發(fā)配置好的計(jì)算,結(jié)果按需輸出:實(shí)時(shí)、周期或水印(watermark)指定。這使得 TDengine 成為支持時(shí)間驅(qū)動(dòng)和事件驅(qū)動(dòng)流計(jì)算的時(shí)間序列數(shù)據(jù)庫。

TDengine 流計(jì)算在處理高吞吐量事件時(shí)的延遲在毫秒級(jí)別,這在實(shí)時(shí)警報(bào)、數(shù)據(jù)轉(zhuǎn)換、預(yù)處理等方面為用戶提供了很大幫助。使用 TDengine,還可以對多個(gè)數(shù)據(jù)流進(jìn)行實(shí)時(shí)聚合計(jì)算,獲得對業(yè)務(wù)的實(shí)時(shí)洞察,用戶可以方便地進(jìn)行實(shí)時(shí)分析并構(gòu)建實(shí)時(shí)儀表板。此外,TDengine 可以通過指定水印(watermark) 根據(jù)需要自動(dòng)從存儲(chǔ)引擎中檢索數(shù)據(jù)等方法來處理亂序的數(shù)據(jù)。

極簡的時(shí)序數(shù)據(jù)處理平臺(tái)-stream-processing-TDengine Database

所有這些亮眼的功能都非常直觀且易于使用,只需一條簡單的 SQL 命令。有關(guān)更多詳細(xì)信息,請查看流計(jì)算

緩存

在 IoT 或 IIoT 情況下,系統(tǒng)需要快速將最新數(shù)據(jù)返回給應(yīng)用程序。例如,車隊(duì)管理系統(tǒng)總是想知道每輛卡車的當(dāng)前 GPS 位置。對于智能工廠,系統(tǒng)總是需要知道每個(gè)閥門的當(dāng)前狀態(tài)和每個(gè)儀表的當(dāng)前讀數(shù)。

為了解決這個(gè)問題,在大多數(shù)系統(tǒng)設(shè)計(jì)中,當(dāng)一個(gè)數(shù)據(jù)點(diǎn)到達(dá)系統(tǒng)時(shí),它被寫入一個(gè)時(shí)間序列數(shù)據(jù)庫。同時(shí),它也被寫入 Redis。應(yīng)用程序從 Redis 中檢索最新的數(shù)據(jù)點(diǎn),而不是從 TSDB 中獲取。這種設(shè)計(jì)是可行的,但增加了系統(tǒng)的復(fù)雜性和操作成本。

在 TDengine 的設(shè)計(jì)中,每個(gè)節(jié)點(diǎn)都分配了一個(gè)固定大小的內(nèi)存來緩存數(shù)據(jù)點(diǎn)。TDengine 以 FIFO 策略而不是 LRU 策略管理其緩存,因?yàn)閷τ跁r(shí)序數(shù)據(jù)的應(yīng)用而言,雖然老數(shù)據(jù)也可能需要被讀出來進(jìn)行分析,但新數(shù)據(jù)比老數(shù)據(jù)更為重要。TDengine 緩存最新數(shù)據(jù)這個(gè)設(shè)計(jì),提供了在毫秒內(nèi)讀出最新數(shù)據(jù)的能力。有了這個(gè)能力,TDengine 可以通過正確配置用作簡單的緩存系統(tǒng),而無需再部署一個(gè)獨(dú)立的緩存系統(tǒng)。TDengine 提供了一個(gè) SQL 函數(shù) last_row 來獲取最新的數(shù)據(jù)點(diǎn),十分簡單明了。

TDengine 的內(nèi)置緩存簡化了系統(tǒng)架構(gòu),最大限度地降低了運(yùn)營成本。更多詳細(xì)信息,請查看緩存

數(shù)據(jù)訂閱

消息隊(duì)列在許多系統(tǒng)架構(gòu)中起著重要的作用,傳入的數(shù)據(jù)點(diǎn)首先被寫入消息隊(duì)列,然后被系統(tǒng)中的其他組件消耗。

在 TDengine 的設(shè)計(jì)中,傳入的數(shù)據(jù)點(diǎn)總是首先以添加模式寫入預(yù)寫日志(WAL)。在 TDengine 的早期版本中,一旦內(nèi)存中的相應(yīng)數(shù)據(jù)被持久化到數(shù)據(jù)庫中,該 WAL 文件通常會(huì)被刪除。WAL 文件用于在系統(tǒng)崩潰時(shí)恢復(fù)數(shù)據(jù)。

WAL 文件里保存的數(shù)據(jù)是按照數(shù)據(jù)到達(dá)的順序來保存的,為了支持?jǐn)?shù)據(jù)訂閱,TDengine 從 3.0 開始,不會(huì)自動(dòng)刪除 WAL 文件,而是將其保留指定的時(shí)間段,WAL 文件可以成為持久消息隊(duì)列并被其他應(yīng)用程序使用。

在 TDengine 的設(shè)計(jì)中,訂閱的主題可以是數(shù)據(jù)庫、超級(jí)表、一組表或單個(gè)表。實(shí)際上,主題是用 SQL 語句定義的。一旦主題有了新的數(shù)據(jù)點(diǎn),它就會(huì)被推送給消費(fèi)者。如果數(shù)據(jù)庫有多個(gè)虛擬節(jié)點(diǎn)(分片),消費(fèi)者組中的多個(gè)消費(fèi)者可以使用同一個(gè)主題來提高數(shù)據(jù)消費(fèi)的吞吐量。

與流行的 Kafka 相比,TDengine 的數(shù)據(jù)訂閱功能有一個(gè)很大的優(yōu)勢,支持?jǐn)?shù)據(jù)過濾。應(yīng)用程序可以訂閱僅滿足特定過濾條件的數(shù)據(jù)點(diǎn)。如果一個(gè)數(shù)據(jù)點(diǎn)不滿足過濾條件,它根本不會(huì)被傳遞給應(yīng)用程序。此外,應(yīng)用程序可以訂閱一個(gè)特定列或一組列,而非所有列,這樣更靈活、更高效。而且訂閱的 API 與 Kafka 類似,無學(xué)習(xí)成本。

通過使用 TDengine 內(nèi)建的數(shù)據(jù)訂閱功能,時(shí)間序列數(shù)據(jù)處理不再需要 Kafka 或其他消息隊(duì)列工具,從而降低了系統(tǒng)復(fù)雜性和運(yùn)行成本。

極簡的時(shí)序數(shù)據(jù)處理平臺(tái)-data-subscription-TDengine Database

更多詳細(xì)信息,請查看數(shù)據(jù)訂閱開發(fā)者指南。

總結(jié)

極簡的時(shí)序數(shù)據(jù)處理平臺(tái)-classical-data-platform-TDengine Database

在時(shí)序數(shù)據(jù)處理平臺(tái)的通用設(shè)計(jì)中,采集的數(shù)據(jù)往往先寫入消息隊(duì)列,然后通過消費(fèi),寫入數(shù)據(jù)庫(如 HBase、MongoDB 或 MySQL)做持久化存儲(chǔ),同時(shí)往往寫入 Redis 將最新數(shù)據(jù)緩存起來,還將數(shù)據(jù)送入 Spark 或 Flink 等流式計(jì)算工具做實(shí)時(shí)分析,流式計(jì)算的結(jié)果往往也會(huì)寫入數(shù)據(jù)庫做存儲(chǔ)。應(yīng)用需要與 Redis、Database 以及 Spark 這些工具集成。

TDengine 通過內(nèi)置緩存、流處理和數(shù)據(jù)訂閱功能,為時(shí)間序列數(shù)據(jù)處理提供了一個(gè)極簡的解決方案。時(shí)間序列數(shù)據(jù)處理不再需要 Kafka、Redis、Spark、Flink 或其他類似工具。

兩者邏輯結(jié)構(gòu)對比圖如下:

極簡的時(shí)序數(shù)據(jù)處理平臺(tái) - TDengine Database 時(shí)序數(shù)據(jù)庫
極簡的時(shí)序數(shù)據(jù)處理平臺(tái)-tdengine-data-platform-TDengine Database

TDengine 的極簡方案大大降低了系統(tǒng)設(shè)計(jì)的復(fù)雜性和運(yùn)營成本。由于邊緣計(jì)算的資源非常有限,這種設(shè)計(jì)在邊緣端將帶來了巨大的優(yōu)勢。TDengine 不只是一個(gè)時(shí)序數(shù)據(jù)庫(Time-Series Database),還是一個(gè)極簡的時(shí)序數(shù)據(jù)處理平臺(tái)。