官术网_书友最值得收藏!

1.1 流處理欠佳的后果

誰需要和流數據打交道呢?首先映入腦海的是從事傳感器測量和金融交易的工作人員。對于他們來說,流處理非常有用。但是流數據來源非常廣泛,兩個常見的例子是:網站獲得的能夠反映用戶行為的點擊流數據,以及私有數據中心的機器日志。事實上,流數據來源無處不在,但是從連續事件中獲得數據并不意味著可以在批量計算中使用這些數據。如今,處理大規模流數據的新技術正在改變這一狀況。

如果說處理大規模流數據是一個歷史性難題,我們為什么還要不厭其煩地嘗試打造更好的流處理系統呢?在介紹支持流處理的新架構及新技術之前,我們先來談談不能很好地處理流數據會有什么后果。

1.1.1 零售業和市場營銷

在現代零售業中,網站點擊量就代表了銷量。網站獲得的點擊數據可能是大量、連續、不均勻的。用以往的技術很難處理好如此規模的數據。僅是構建批量系統處理這些數據流注1:在本書中,“數據流”是指由連續數據組成的流;“流數據”是指數據流中的數據。</br>——譯者注就很有挑戰性:結果很可能是需要一個龐大且復雜的系統。并且,傳統的做法還會帶來數據丟失、延遲、錯誤的聚合結果等問題。這樣的結果怎能對商業領域有所幫助呢?

假設你正在向首席執行官匯報上一季度的銷售數據,你肯定不想事后因為使用了不準確的數據而不得不向首席執行官更正匯報結果。如果不能良好地處理點擊數據,你很可能對網站點擊量進行不準確的計算,這將導致廣告投放報價和業績數字不準確。

航空旅客服務業面臨同樣的挑戰:航空公司需要快速、準確地處理從各種渠道獲得的大量數據。例如,當為一名旅客辦理登機手續時,需要對該旅客的機票預訂數據進行核對,還需要核對行李處理信息、航班狀態信息和賬單信息。如果沒有強大的技術來支持流處理,這種規模的數據是很難不出錯的。近幾年,美國四大航空公司中有三家都出現了大面積的服務中斷,這幾次故障都可以歸咎于大規模實時數據處理失敗。

當然,很多相關問題(如怎樣避免重復預訂酒店或演唱會門票),一般都能夠通過有效的數據庫操作來解決,但是這種操作相當費錢,也費精力。尤其當數據量增加時,成本會飆升,并且在某些情況下,數據庫的反應速度會變得特別慢。由于缺乏靈活性,開發速度受到影響,項目在龐大又復雜或者不斷發生變化的系統中進展緩慢。想要在大型系統中處理流數據,并且在保持一致性的同時有效地控制成本,難度非常大。

幸運的是,現代的流處理器經常可以用新的方式解決這些問題,這使得實時處理大規模數據的成本更低。流處理還激發了新的嘗試,比如構建一個系統,該系統能夠基于顧客當下購買的商品實時給出相關的建議,看看他們是否還需要買一些別的商品。這不代表流處理器替代了數據庫(遠遠不能替代),而是說在數據庫處理不好時,流處理器提供了更好的解決方案。這樣做也使數據庫得以解脫,不用再參與對當前業務狀態的實時分析。第2章在介紹流處理架構時將對這一轉變做更深入的講解。

1.1.2 物聯網

物聯網是流數據被普遍應用的領域。在物聯網中,低延遲的數據傳輸和處理,以及準確的數據分析通常很關鍵。各類儀器中的傳感器頻繁地獲得測量數據,并將它們以流的形式傳輸至數據中心。在數據中心內,實時或者接近實時的應用程序將更新顯示板,運行機器學習模型,發布警告,并就許多不同的服務項目提供反饋。

交通運輸業也體現了流處理的重要性。舉例來說,先進的列車系統依靠的是傳感器測量數據,這些數據從軌道傳至列車,再從列車傳至沿途的傳感器;與此同時,報告也被發送回控制中心。測量數據包括列車的速度和位置,以及軌道周邊的狀況。如果流數據沒有被正確處理,調整意見和警告就不能相應產生,從而也就不能通過對危險狀況做出反應來避免事故發生。

另一個例子是“智能”汽車,或稱聯網汽車,它們通過移動網絡將數據傳輸回制造商。在有些國家(北歐國家、法國和英國,美國則剛開始),聯網汽車甚至可以將信息傳給保險公司;如果是賽車,信息還可以通過射頻鏈路傳送至維修站進行分析。此外,一些智能手機應用程序還支持數百萬司機共享實時路況信息。

圖1-1:許多情況都需要考慮數據的時效性,包括使用物聯網數據的交通運輸業。供數百萬司機共享的實時路況信息依靠的是對流數據及時地進行合理和準確的分析(圖片來源:?2016 弗里德曼)

物聯網對公用事業也有影響。相關公司已經開始安裝智能計量表,以替換每個月需要人工讀數的舊表。智能計量表可以定期將用電量反饋給公司(例如每15分鐘一次)。有些公司正在嘗試每30秒就進行一次測量。使用智能計量表的這一轉變帶來了大量的流數據,同時也獲得了大量的潛在收益。其中一個好處就是通過機器學習模型來檢測設備故障或者竊電等使用異常。如果不能對流數據進行高吞吐、低延遲和準確的處理,這些新的目標都無法實現。

如果流處理做得不好,其他物聯網項目也會遭殃。大型設備,比如風力渦輪機、生產設備和鉆井泵,都依賴對傳感器測量數據的分析來獲得故障警告。如果不能及時地處理好這些設備的流數據,將可能付出高昂的代價,甚至導致災難性后果。

1.1.3 電信業

電信業是一個特殊的例子,它廣泛地應用了基于各種目的而產生的跨地域的事件流數據。如果電信公司不能很好地處理流數據,就不能在某個移動通信基站出現流量高峰前預先將流量分配給其他的基站,也不能在斷電時快速做出反應。通過處理流數據來進行異常檢測,如檢測通話中斷或者設備故障,對于電信業來說至關重要。

1.1.4 銀行和金融業

因為流處理做得不好而給銀行以及金融業帶來的潛在問題是極其顯著的。從事零售業務的銀行不希望客戶交易被延遲或者因為錯誤統計而造成賬戶余額出錯。曾有一個說法叫作“銀行家工作時間”,指的就是銀行需要在下午早早關門進行結算,這樣才能保證第二天營業之前算出準確的賬。這種批量作業的營業模式早已消失。如今,交易和報表都必須快速且準確地生成;有些新興的銀行甚至提供實時的推送通知,以及隨時隨地訪問手機銀行的服務。在全球化經濟中,能夠提供24小時服務變得越來越重要。

那么,如果缺少能夠靈敏地實時檢測出用戶行為異常的應用程序,會對金融機構帶來什么后果呢?信用卡欺詐檢測需要及時的監控和反饋。對異常登錄的檢測能發現釣魚式攻擊,從而避免巨大的損失。

在許多情況下,人們希望用低延遲或者實時的流處理來獲得數據的高時效性,前提是流處理本身是準確且高效的。

主站蜘蛛池模板: 高邮市| 山东| 瓮安县| 肥城市| 霸州市| 连平县| 宜川县| 凤台县| 郯城县| 贺兰县| 新田县| 金乡县| 东乌| 精河县| 嘉义市| 霸州市| 泰州市| 大厂| 鹤庆县| 长治市| 东山县| 会昌县| 洪泽县| 平利县| 高清| 陆良县| 灵璧县| 遂川县| 迭部县| 滨州市| 虎林市| 洛南县| 唐海县| 兴安盟| 安乡县| 宜阳县| 聂拉木县| 股票| 宜君县| 双鸭山市| 南澳县|