日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

開源流處理框架SreamCQL架構(gòu)的解析

大?。?/span>0.4 MB 人氣: 2017-10-13 需要積分:1
StreamCQL是一個(gè)類SQL的聲明式語言,它用于在流(streams)和可更新關(guān)系(updatable relation)上的可持續(xù)查詢,目的是在流處理平臺(tái)分布式計(jì)算能力之上,通過使用簡易通用的類SQL語言,使得業(yè)務(wù)邏輯的開發(fā)變得統(tǒng)一和簡易。在功能上,StreamCQL彌補(bǔ)了傳統(tǒng)流處理平臺(tái)上一些基本業(yè)務(wù)功能的缺失,除了過濾、轉(zhuǎn)換等基本SQL能力之外, 還引入基于內(nèi)存窗口的計(jì)算、統(tǒng)計(jì)、關(guān)聯(lián)等能力,以及流數(shù)據(jù)的拆分、合并等功能。
  StreamCQL重要概念介紹
  流:流是一組(無窮)元素的集合,流上的每個(gè)元素都屬于同一個(gè)schema;每個(gè)元素都和邏輯時(shí)間有關(guān);即流包含了元組和時(shí)間的雙重屬性。流上的任何一個(gè)元素,都可以用Element的方式來表示,tuple是元組,包含了數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)內(nèi)容,Time就是該數(shù)據(jù)的邏輯時(shí)間。Window:窗口(window)是流處理中解決事件的無邊界(unbounded)及流動(dòng)性的一種重要手段,把事件流在某一時(shí)刻變成靜態(tài)的視圖,以便進(jìn)行類似數(shù)據(jù)庫表的各種查詢操作。在stream上可以定義window,窗口有兩種類型,時(shí)間窗口(time-based)和記錄窗口(row-based)。兩種窗口都支持兩種模式,滑動(dòng)(slide)和跳動(dòng)(tumble)。算子:算子是包含了一系列運(yùn)算關(guān)系的組合,比如聚合算子,就包含了查詢(select),窗口,聚合(aggregate),排序(sort),窗口前過濾(filter before window),窗口之后的過濾(where),聚合之后的過濾(having)等功能,除此之外,還有流拆分算子,流合并算子等。StreamCQL中的算子分為三類:輸入算子、輸出算子、功能算子。
  StreamCQL架構(gòu)介紹StreamCQL總體架構(gòu)如下圖所示:
  開源流處理框架SreamCQL架構(gòu)的解析
  圖1 StreamCQL架構(gòu)圖
  StreamCQL的總體架構(gòu)分為引擎、功能、業(yè)務(wù)接口三層,每隔層次之間分工明確,責(zé)任清晰,可以輕易進(jìn)行功能拓展。
  1. 引擎
  StreamCQL的引擎層,可以適配各種不同的流處理引擎,比如Flink等,目前主要適配Storm。
  引擎層的作用在于完成完成對(duì)各類算子對(duì)底層不同流處理引擎的接口適配、拓?fù)涞臉?gòu)建、提交查看刪除等操作。
  以Storm適配為例,在Storm中,對(duì)外接口分為Spout和Bolt,其中,Spout就對(duì)應(yīng)輸入算子,Bolt對(duì)應(yīng)輸出算子和功能算子;StreamCQL中所有操作是以算子為單位的,各類運(yùn)算都發(fā)生在不同的算子內(nèi)部。算子分為輸入算子、輸出算子和功能算子,在Storm適配層中,就包含輸入算子對(duì)Spout的適配,輸出算子和功能算子對(duì)Bolt的適配,以及emit的適配,topology builder的適配。只要通過幾百行代碼就可以完成對(duì)Storm引擎的適配工作。
  StreamCQL引擎層和Streaming的對(duì)外接口如下圖所示:
  開源流處理框架SreamCQL架構(gòu)的解析
  圖2 StreamCQL底層解耦架構(gòu)
  StreamCQL在Storm自身的IRichSpout,IRichBolt接口基礎(chǔ)上,實(shí)現(xiàn)了StormSpout、StormBolt和StormOutputBolt來屏蔽底層不同引擎帶來的接口變更。
  StreamApapter是一個(gè)適配器,主要作用就是將Streaming算子注入到Spout和Bolt中。
  IInputStreamOperator、IFunctionStreamOperator和IOutputStreamOperator是所有的輸入輸出和功能性算子的接口,同用戶自定義接口一致。
  該架構(gòu)使用依賴注入的原則,實(shí)現(xiàn)了各個(gè)每個(gè)層級(jí)算子之間的解耦。
  2. 功能功能層以Stream和Window為基礎(chǔ),構(gòu)建出了Join,Aggregate等算子。
  Stream即流,該功能構(gòu)建出了整個(gè)流處理平臺(tái)數(shù)據(jù)流的基礎(chǔ)。定義了數(shù)據(jù)流動(dòng)、解析和分發(fā)規(guī)則。
  Window:window是流上一段時(shí)間內(nèi)數(shù)據(jù)的集合。StreamCQL上絕大部分的計(jì)算,都是基于窗口的。
  流和窗口構(gòu)成了整個(gè)流處理平臺(tái)的核心。
  StreamCQL功能層的算子包含Join算子、Aggregate算子、Split算子、Merge算子、Functor算子、filter算子、union算子、輸入算子和輸出算子,模式匹配算子目前暫時(shí)沒有實(shí)現(xiàn)。
  Join算子提供的功能類似關(guān)系型數(shù)據(jù)庫的Join功能。目前StreamCQL支持的Join類型包含Inner Join,Left (outer) Join,Right (outer) Join,F(xiàn)ull (outer) Join ,Cross Join四種類型。目前只支持雙流Join。由于流的特殊性,Join的時(shí)候,兩個(gè)流的數(shù)據(jù)都是在不斷發(fā)生變化的,所以兩個(gè)流任何一個(gè)流的數(shù)據(jù)變化,都會(huì)觸發(fā)Join操作。如果只想讓某個(gè)流觸發(fā)Join,那么就應(yīng)該使用UNIDIRECTION關(guān)鍵字。
  

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

開源流處理框架SreamCQL架構(gòu)的解析下載

相關(guān)電子資料下載

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      五常市| 巴塘县| 芦山县| 红桥区| 萍乡市| 蛟河市| 登封市| 宁河县| 辽阳县| 若羌县| 施甸县| 得荣县| 辉南县| 鄄城县| 永定县| 区。| 五大连池市| 石楼县| 灌云县| 绥江县| 井研县| 凉城县| 罗源县| 永城市| 昭苏县| 尚志市| 诸城市| 宣城市| 大港区| 平果县| 新宁县| 齐河县| 扎鲁特旗| 金溪县| 博乐市| 武功县| 元江| 长丰县| 青海省| 锦屏县| 舒兰市|