原創(chuàng)|行業(yè)資訊|編輯:陳俊吉|2016-10-12 14:04:41.000|閱讀 707 次
概述:流計算是新的數(shù)據(jù)聲場場景所不可或缺的一種新計算模式,比如無處不在的移動設備、位置服務和遍布各處的傳感器。人們需要可伸縮的計算平臺和并行架構(gòu)來處理生成的海量流數(shù)據(jù)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
了解 ,它是 IBM 大數(shù)據(jù)平臺的一部分。 解決了針對能夠?qū)崟r處理生成的海量流數(shù)據(jù)的平臺和架構(gòu)的一種迫切需求。了解該產(chǎn)品的設計目標,它適用于哪些時機,其工作原理,以及它如何為 InfoSphere BigInsights 提供補充來執(zhí)行高度復雜的分析。
來自多個來源的信息正在以難以置信的速度增長。互聯(lián)網(wǎng)用戶數(shù)量在 2015 年已經(jīng)達到 22.7 億。每一天,Twitter 都會生成超過 12 TB 的 tweet,F(xiàn)acebook 生成超過 25 TB 日志數(shù)據(jù),紐約證券交易所采集 1 TB 交易信息。每天會創(chuàng)建大約 300 億個射頻識別 (RFID) 標記。此外,每年銷售的數(shù)億臺 GPS 設備,目前正在使用的超過 3000 萬個連網(wǎng)的傳感器(而且每年在以高于 30% 的速度增長),都在產(chǎn)生數(shù)據(jù)。這些數(shù)據(jù)量預計在未來 10 年中每 2 年就會翻一番。
一家公司在一年時間內(nèi)可生成高達數(shù) PB 的信息:網(wǎng)頁、博客、單擊流、搜索索引、社交媒體論壇、即時消息、文本消息、電子郵件、文檔、用戶人口統(tǒng)計數(shù)據(jù)、來自主動和被動系統(tǒng)的傳感器數(shù)據(jù),等等。許多人估計,這些數(shù)據(jù)中高達 80% 都是半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。公司一直在尋求更加敏捷地經(jīng)營業(yè)務,以更加創(chuàng)新的方式執(zhí)行數(shù)據(jù)分析和決策流程。而且他們認識到,這些流程中損失的時間可能導致錯失業(yè)務機會。挑戰(zhàn)的核心是,公司掌握輕松地分析和理解互聯(lián)網(wǎng)級信息的能力,就像他們現(xiàn)在可分析和理解較少量結(jié)構(gòu)化信息一樣。
IBM 正在幫助公司應對大數(shù)據(jù)挑戰(zhàn),為他們提供工具來集成和管理海量、高速產(chǎn)生的數(shù)據(jù),應用原生格式的分析,可視化可用數(shù)據(jù)以進行專門分析,等等。本文將介紹 InfoSphere Streams,該技術(shù)支持您同時分析許多數(shù)據(jù)類型并實時執(zhí)行復雜計算。您將了解 InfoSphere Streams 的工作原理,它的用途,以及如何結(jié)合使用它與另一個用于的 IBM 產(chǎn)品(IBM InfoSphere BigInsights)來執(zhí)行高度復雜的分析。
理解 InfoSphere BigInsights 將會使您能夠更全面地理解 InfoSphere Streams 的用途和價值。
BigInsights 是一個分析平臺,可幫助公司將復雜的互聯(lián)網(wǎng)級信息集轉(zhuǎn)換為洞察。它包含一個套裝的 Apache Hadoop 發(fā)行版(具有高度簡化的安裝流程)和用于應用程序開發(fā)、數(shù)據(jù)移動和集群管理的關(guān)聯(lián)工具。得益于簡單性和可伸縮性,Hadoop(MapReduce 框架的一種開源實現(xiàn))在行業(yè)和學術(shù)界獲得的巨大的成功。除了 Hadoop 之外,BigInsights 中的其他開源技術(shù)(除 Jaql 外的所有技術(shù)都屬于 Apache Software Foundation 項目)包括:
此外,BigInsights 發(fā)行版還包含以下 IBM 獨有的技術(shù):
是一個綜合性的信息集成平臺,包含數(shù)據(jù)倉庫和分析、信息集成、主數(shù)據(jù)管理、生命周期管理,以及數(shù)據(jù)安全和隱私。該平臺改進了應用程序開發(fā)流程,所以組織可以加快價值實現(xiàn)速度,減少集成成本,并提高信息質(zhì)量。
一般來講,BigInsights 的設計并不是為了取代一種傳統(tǒng)的關(guān)系數(shù)據(jù)庫管理系統(tǒng) (DBMS) 或傳統(tǒng)的數(shù)據(jù)倉庫。具體來講,它沒有針對對表列數(shù)據(jù)結(jié)構(gòu)的交互式查詢、在線分析處理 (OLAP) 或在線事務處理 (OLTP) 應用程序而優(yōu)化。但是,作為 IBM 大數(shù)據(jù)平臺的組成部分,BigInsights 提供了與該平臺的其他組件(包括數(shù)據(jù)倉庫、數(shù)據(jù)集成和治理引擎)和第三方數(shù)據(jù)分析工具的潛在集成點。在本文后面將會看到,它還可與 InfoSphere Streams 集成。
流計算是新的數(shù)據(jù)聲場場景所不可或缺的一種新計算模式,比如無處不在的移動設備、位置服務和遍布各處的傳感器。人們需要可伸縮的計算平臺和并行架構(gòu)來處理生成的海量流數(shù)據(jù)。
BigInsights 技術(shù)不足以支持實時流處理任務,因為它們主要面向?qū)o態(tài)數(shù)據(jù)的批處理的支持。在處理靜態(tài)數(shù)據(jù)的過程中,列出所有已連網(wǎng)的用戶這樣的查詢會得到單一的結(jié)果集。借助對流數(shù)據(jù)的實時處理,您可執(zhí)行一種持續(xù)查詢,比如列出在過去 10 分鐘內(nèi)連網(wǎng)的所有用戶。此查詢將返回持續(xù)更新的結(jié)果。在靜態(tài)數(shù)據(jù)領域中,用戶猶如在干草堆中撈針;在流數(shù)據(jù)領域中,用戶可輕松地找到這顆針,因為干草已被吹走。
InfoSphere Streams 平臺支持流數(shù)據(jù)的實時處理,支持不斷更新持續(xù)查詢的結(jié)果,可在仍在移動的數(shù)據(jù)流中檢測洞察。
InfoSphere Streams 旨在從一個幾分鐘到幾小時的窗口中的移動信息(數(shù)據(jù)流)中揭示有意義的模式。該平臺能夠獲取低延遲洞察,并為注重時效的應用程序(比如欺詐檢測或網(wǎng)絡管理)獲取更好的成果,從而提供業(yè)務價值。InfoSphere Streams 還可合并多個流,使您能夠從多個流中獲取新洞察,如圖 3 所示。
InfoSphere Streams 的主要設計目的是:
InfoSphere Streams 提供了一種編程模型和 IDE 來定義數(shù)據(jù)來源,還提供了已融合到處理執(zhí)行單元中的稱為運算符的軟件分析模塊。它還提供了基礎架構(gòu)來支持從這些組件合成可擴展的流處理應用程序。主要平臺組件包括:
SPL,InfoSphere Streams 的編程語言,是一種分布式數(shù)據(jù)流合成語言。它是一種類似 C++ 或 Java™ 的可擴展且全功能的語言,支持用戶定義的數(shù)據(jù)類型。您可以使用 SPL 或原生語言(C++ 或 Java)編寫自定義函數(shù)。也可以使用 C++ 或 Java 編寫用戶定義的運算符。
InfoSphere Streams 持續(xù)應用程序會描述一個導向圖,該圖由各個互聯(lián)且處理多個數(shù)據(jù)流的運算符組成。數(shù)據(jù)流可來自系統(tǒng)外部,或者在應用程序內(nèi)部生成。SPL 程序的基本構(gòu)建塊包括:
圖 4 演示了 SPL 程序的 InfoSphere Streams 運行時視圖:
一個運算符表示一個可重用的流轉(zhuǎn)換器,將一些輸入流轉(zhuǎn)換為輸出流。在 SPL 程序中,運算符調(diào)用可實現(xiàn)預算法的特定用途,使用分配的特定的輸入和輸出流,以及在本地指定的參數(shù)和邏輯。每次運算符調(diào)用都會對輸入和輸出流命名。各種內(nèi)置的 InfoSphere Streams 運算符提供了許多強大的功能:
Source
:讀取流格式的輸入數(shù)據(jù)。Sink
:將輸出流的數(shù)據(jù)寫入外部存儲或系統(tǒng)中。Functor
:過濾、轉(zhuǎn)換和對輸入流的數(shù)據(jù)執(zhí)行各種功能。Sort
:對定義的鍵上的流數(shù)據(jù)排序。Split
:將輸入流數(shù)據(jù)拆分為多個輸出流。Join
:合并定義的鍵上的輸入流數(shù)據(jù)。Aggregate
:聚合定義的鍵上的流數(shù)據(jù)。Barrier
:組合和匹配流數(shù)據(jù)。Delay
:演示一個流數(shù)據(jù)流。Punctor
:識別應一起處理的數(shù)據(jù)分組。一個流連接到一個運算符的位置稱為端口。許多運算符(例如 Functor
)有一個輸入端口和一個輸出端口,但運算符也可以沒有輸入端口(比如 Source
)和沒有輸出端口(比如 Sink
),或者擁有多個輸入或輸出端口(比如 Split
和 Join
)。清單 1 給出了 Sink
的一個 SPL 示例,它有一個輸入端口并將輸出元組寫入到一個磁盤文件中。
Sink
示例() as Sink = FileSink(StreamIn) { param file : "/tmp/people.dat"; format : csv; flush : 20u; }
在 清單 1 中,file
是一個強制性參數(shù),提供了輸出文件的路徑。flush
參數(shù)用于清除給定數(shù)量的元組后的輸出。format
參數(shù)指定了輸出文件的格式。
組合運算符是一個運算符集合。它表示對原始(非組合)運算符或組合(嵌套)運算符的一個子圖的一種封裝。它類似于過程語言中的宏。
一個應用程序由一個沒有輸入或輸出端口的主要組合運算符表示。數(shù)據(jù)可流入和流出,但不會流到一個圖表內(nèi)的流上,而且流可導出到在同一個實例中運行的其他應用程序和從這些應用程序?qū)搿G鍐?2 中的代碼給出了主要組合運算符的框架。
composite Main { graph stream ... { } stream ... { } ... }
作為一個示例,我們來看一個簡單的流應用程序 WordCount,它統(tǒng)計一個文件中的行數(shù)和字數(shù)。該程序由以下流圖組成:
Source
預算法調(diào)用,讀取一個文件并將各行發(fā)送給數(shù)據(jù)流。Functor
運算符調(diào)用,統(tǒng)計行數(shù)和每個數(shù)據(jù)行的字數(shù),將統(tǒng)計數(shù)據(jù)發(fā)送給它的輸出流。Counter
運算符調(diào)用,聚合文件中所有行的統(tǒng)計數(shù)據(jù)并打印在末尾。在介紹 WordCount 的主要組合運算符之前,我將定義一些幫助器。我將為一行的統(tǒng)計數(shù)據(jù)使用 LineStat
類型。此外,我需要構(gòu)建一個 countWords(rstring line)
函數(shù)來統(tǒng)計一行中的字數(shù),需要使用一個 addM(mutable LineStat x, LineStat y)
函數(shù)來添加兩個 LineStat
值并存儲結(jié)果。清單 3 定義了這些幫助器。
type LineStat = tuple<int32 lines, int32 words>; int32 countWords(rstring line) { return size(tokenize(line, " \t", false)); } void addM(mutable LineStat x, LineStat y) { x.lines += y.lines; x.words += y.words; }
現(xiàn)在可以定義主要組合運算符了,如清單 4 所示。
composite WordCount { graph stream<rstring line> Data = FileSource() { param file : getSubmissionTimeValue("file"); format : line; } stream<LineStat> OneLine = Functor(Data) { output OneLine : lines = 1, words = countWords(line); } () as Counter = Custom(OneLine) { logic state : mutable LineStat sum = { lines = 0, words = 0 }; onTuple OneLine : addM(sum, OneLine); onPunct OneLine : if (currentPunct() == Sys.FinalMarker) println(sum); } }
InfoSphere Streams 提供了一個敏捷開發(fā)環(huán)境,該環(huán)境由 Eclipse IDE、Streams Live Graph 視圖和一個流調(diào)試器組成。該平臺還包含用于加速和簡化特定功能或行業(yè)的解決方案開發(fā)的工具包:
Filter
、Sort
、Functor
、Join
、Punctor
和 Aggregate
FileSource
、FileSink
、DirectoryScan
和 Export
Custom Split
、DeDuplicate
、Throttle
、Union
、Delay
、ThreadedSplit
、Barrier
和 DynamicFilter
HTTP
、FTP
、HTTPS
、FTPS
和 RSS
等運算符。此外,您可定義您自己的工具包,提供可重用的運算符和函數(shù)集,并創(chuàng)建跨領域和特定于領域的加速器。它們可包含原始和組合運算符,也可同時使用原生和 SPL 函數(shù)。
不斷從系統(tǒng)中生成大量寶貴數(shù)據(jù)的公司正面臨為以下兩個重要用途而分析數(shù)據(jù)的問題困擾:及時感知和響應當前事件,根據(jù)歷史知識進行預測,從而指導響應。這一情形產(chǎn)生了無縫運行移動數(shù)據(jù)(當前數(shù)據(jù))和靜止數(shù)據(jù)(歷史數(shù)據(jù))分析、處理海量、多樣性、高速產(chǎn)生的數(shù)據(jù)的需求。IBM 的移動數(shù)據(jù) (InfoSphere Streams) 與靜止數(shù)據(jù) (BigInsights) 平臺的集成解決了 3 個主要應用場景的需求:
IBM 大數(shù)據(jù)平臺的移動數(shù)據(jù)和靜止數(shù)據(jù)部分可通過 3 種主要的組件類型來集成:
Source
和 Sink
適配器可用于與 BigInsights 交換數(shù)據(jù)。幫助公司管理、分析和利用大數(shù)據(jù)是 IBM 大數(shù)據(jù)平臺的主要關(guān)注領域。本文介紹了 InfoSphere Streams,它是 IBM 用來存儲和分析移動數(shù)據(jù)(流數(shù)據(jù))的軟件平臺。本文還概述了如何集成 InfoSphere Streams 與 BigInsights,它們是 IBM 用來存儲和分析靜止數(shù)據(jù)的軟件平臺,以便充實實現(xiàn)更復雜分析的能力。許多公司認識到,充分利用大數(shù)據(jù)是提供獨特的業(yè)務價值和優(yōu)勢的一個重要的信息管理手段。如果您已準備好使用 InfoSphere streams,請參見 參考資料,獲取免費的培訓材料和軟件。
詳情請咨詢!
客服熱線:023-66090381
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn