串流資料是由數千個資料來源持續產生的資料,通常會同時傳入資料記錄,且大小不大 (約幾 KB)。串流資料包含各式各樣的資料,例如客戶使用您的行動或 Web 應用程式產生的日誌檔、電子商務採購、遊戲中的玩家活動、來自社交網路、金融交易所或地理空間服務的資訊,以及來自連線裝置或資料中心儀器的遙測結果。

這些資料需要依照個別記錄或移動時段,按順序以遞增的方式處理,並用於相互關聯、彙總、篩選和取樣等多種分析。這類分析衍生而來的資訊可讓公司深入了解其業務和客戶活動的許多層面,像是服務使用量 (用於計量/計費)、伺服器活動、網站點擊數,以及裝置、人員和實體商品的地理位置,這樣才能快速因應所發生的各種狀況。例如,企業可持續分析社交媒體串流以追蹤大眾對其品牌和產品的情緒變化,並在需要時即時做出反應。


對於大多數的持續產生的全新動態資料情況,串流資料處理非常有幫助。它適用於大部分產業領域及大數據使用案例。公司通常會從簡單的應用程式 (如收集系統日誌) 和基本的處理 (執行最小和最大運算) 開始。然後逐漸讓這些應用程式納入更複雜且近乎即時的處理。應用程式一開始會處理資料串流以產生簡單的報告,然後執行簡單的動作來進行回應,例如當關鍵測量超出特定閾值時發出警示。最終,這些應用程式會執行更複雜的資料分析形式,例如運用機器學習演算法,並從資料擷取更深入的洞見。經過一段時間後,可套用複雜、串流和事件處理演算法來進一步豐富洞見分析,例如衰減時段以找出最新熱門電影。


  • 運輸車輛、工業設備以及農業機械中的感應器會將資料傳送到串流應用程式。該應用程式會監控效能、預先偵測任何可能的故障,以及自動訂購零件以避免設備停機時間。
  • 金融機構即時追蹤股市的變動、計算風險值,以及根據股價波動來自動重新平衡投資組合。
  • 不動產網站追蹤消費者行動裝置的資料子集,並根據其地理位置即時建議可參觀的物業。
  • 太陽能公司需要維持客戶的電力輸送量,否則要支付罰款。該公司已實作串流資料應用程式來監控現場所有面板並即時排定維修,以大幅降低每個面板低輸送量的期間及相關的罰款。
  • 媒體出版商將來自其線上事業的數十億筆點擊流記錄製作成串流,透過使用者的人口統計資訊彙整資料並讓資料更豐富,以及優化網站上的內容放置,來提供使用者最佳的相關性和體驗。
  • 線上遊戲公司收集關於玩家和遊戲的互動串流資料,並將這些資料傳送到遊戲平台。接著即時分析這些資料,提供獎勵和動態體驗來吸引玩家。

在說明串流資料之前,先來看看串流處理批次處理之間的比較和對比。批次處理可用來運算不同資料集的任意查詢。這通常會使用內含的所有資料來算出結果,以針對大數據集進行更深入的分析。以 MapReduce 為基礎的系統 (如 Amazon EMR) 是支援批次任務的平台範例。相比之下,串流處理需要導入一個資料序列,並用遞增的方式來更新指標、報告和摘要統計資料,以回應每個抵達的資料記錄。這最適用於即時監控和回應功能。

  批次處理 串流處理
資料範圍 查詢或處理資料集中的所有或大部分資料。 查詢或處理滾動式時窗內的資料或僅限最新的資料記錄。
資料大小
大型資料批次。
個別記錄或包含幾筆記錄的微型批次。
效能 延遲從幾分鐘到數小時。 需要幾秒或幾毫秒的延遲。
分析 複雜分析。 簡易回應功能、彙總和累積指標。

許多組織正透過結合這兩種方式來建立混合模式,以維持即時層和批次層。資料先由串流資料平台 (如 Amazon Kinesis) 處理以擷取即時洞見,然後保留在 S3 這類存放區中,以針對各種批次處理使用案例來進行轉換和載入。


串流資料處理需要兩個層:儲存層和處理層。儲存層需要支援記錄排序和極高的一致性,以提供快速、經濟實惠且可重複的大型資料串流讀取和寫入。處理層負責取用來自儲存層的資料、在該資料執行運算,然後通知儲存層刪除不再需要的資料。您還需要在儲存層和處理層之中規劃可擴展性、資料持久性以及容錯能力。因此,許多已推出的平台提供建置串流資料應用程式所需的基礎設施,包含 Amazon Kinesis StreamsAmazon Kinesis FirehoseApache Kafka、Apache Flume、Apache Spark Streaming 和 Apache Storm。


Amazon Web Services (AWS) 提供多種選項來使用串流資料。您可以利用 Amazon Kinesis 提供的受管串流資料服務,或在 Amazon EC2 上於雲端部署和管理自己的串流資料解決方案。

Amazon Kinesis 是 AWS 上的串流資料平台,可提供輕鬆載入和分析串流資料的強大服務,還能讓您針對特殊需求來建置自訂的串流資料應用程式。這個平台提供兩項服務:Amazon Kinesis Firehose 和 Amazon Kinesis Streams。

此外,您可以在 Amazon EC2 和 Amazon EMR 上執行其他串流資料平台,例如 Apache Kafka、Apache Flume、Apache Spark Streaming 和 Apache Storm。 

Amazon Kinesis Streams可讓您建置自訂的應用程式以處理或分析串流資料,滿足您的特殊需求。它可以每小時持續從成千上萬個來源擷取和存放數 TB 的資料。然後,您可以建立可取用 Amazon Kinesis Streams 的資料,以提供即時儀表板、產生提醒、實作動態定價和廣告使用的應用程式。Amazon Kinesis Streams 支援您所選擇的串流處理架構,包含 Kinesis Client Library (KCL)、Apache Storm 以及 Apache Spark Streaming。進一步了解 Amazon Kinesis Streams »

Amazon Kinesis Firehose 是將串流資料載入 AWS 的最簡單方式。它可以擷取串流資料並自動載入 Amazon S3 和 Amazon Redshift,再使用現有的商業智慧工具以及您目前正在使用的儀表板進行接近即時的分析。它讓您可以快速實作 ELT 方法,然後快速從串流資料獲得益處。進一步了解 Amazon Kinesis Firehose »


您可以在 Amazon EC2 和 Amazon EMR 上安裝自行選擇的串流資料平台,並建立自己的串流儲存層和處理層。透過在 Amazon EC2 和 Amazon EMR 上建立自己的串流資料解決方案,您可以避免基礎設施佈建的衝突,並可存取各種串流儲存和處理架構。串流資料儲存層選項包含 Apache KafkaApache Flume。串流處理層選項包含 Apache Spark StreamingApache Storm