什麼是資料流?
資料流是一種資料分發技術,資料生成器將資料記錄寫入有序資料流,資料使用者可以從該資料流以相同的順序讀取資料。這是一個簡單的資料流圖,說明了資料生成器,資料流和資料使用者:
資料流有很多種變化
從表面上看,資料流作為一個概念我看起來很簡單。資料生成器將記錄儲存到資料流中,消費者稍後會讀取這些資料流。但是,表面下有許多細節會影響您的資料流系統的外觀,行為方式以及使用它可以做些什麼。
每個資料流產品都會對用例和處理技術做出一系列假設來支援。這些假設會導致某些設計選擇,這會影響您可以使用它們實現的流處理行為型別。此資料流教程檢查了許多這些設計選擇,並討論了它們作為基於這些設計選擇的產品使用者的後果。
資料流將生產者和消費者分離
資料流將資料生產者和資料消費者彼此分離。當資料生產者簡單地將其資料寫入資料流時,生產者不需要知道讀取資料的消費者。可以獨立於生產者新增和刪除消費者。消費者也可以啟動和停止或暫停和恢復他們的消費,而資料生產者不需要知道它。這種分離簡化了資料生產者和消費者的實施。
資料流作為資料共享機制
資料流是一種非常有用的機制,可以在更大的分散式系統中儲存和共享資料。如前所述,資料生成者只是將資料傳送到資料流系統。生產者不需要了解消費者的任何資訊。消費者可以在不影響生產者的情況下上下,新增和刪除。
像LinkedIn這樣的大公司在內部廣泛使用資料流。優步也在內部使用資料流。許多企業級公司正在內部採用或已採用資料流。許多初創公司也是如此。
持久資料流
資料流可以是持久的,在這種情況下,它有時被稱為日誌或日誌。持久資料流的優點是流中的資料可以在資料流服務關閉後繼續存在,因此不會丟失任何資料記錄。
與僅儲存記憶體中的記錄的資料流服務相比,持久資料流服務通常可以儲存更大量的歷史資料。一些資料流服務甚至可以將歷史資料一直儲存回寫入資料流的第一條記錄。其他人只持有例如數天的歷史資料。
在持久資料流儲存記錄的完整歷史記錄的情況下,消費者可以重放所有這些記錄並基於這些記錄重新建立其內部狀態。如果消費者在其自己的程式碼中發現錯誤,它可以糾正該程式碼並重放資料流以重新建立其內部資料庫。
資料流用例
資料流是一個非常通用的概念,可用於支援許多不同的用例。在本節中,我將介紹一些比較常用的資料流用例。
1.事件驅動架構的資料流
資料流通常用於實現 事件驅動的體系結構。事件由事件生成器作為記錄寫入某些資料流系統,事件消費者可以從中讀取這些事件。
2.智慧城市和物聯網的資料流
資料流還可用於從安裝在智慧城市周圍的感測器,智慧工廠內的感測器或其他物聯網裝置流式傳輸資料。可以定期從裝置中取樣溫度,汙染等級等值,並將其寫入資料流。資料使用者可以在需要時從資料流中讀取樣本。
3.定期取樣資料的資料流
智慧城市中的感測器和物聯網裝置只是資料來源的兩個例子,可以定期取樣並透過資料流提供。但是還有許多其他型別的資料可以定期取樣和流式傳輸。例如,貨幣匯率或股票價格也可以進行抽樣和流式傳輸。輪詢號碼也可以定期取樣和流式傳輸。
4.資料採集的資料流
在民意調查數字的示例中,您可以決定將每個單獨的答案流式傳輸到民意調查,而不是流式傳輸定期抽樣的總計。在某些情況下,總計是由各個資料點(如民意調查)組成的,有時比單獨計算的總數更有意義地流式傳輸各個資料點。這取決於具體的使用案例,以及其他因素,例如單個資料點是匿名的還是包含不應共享的私人個人資訊。
記錄,訊息,事件,樣本等
資料流記錄有時被稱為訊息,事件,樣本,物件和其他術語。使用什麼術語取決於資料流的具體用例,以及生產者和消費者如何處理和響應資料。通常從用例中可以清楚地看出,透過引用記錄有什麼意義。
值得注意的是,用例也會影響給定記錄所代表的含義。並非所有資料記錄都相同。事件與取樣值不同,並且不能始終以相同的方式使用。我將在本(和/或其他)教程的後面更詳細地介紹這一點。
相關文章
- 什麼是 Spring Cloud 資料流?SpringCloud
- 流是什麼
- 什麼是 TCP 流?TCP
- 什麼是大資料?大資料能做什麼?大資料
- 什麼是大資料?大資料開發是做什麼的?大資料
- 什麼是資料運營?資料運營是做什麼的?
- 什麼是流處理
- 什麼是重繪repaint?什麼是迴流reflow?AI
- 什麼是資料蔓延?
- 什麼是大資料?大資料
- 什麼是資料標註,它的用途是什麼?
- 到底什麼是大資料?新手學大資料的路徑是什麼?大資料
- 什麼是資料和資訊
- 什麼是資料質量?
- 什麼是資料轉換?
- 什麼是資料準備?
- Chronicles 是什麼資料庫資料庫
- 什麼是資料倉儲
- 什麼是皇帝資料庫?資料庫
- 什麼是資料倉儲?
- 什麼是資料增強?
- 什麼是資料結構資料結構
- 什麼是大資料安全?大資料
- 資料治理:什麼是MDM?
- 大資料分析是什麼大資料
- 什麼是Cassandra資料庫資料庫
- 資料卷是什麼?資料卷有什麼優勢嗎?
- 什麼是大資料?Python和大資料有什麼聯絡?大資料Python
- javascript函式節流是什麼JavaScript函式
- 熱點資料和冷資料是什麼?
- 什麼是現代資料棧?有什麼特徵?特徵
- 什麼是資料視覺化?視覺化
- 什麼是大資料血緣?大資料
- 什麼是Oracle的資料字典?Oracle
- 什麼是大資料開發?大資料
- 資料採集工具是什麼
- 什麼是資料庫檢視?資料庫
- 什麼是 T+1 資料?