什麼是串流資料?

資料串流是指產生和處理的資料流是連續的、恆定的,使用串流處理技術可以即時管理、儲存、分析和處理資料流,資料串流也可稱為事件串流處理串流資料(歸功於 Netflix,我們大多數人都很熟悉了)。

想要更好地理解串流資料,最好從串流概念本身入手。串流傳輸是指沒有起點或終點的不間斷資料串流,無需下載即可使用這種持續不斷的資料串流。它類似於河水的流動,有許多小溪、支流和水體以不同的速度和強度流動著,匯入一條大河,從您的位置來看並沒有明確的起點或終點。

資料串流範例

同樣地,資料串流源自多種格式和容量強度的一系列來源,這些來源可以是應用程式、聯網裝置、伺服器日誌檔、各種線上活動、基於位置的資料等等,而所有這些來源都可以即時收集和形成單一主要來源,以便用於即時分析和提供資訊。

串流資料的一個案例是共乘搭車應用程式。如果您在 Uber 或 Lyft 上進行預訂,您將與一名司機即時配對,該應用程式將能告訴您司機距離您多遠,並會根據即時交通資料來計算需要多長時間抵達目的地。串流資料的其他案例還包括即時股票交易和零售庫存管理。

串流資料軟體
嘗試 TIBCO Spotfire - 免費試用
借助 TIBCO Spotfire(市場上最完整的分析解決方案),可以輕鬆地從數據中發現新見解。

串流資料的工作原理

資料處理並不是一個新概念,在早期,舊式基礎設施的構建比較容易,因為其資料產生自較少的來源,所以尚能用一種在資料和來源結構方面都兼顧個體性和統一性的方式來建立整個結構。

然而,現在資料有無數來源,可以是任何東西,包括硬體感應器、伺服器、個人裝置、應用程式和網頁瀏覽器等等,因此無法規範或強制執行某種資料結構,也無法控制產生資料的強度和頻率。

為了能夠處理現代資料串流,應用程式必須能夠按順序、一次分析和處理一個資料封包。產生的每個資料封包都需要附有來源和時間戳記,以幫助應用程式處理資料串流。

用於處理資料串流的應用程式需要兩個主要功能:儲存和處理。在儲存方面,它必須能夠按順序、以一致的方式記錄海量資料串流。在處理方面,軟體則應該能夠與儲存系統互動、使用儲存的資料、分析儲存的資料、對資料執行所需的運算。

構建資料串流有幾個考慮因素和挑戰。如今,組織使用一系列平台和工具來幫助公司構建其串流資料基礎架構,資料串流對大數據而言不可或缺,是即時分析、資料整合、資料擷取的必要基礎。

傳統批次處理與即時串流有何不同

與早期的傳統批次處理方法相比,現在的即時串流是完全不同的概念。在舊式的批次處理方法中,資料為分批收集,然後根據需要對其進行處理、儲存或分析。而在串流資料中,資料的輸入流是連續不斷的,並且會即時予以處理,無需等待分批抵達的資料。

今天的資料是以源源不絕的方式流動,並以各種數量和格式出現,來自雲端、本地甚至混合雲等多種位置。在現今情況下,傳統的資料處理方法基本上已經過時了。今天組織使用的即時資料串流可能更新頻率為毫秒等級,這為企業提供廣泛的方法來改變其工作方式。

串流資料的好處

以下說明如何應用串流資料來幫助現實世界的工作情況。

增強示警能力

串流資料最直接、最明顯的好處是它能夠幫助串流分析,當事件、異常或趨勢開始發生時,能夠提供即時反饋。警報並不是串流媒體的獨特能力,但接收警報的人可以立即採取回應措施,而這一簡單事實使其成為一項重要功能。之所以可以做到這點,是因為與批次處理不同,它在技術上沒有延遲。以下是警報發揮作用的一些案例:

  • 在網路安全案例中,串流資料可在調查過程中用於標記異常行為。有大量網路安全環境正在選擇機器學習來幫助識別網路中可能發生的潛在可疑行為,其中警報視覺化和機器學習輸出,就是讓廣泛的網路分析人員能夠偵測威脅的最佳方式。透過這種方式,企業可以將其安全網擴展到更廣泛的人群,而不僅僅是安全專家和開發人員。
  • 零售業也可從警報中受益匪淺。每個商店都有不同的優先事項,資訊技術團隊應該優先處理可用自訂程式碼解決的優先事項。串流資料可用於偵測庫存過低或客戶興趣異常高等情況,當分析工具被觸發時,它可向非技術人員而非技術人員發送警報,這使得在最重要的地方,例如工廠,能夠迅速做出積極的回應。

同時對歷史資料和資料串流進行分析

在許多情況下,歷史資料與即時資料分析應該一起使用,以便為組織提供更全面的業務視圖。金融機構的風險評估是詮釋這一點的最佳使用案例,這些流程將整個交易圈納入考量,從已執行的過去記錄,到涉及變更、轉移或結案的現在,全都需要分析。

將交易事件與其背景脈絡一起考量,意味著來自某事件的交易資料將更能幫助組織瞭解適用於更廣泛投資組合的模式。在這種情況下,同時從歷史和即時資料分析中收集的資訊,可能嚴重影響著未來事件將會成功或蒙受巨大損失,效果天差地別。

建立完整記錄的好處

在日常生活、商業或其他幾乎所有方面,物聯網 (IoT) 都是大家前進的方向,並且已被許多組織使用。但是,這裡有一個大問題,那就是串流資料會產生多個相同記錄,從而導致資訊重複。追蹤資料來源雖然很重要,但會導致相同的資訊被重複多次,由於有數千個來源點,這很快就會變成重大困擾,並導致大量資料冗餘。為了使物聯網成為更可行的選擇,可以先將所有重複的資訊放在一個查詢表中,再將資料串流連接到查詢表,以協助建立完整的記錄,但不會出現重複問題。

我們可以在石油鑽井平台上看到此解決方案的一個案例。平台中包含製造商名稱和位置的重複資訊,將這兩個細節放在一個查詢表中,並用一個鍵值(例如「manu_id」)將其與資料串流連接起來,即可節省大量的資料空間。此外,此鍵值也可用於判斷其位置是否會影響其他各方面,例如磨損、性能、額外維護要求等等。透過使用查詢表,可以大大減少不具生產力的時間。

無法在其他地方找到的見解

目前,以串流媒體技術為中心的關注和發展遠勝從前,這是由技術進步所推動的,而串流資料分析能從中察覺巨大商業價值,又進一步推動其發展。正在尋找下一個競爭優勢的企業將轉向串流資料,以獲取他們無法從現有分析方法中產生的洞察力。此技術最明顯有益的一些應用領域包括:

  • 位置資料的利用
  • 詐騙偵測
  • 即時股票交易
  • 行銷、銷售和業務分析
  • 監控和分析客戶或使用者活動
  • 監控和報告內部 IT 系統
  • 輔助日誌監控
  • 安全資訊和事件管理 (SIEM)
  • 跨多個通路的零售和倉庫庫存
  • 加強共乘搭車配對
  • 結合資料以用於機器學習和人工智慧分析
  • 開闢預測分析的新途徑

構建資料串流應用程式的挑戰

與大多數技術系統一樣,資料串流也伴隨著許多挑戰。以下是與構建資料串流應用程式相關的一些困難:

工作環境的可擴充性

在系統發生故障的情況下,來自每個裝置的日誌資料可以從每秒幾 KB 的傳送速率上升到每秒幾 MB,而在彙整之後,傳送速率甚至可以擴充到每秒幾 GB。隨著這些應用程式的擴充以及產生的原始資料量不斷增加,在容量、資源和所需伺服器方面也勢必需要立即擴充。想要設計能在串流資料工作環境中擴充的無縫應用程式,是一項非常艱鉅的工作,需要考慮同時執行的許多不同處理程序。

順序很重要

確定資料串流的資料順序不是一個小問題,資料串流的資料順序是應用程式如何利用它的關鍵。如果開發人員希望解決機器人聊天應用程式的問題,則對話順序對於找出可能出錯的地方就很重要。此外,彙總日誌審查中的每一行都需要按順序排列,其問題通常是由於資料封包產生的順序與資料封包到達目的點的順序不一致所造成,時間戳記以及產生資料的裝置時鐘也可能存在著差異。

保持一致性和耐用性

處理串流資料最困難的問題之一是一致性和存取性。產生的資料通常散佈於世界各地的多個資料中心,可能當它在一個資料中心被存取時,卻已經在另一個資料中心被使用而變成冗餘。在雲端上處理資料串流時,資料的耐用性也是開發人員面臨的一個持續挑戰。

容錯移轉和資料保證

在分散式系統上處理串流資料時,考慮容錯移轉和資料保證是很重要的。當您的資料來自多個來源和位置、並有各種格式和不同數量時,組織系統就需要加以調整,以防止因為單點故障而引起全體中斷。這些系統應該能夠以持久的方式來儲存大量資料串流,但是確保這一點並非易事。

持續資料串流的任何中斷也會拖累系統。如果系統無法儲存中斷的資訊,也無能力趕上處理進度,那麼整個系統就會背負沉重的延遲資料負擔。

串流資料資源
免費電子書:報告、預測型分析,還是兩者混合,哪種類型的分析方案最適合您?
哪種分析法最適合您?尋找適合您業務需求的最佳解決方案。

串流資料的未來

對於軟體即服務、行動應用程式、網際應用程式的使用,以及廣泛組織所使用的資料科學和進階分析技術,已經並將繼續快速增長和引起大眾興趣。幾乎每家大中型公司都有某種形式的串流資料專案,這些專案不是正在進行中,就是正在籌備中。所有這一切都是為了期望保持領先地位,並用於分析客戶旅程、資料點選流、和其他幾個可產生有用報告的使用案例。

曾經有一段時間,串流資料集中在組織內的一小部分人身上,主要是大數據工程師和資料科學家。這些專業人員使用極其複雜的技能來合併處理 Spark、Flink、MapReduce 和 Scala 等串流,並與業務分析師和商業情報專業人士合作,主要致力於對關聯式資料庫執行 SQL 查詢。

隨著我們步入新年度,這種情況有望改變。隨著越來越多的企業依賴串流媒體資源,業務使用者將希望以互動式儀表板和臨時分析的形式,來搭配使用串流資料與其他資料集,就像軟體開發團隊所做的那樣,這將使組織中各階層的所有人都更容易存取資料。