什麼是串流資料?
串流資料是由數千個資料來源持續產生的資料,通常會同時傳入資料記錄,且大小不大 (約幾 KB)。串流資料包含各式各樣的資料,例如客戶使用您的行動或 Web 應用程式產生的日誌檔、電子商務採購、遊戲中的玩家活動、來自社交網路、金融交易所或地理空間服務的資訊,以及來自連線裝置或資料中心儀器的遙測結果。
這些資料需要依照個別記錄或移動時段,按順序以遞增的方式處理,並用於相互關聯、彙總、篩選和取樣等多種分析。這類分析衍生而來的資訊可讓公司深入了解其業務和客戶活動的許多層面,像是服務使用量 (用於計量/計費)、伺服器活動、網站點擊數,以及裝置、人員和實體商品的地理位置,這樣才能快速因應所發生的各種狀況。例如,企業可持續分析社交媒體串流以追蹤大眾對其品牌和產品的情緒變化,並在需要時即時做出反應。
串流資料的優點
對於大多數的持續產生的全新動態資料情況,串流資料處理非常有幫助。它適用於大部分產業領域及大數據使用案例。公司通常會從簡單的應用程式 (如收集系統日誌) 和基本的處理 (執行最小和最大運算) 開始。然後逐漸讓這些應用程式納入更複雜且近乎即時的處理。應用程式一開始會處理資料串流以產生簡單的報告,然後執行簡單的動作來進行回應,例如當關鍵測量超出特定閾值時發出警示。最終,這些應用程式會執行更複雜的資料分析形式,例如運用機器學習演算法,並從資料擷取更深入的洞見。經過一段時間後,可套用複雜、串流和事件處理演算法來進一步豐富洞見分析,例如衰減時段以找出最新熱門電影。
串流資料的範例
- 運輸車輛、工業設備以及農業機械中的感應器會將資料傳送到串流應用程式。該應用程式會監控效能、預先偵測任何可能的故障,以及自動訂購零件以避免設備停機時間。
- 金融機構即時追蹤股市的變動、計算風險值,以及根據股價波動來自動重新平衡投資組合。
- 不動產網站追蹤消費者行動裝置的資料子集,並根據其地理位置即時建議可參觀的物業。
- 太陽能公司需要維持客戶的電力輸送量,否則要支付罰款。該公司已實作串流資料應用程式來監控現場所有面板並即時排定維修,以大幅降低每個面板低輸送量的期間及相關的罰款。
- 媒體出版商將來自其線上事業的數十億筆點擊流記錄製作成串流,透過使用者的人口統計資訊彙整資料並讓資料更豐富,以及優化網站上的內容放置,來提供使用者最佳的相關性和體驗。
- 線上遊戲公司收集關於玩家和遊戲的互動串流資料,並將這些資料傳送到遊戲平台。接著即時分析這些資料,提供獎勵和動態體驗來吸引玩家。
批次處理和串流處理的比較
在說明串流資料之前,先來看看串流處理和批次處理之間的比較和對比。批次處理可用來運算不同資料集的任意查詢。這通常會使用內含的所有資料來算出結果,以針對大數據集進行更深入的分析。以 MapReduce 為基礎的系統 (如 Amazon EMR) 是支援批次任務的平台範例。相比之下,串流處理需要導入一個資料序列,並用遞增的方式來更新指標、報告和摘要統計資料,以回應每個抵達的資料記錄。這最適用於即時監控和回應功能。
批次處理 | 串流處理 | |
資料範圍 | 查詢或處理資料集中的所有或大部分資料。 | 查詢或處理滾動式時窗內的資料或僅限最新的資料記錄。 |
資料大小 | 大型資料批次。 |
個別記錄或包含幾筆記錄的微型批次。 |
效能 | 延遲從幾分鐘到數小時。 | 需要幾秒或幾毫秒的延遲。 |
分析 | 複雜分析。 | 簡易回應功能、彙總和累積指標。 |
許多組織正透過結合這兩種方式來建立混合模式,以維持即時層和批次層。資料先由串流資料平台 (如 Amazon Kinesis) 處理以擷取即時洞見,然後保留在 S3 這類存放區中,以針對各種批次處理使用案例來進行轉換和載入。
使用串流資料的挑戰
在 AWS 上使用串流資料
Amazon Web Services (AWS) 提供多種選項來使用串流資料。您可以利用 Amazon Kinesis 提供的受管串流資料服務,或在 Amazon EC2 上於雲端部署和管理自己的串流資料解決方案。
Amazon Kinesis 是 AWS 上的串流資料平台,可提供輕鬆載入和分析串流資料的強大服務,還能讓您針對特殊需求來建置自訂的串流資料應用程式。提供三項服務︰Amazon Kinesis Data Firehose、Amazon Kinesis Data Streams 和 Amazon Managed Streaming for Apache Kafka (Amazon MSK)。
此外,您可以在 Amazon EC2 和 Amazon EMR 上執行其他串流資料平台,例如 Apache Flume、Apache Spark Streaming 和 Apache Storm。
Amazon Kinesis Data Streams
Amazon Kinesis Data Streams 可讓您建置自訂的應用程式以處理或分析串流資料,滿足您的特殊需求。它可以每小時持續從成千上萬個來源擷取和存放數 TB 的資料。然後,您可以建立可取用 Amazon Kinesis Data Streams 的資料,以提供即時儀表板、產生提醒、實作動態定價和廣告使用的應用程式。Amazon Kinesis Data Streams 支援您所選擇的串流處理架構,包含 Kinesis Client Library (KCL)、Apache Storm 以及 Apache Spark Streaming。
Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehose 是將串流資料載入 AWS 最簡便的方式。它可以擷取串流資料並將其自動載入 Amazon S3 和 Amazon Redshift,再透過現有的商業智慧工具以及您目前正在使用的儀表板,執行近乎即時的分析。它讓您可以快速實作 ELT 方法,然後快速從串流資料獲得益處。
Amazon Managed Streaming for Apache Kafka (Amazon MSK)
Amazon MSK 是一項全受管服務,可讓您輕鬆建置和執行使用 Apache Kafka 處理串流資料的應用程式。Apache Kafka 是開放原始碼平台,用於建立即時串流資料管道和應用程式。您可透過 Amazon MSK 使用原生 Apache Kafka API 來填入資料湖、串流出入資料庫的變更,並且供應機器學習和分析應用程式。
Amazon EC2 上的其他串流解決方案
您可以在 Amazon EC2 和 Amazon EMR 上安裝自行選擇的串流資料平台,並建立自己的串流儲存層和處理層。透過在 Amazon EC2 和 Amazon EMR 上建立自己的串流資料解決方案,您可以避免基礎架構佈建的衝突,並可存取各種串流儲存和處理架構。串流資料儲存層選項包含 Amazon MSK 和 Apache Flume。串流處理層選項包含 Apache Spark Streaming 和 Apache Storm。
後續步驟
- 尋找有關 Amazon MSK 的更多資訊
- 尋找有關 Amazon Kinesis 的更多資訊
- 了解有關 AWS 大數據服務的資訊
- 參閱 Apache Spark on Amazon EMR 頁面
- 使用 Amazon Kinesis Data Firehose 和 Amazon Redshift,只要按幾下按鍵就可以將串流資料轉換為洞見