主頁 > 知識庫 > 數(shù)據(jù)計算中間件技術綜述

數(shù)據(jù)計算中間件技術綜述

熱門標簽:小程序智能電話機器人 簡單的智能語音電銷機器人 南昌呼叫中心外呼系統(tǒng)哪家好 ai電話電話機器人 湖南保險智能外呼系統(tǒng)產(chǎn)品介紹 泗洪正規(guī)電話機器人找哪家 怎么去開發(fā)一個電銷機器人 怎么申請400熱線電話 河北便宜電銷機器人軟件

傳統(tǒng)企業(yè)大數(shù)據(jù)架構的問題

上圖是大家都很熟悉的基于 Hadoop 體系的開源大數(shù)據(jù)架構圖。在這個架構中,大致可以分成三層。最下一層是數(shù)據(jù)采集,通常會采用 kafka 或者 Flume 將 web 日志通過消息隊列傳送到存儲層或者計算層。對于數(shù)據(jù)存儲,目前 Apache 社區(qū)提供了多種存儲引擎的選擇,除了傳統(tǒng)的 HDFS 文件和 H ,還提供了 Kudu、ORC、Parquet 等列式存儲,大家可以根據(jù)自身的需求特點進行選擇。在這之上的數(shù)據(jù)計算層,選擇就更豐富了。如果你想做實時推薦,可以采用 Storm、Spark Streaming 這樣的流計算引擎對 Kafka 或者 Flume 傳遞上來的數(shù)據(jù)進行實時處理。如果你想進行客戶畫像,可以使用 Mahout 或者 Spark LMlib 里的機器學習算法進行分類。如果你想查看當天的銷售排名,可以使用 H 、Impala 或者 Presto。如果想對某些商品的銷售進行比較復雜的漏斗分析,則使用 HIVE 或者 Spark 可能會更合適。

當然,大家根據(jù)各自的需求,可以疊加上 Redistribution 緩存,ElasticSearch 全文本搜索,或者像 MongoDB、Cassandra 這些產(chǎn)品。所以,大家會發(fā)現(xiàn),其實在大數(shù)據(jù)計算方面,并沒有什么特別成熟的架構,大家所做的大多都是針對一些問題點不斷進行創(chuàng)新、改進和修正,再把幾個產(chǎn)品想辦法整合起來。這是因為做為一個新興的領域,大數(shù)據(jù)計算方面的技術積累還很不夠,還有很多難點沒有攻克,還處在一個不斷成長的階段。而在大數(shù)據(jù)技術開拓創(chuàng)新上,互聯(lián)網(wǎng)企業(yè)是引領潮流的。目前的大量收到追捧的大數(shù)據(jù)技術產(chǎn)品,大多都是由互聯(lián)網(wǎng)企業(yè)。做為大數(shù)據(jù)技術的基石的 Hadoop 的基本思想基于 Google 的 Map/Reduce 和 Google File System,Presto 來自于 Facebook,貢獻了 Impala 和 Flume 的 Cloudera 雖然不算一家互聯(lián)網(wǎng)公司,但是帶有很強的互聯(lián)網(wǎng)基因。國內(nèi)的 BAT 等互聯(lián)網(wǎng)企業(yè)也對大數(shù)據(jù)開源社區(qū)做出了很大貢獻。

但這也帶來了一個問題,那就是這些大數(shù)據(jù)產(chǎn)品即架構都是針對互聯(lián)網(wǎng)企業(yè)的因為需求與場景設計的。雖然這些需求和場景具有一定的普適性,但是在企業(yè)的整體 IT 架構上,傳統(tǒng)企業(yè)與互聯(lián)網(wǎng)企業(yè)有著很大的不同。

首先,傳統(tǒng)企業(yè)和互聯(lián)網(wǎng)企業(yè)在專業(yè)技術人員配備上有很大的不同?;ヂ?lián)網(wǎng)企業(yè)聚集了大量的高水平計算機軟件設計開發(fā)維護人員,這是絕大多數(shù)傳統(tǒng)企業(yè)所不具備的。這里的差別一個是在量。傳統(tǒng)企業(yè)中,一個擁有幾百個技術人員的信息中心已經(jīng)是一個相當大的團隊了;而互聯(lián)網(wǎng)企業(yè)的技術人員往往都有數(shù)千人的規(guī)模,像 BAT 這樣的企業(yè),開發(fā)維護技術人員都達到了上萬人。另一個差別則在質(zhì)上。互聯(lián)網(wǎng)企業(yè)中通常會有一支專門的平臺支撐專家團隊,有能力自行及時修復開源產(chǎn)品中的 BUG,保障系統(tǒng)服務的穩(wěn)定運行。而由于薪資等方面的原因,傳統(tǒng)企業(yè)往往很難招到掌握開源產(chǎn)品核心技術的頂級開發(fā)者。這給開源產(chǎn)品的使用帶來的隱患。一旦開源產(chǎn)品出現(xiàn)的 BUG 等問題,無人可以及時應對,將會給企業(yè)的生產(chǎn)服務造成很大的損失。

其次,傳統(tǒng)企業(yè)的 IT 架構也和互聯(lián)網(wǎng)企業(yè)有很大不同?;ヂ?lián)網(wǎng)企業(yè)的歷史相對較短,而且具有以開源軟件為基礎自行研發(fā)應用的基因,各企業(yè)自己對各種技術細節(jié)業(yè)務邏輯都非常了解,大數(shù)據(jù)系統(tǒng)甚至是和業(yè)務系統(tǒng)緊密聯(lián)系的,不會有太多的集成性的問題。而傳統(tǒng)企業(yè)往往歷史較長,在 IT 建設走過多種技術路線,往往有大量的架構不統(tǒng)一的遺留系統(tǒng)。很多企業(yè)過去曾經(jīng)建設過企業(yè)數(shù)據(jù)倉庫,現(xiàn)在又開始建設大數(shù)據(jù)平臺,這之間又沒有特別嚴格的劃分,不僅造成很多功能的重疊,更是造成了很多的數(shù)據(jù)冗余,很多數(shù)據(jù)會在不同的系統(tǒng)中保留多份拷貝,甚至不少企業(yè)需要頻繁地把同一份數(shù)據(jù)在不同的系統(tǒng)中來回傳輸。這就帶來了很嚴重的集成性問題。

第三,相對于互聯(lián)網(wǎng)企業(yè),大多數(shù)傳統(tǒng)企業(yè)的數(shù)據(jù)量其實并沒有那么大。相比較 Google 每秒超 10 萬次的搜索,支付寶雙十一每秒超過 25 萬筆交易,絕大多數(shù)的傳統(tǒng)企業(yè)的數(shù)據(jù)量真沒那么大,可能還不至于成為不可攻克的難題。對于這樣的數(shù)據(jù)量,可能傳統(tǒng)的技術就可以解決,而不一定非要用到 Hadoop 這樣重的架構。而為了挖掘出這些數(shù)據(jù)中的價值,多源異構的復雜環(huán)境可能是一個更加麻煩的問題。

他山之石可以攻玉

有的時候,在考慮一個問題的解決辦法時,從類似問題的解決辦法中獲得一些借鑒是一個不錯的開始。

其實,在交易類應用領域,也曾出現(xiàn)過類似的情況。企業(yè)中運行這各種各樣的應用系統(tǒng),這些應用由不同的開發(fā)者開發(fā),技術路線、體系架構、遵循的標準都相差甚遠,造成了一個個信息孤島,一些需要共享的信息,不能在系統(tǒng)之間交換,造成很多信息的滯后和數(shù)據(jù)不一致現(xiàn)象。

那么后來這些問題解決了嗎?又是怎么解決的?————有人發(fā)明了中間件。

什么是中間件,并沒有人對它做出一個科學的定義。總體來說,是一個為了解決分布異構問題而提出的一個概念它位于平臺 (硬件和操作系統(tǒng)) 和應用之間,為雙方或者多方提供的通用服務,這些服務具有標準的程序接口和協(xié)議。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)。 解決多源異構并不是中間件出現(xiàn)的唯一原因,但是是它解決的異構重要問題,一般來說,中間件具有以下特點:

1. 滿足大量應用的需要
2. 運行于多種硬件和 OS 平臺
3. 支持分布計算,提供跨網(wǎng)絡、硬件和 OS 平臺的透明性的應用或服務的交互
4. 支持標準的協(xié)議
5. 支持標準的接口

也就是說,中間件的主要作用,就是建立跨平臺的標準化交互接口。按照應用場景的不同,中間件開源分為網(wǎng)絡通信中間件、RPC 中間件、消息中間件、交易中間件、Web 中間件、安全中間件等。這些不同的中間件在實際功能與實現(xiàn)方式上各不相同,在各自的領域中發(fā)揮著不同的作用,但是都滿足以上列出的特點,都具有上述描述的基本功能。

那么,為什么不考慮在數(shù)據(jù)應用領域也采用中間件技術呢?

數(shù)據(jù)計算中間件

為什么提出數(shù)據(jù)計算中間件這個概念?因為在開發(fā)數(shù)據(jù)應用的過程,大家通常都會被以下的問題所困擾。

- 需要跨系統(tǒng)跨平臺操作,從不同的數(shù)據(jù)源的數(shù)據(jù)放在一起計算
- 需求變化頻繁,不斷出現(xiàn)新需求,老需求不斷修改
- 業(yè)務邏輯與數(shù)據(jù)耦合過緊
- 復雜計算實現(xiàn)困難,執(zhí)行性能差

而通過設置異構數(shù)據(jù)計算中間件,就可以很好地解決多源異構環(huán)境下的融合計算問題。當然,僅僅解決異構數(shù)據(jù)的交互訪問還是遠遠不夠的,要解決上面的困難,數(shù)據(jù)計算中間件還需要能夠提供高效的開發(fā)效率,優(yōu)秀的計算性能和方便的代碼管理能力。綜合起來,我們可以從下面幾個方面數(shù)據(jù)計算中間件進行評估。

- 兼容性 (Cross-platform)

這里的兼容性主要是指的跨平臺的數(shù)據(jù)訪問能力。前面我們說到過傳統(tǒng)企業(yè) IT 系統(tǒng)的異大特點就是存在大量異構系統(tǒng),這些異構系統(tǒng)之間的互操作性很差,數(shù)據(jù)計算中間件的首要任務就是打通這個壁壘,起到連通的作用,將不同異構平臺中的數(shù)據(jù)集成到一起。

- 熱部署 (Hot-deploy)

數(shù)據(jù)應用的特點之一就是需求變化很快,我們對數(shù)據(jù)分析的要求是無止境的,總是在探求新的目標,總是希望能夠從數(shù)據(jù)中挖掘出更多的信息。因此,數(shù)據(jù)應用的需求變化是異構持續(xù)的常態(tài)。這就對應用的部署提出了新的要求,如果每次部署新功能模塊時都需要停止服務,勢必對服務的質(zhì)量造成很大的影響。如果應用模塊可以熱插拔,不需要停止整個服務,模塊之間也相互隔離,那么這個應用的運行就會更加平順,服務質(zhì)量也可以得到保障。

- 高性能 (Efficient)

數(shù)據(jù)計算處理的性能對于數(shù)據(jù)計算中間件也非常重要,即使傳統(tǒng)企業(yè)的數(shù)據(jù)量沒有互聯(lián)網(wǎng)企業(yè)那么大,數(shù)據(jù)應用需要處理的數(shù)據(jù)也是具有相當規(guī)模的,高的計算性能是評價數(shù)據(jù)計算中間件的異構重要指標。雖然不存在異構硬性的性能指標,但是在可能的情況下,我們總是希望處理速度越快越好。

- 敏捷性 (Agile)

敏捷性在這里,強調(diào)的是開發(fā)的方面。正因為數(shù)據(jù)應用的需求會持續(xù)不斷變化,因此開發(fā)也會是一個持續(xù)的任務,不會像傳統(tǒng)業(yè)務應用一樣在相當一段時間內(nèi)保持不變。開發(fā)的敏捷性可以保證數(shù)據(jù)應用可以在盡可能短的時間內(nèi)完成新功能的交付使用,在某些特定的場景中,這可能為企業(yè)避免巨大的損失。

- 擴展性 (Scalability)

數(shù)據(jù)計算中間件需要要很好的可擴展性,支持分布式計算,具備了這種能力,數(shù)據(jù)計算中間件才可能在實際的應用環(huán)境從容面對不同數(shù)據(jù)量的場景,并且在數(shù)據(jù)量業(yè)務量不斷增長的時候,仍然保證自身提供的各種數(shù)據(jù)服務持續(xù)可用。

- 集成性 ( dable)

做為一款中間件,可集成性也是必須的。這里的集成包含兩個方面,一個是對第三方軟件的集成,一個是被集成到第三方的軟件中。數(shù)據(jù)應用的場景非常多樣,只有具備很強的集成性,才能在更多的環(huán)境中得到應用。

以上就是我們評估數(shù)據(jù)計算中間件的幾個關鍵考量,可以簡稱為 CHEASE。如果在 CHEASE 對應的六個方面都得到很好的滿足,那這就是一款優(yōu)秀的數(shù)據(jù)計算中間件。

潤乾集算器

數(shù)據(jù)計算中間件是一個全新的概念,目前數(shù)據(jù)計算方面的產(chǎn)品中,與之最接近的是集算器。集算器是北京潤乾信息系統(tǒng)科技有限公司完全自主研發(fā)的一款輕量級大數(shù)據(jù)融合計算平臺,一種針對結構化和半結構化數(shù)據(jù)的計算設計開發(fā)的新型計算引擎。集算器的設計目標,是試圖解決描述計算的效率和實施計算的效率。集算器具有以下一些特點。

1. 為了達到設計目標,潤乾公司首先為集算器設計了一種面向過程計算的腳本編程語言 SPL(Structured Precessing Language),可以方便地描述數(shù)據(jù)的計算過程。集算器采用了新的數(shù)據(jù)和計算模型,提供了豐富的基礎計算方法,特別適合業(yè)務規(guī)則復雜的多步驟運算,讓計算本身變得易于描述,從而提高代碼的開發(fā)效率。

2. 集算器在內(nèi)部的計算實現(xiàn)上,做了大量的優(yōu)化工作,這些算法的優(yōu)化使得在對數(shù)據(jù)集進行排序、匯總、關聯(lián)等計算時,速度得到很大提升,大大提高了計算實施的效率。

3. 集算器內(nèi)置大量數(shù)據(jù)訪問接口,可以輕松連接各種數(shù)據(jù)源并從中獲取數(shù)據(jù)。支持的數(shù)據(jù)源包括但不限于:

- 商用 RDBMS:Oracle、MS SQL Server、DB2、Informix
- 開源 RDBMS:MySQL、PostgreSQL
- 開源 NOSQL:MongoDB、Redis、Cassandra、ElasticSearch
- Hadoop 家族:HDFS、HIVE、H
- 應用軟件:SAP ECC、BW
- 文件:Excel、Json、 、TXT
- 其他:http Restful、Web Services、支持 OLAP4j 的多維數(shù)據(jù)庫、阿里云

4. SPL 為解釋型語言,不需要進行編譯。這使得集算器的任務腳本在集算器內(nèi)部的部署十分方便,可以很方便地實現(xiàn)動態(tài)熱部署。

5. 集算器提供了并行多線程計算和集群分布式計算的能力,而且集群的節(jié)點可以動態(tài)添加,具有十分優(yōu)秀的可擴展能力。

6. 集算器的核心功能由若干個 Java JAR 包實現(xiàn),短小精悍,具有超強的可集成性、靈活性、擴展性、開放性、可定制性,非常易于和 Java 應用進行深度整合。加之對外提供了 JDBC、Restful、Web Services 等標準接口,使之與第三方的應用非常容易進行整合集成。

以上這六個特點,恰恰對應了 CHEASE 的六個方面。雖然潤乾集算器設計之初尚沒有提出數(shù)據(jù)計算中間件的概念,但是整個產(chǎn)品的設計宗旨始終圍繞著 CHEASE,所以在兼容性、熱部署能力、計算性能、敏捷性、可擴展性和集成性幾個方面,相當?shù)镁?,各方面的表現(xiàn)都相當優(yōu)秀。如果你覺得在你的數(shù)據(jù)計算架構中需要一款數(shù)據(jù)計算中間件,那集算器恐怕是目前唯一的選擇。

尚待解決的一些困難

當然,數(shù)據(jù)計算中間件的概念剛剛被提出,集算器也是一款新產(chǎn)品,概念需要不斷驗證完善,產(chǎn)品也肯定會有很多不足之處。目前可見的困難由以下兩點。

- 獲取數(shù)據(jù)的性能

數(shù)據(jù)應用不同于其它的應用,它總是牽扯到大量數(shù)據(jù)的讀取,因此數(shù)據(jù)讀取的性能非常關鍵。數(shù)據(jù)讀取的性能不僅取決于數(shù)據(jù)計算中間件本身,還取決于數(shù)據(jù)源和接口類型。如果通過 JDBC 這樣的標準接口,數(shù)據(jù)訪問使沒有任何問題的,但是讀取速度上是卻很難滿足數(shù)據(jù)應用的性能要求的。對于這個問題,潤乾為集算器提供了多種格式的內(nèi)部文件存儲做為數(shù)據(jù)緩存機制來加速計算,這是是一種很實用的折中方法。同時潤乾也在嘗試開發(fā)具有針對性的高性能接口,用于提高了從外部獲取數(shù)據(jù)的速度。當然數(shù)據(jù)計算中間件涉及的接口極多,要解決好這個問題,是一個很大的挑戰(zhàn)。

- 對機器學習的支持

如今,人人都在談論機器學習,雖然傳統(tǒng)數(shù)據(jù)分析仍然是主流,而且在大多數(shù)領域,機器學習并不成熟,實際應用的效果大多也差強人意。但是不可否認的是機器學習是未來的方向,將會是數(shù)據(jù)應用中不可或缺的重要組成部分。因此,機器學習的功能應該是數(shù)據(jù)計算中間件必須具備的。集算器目前還不具備機器學習的能力,這使它的使用受到了一定的限制。當然,集算器本身在發(fā)展,未來可期。

總結

以上所述是小編給大家介紹的數(shù)據(jù)計算中間件技術綜述 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • js數(shù)值計算時使用parseInt進行數(shù)據(jù)類型轉(zhuǎn)換(jquery)
  • 淺談.Net并行計算之數(shù)據(jù)并行
  • 用asp實現(xiàn)訪問遠程計算機上MDB access數(shù)據(jù)庫文件的方法
  • Access使用查詢--1.2.用選擇查詢進行分組數(shù)據(jù)的計算

標簽:江蘇 景德鎮(zhèn) 淮安 荊門 瀘州 那曲 威海 柳州

巨人網(wǎng)絡通訊聲明:本文標題《數(shù)據(jù)計算中間件技術綜述》,本文關鍵詞  數(shù)據(jù),計算,中間件,技術,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《數(shù)據(jù)計算中間件技術綜述》相關的同類信息!
  • 本頁收集關于數(shù)據(jù)計算中間件技術綜述的相關信息資訊供網(wǎng)民參考!
  • 推薦文章