1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Moonbox數(shù)據(jù)虛擬化即服務(wù)(DVtaaS)平臺(tái)解決方案

        聯(lián)合創(chuàng)作 · 2023-09-19 01:53

        Moonbox是一個(gè)DVtaaS(Data Virtualization as a Service)平臺(tái)解決方案。

        Moonbox基于數(shù)據(jù)虛擬化設(shè)計(jì)思想,致力于提供批量計(jì)算服務(wù)解決方案。Moonbox負(fù)責(zé)屏蔽底層數(shù)據(jù)源的物理和使用細(xì)節(jié),為用戶(hù)帶來(lái)虛擬數(shù)據(jù)庫(kù)般使用體驗(yàn),用戶(hù)只需通過(guò)統(tǒng)一SQL語(yǔ)言,即可透明實(shí)現(xiàn)跨異構(gòu)數(shù)據(jù)系統(tǒng)混算和寫(xiě)出。此外Moonbox還提供數(shù)據(jù)服務(wù)、數(shù)據(jù)管理、數(shù)據(jù)工具、數(shù)據(jù)開(kāi)發(fā)等基礎(chǔ)支持,可支撐更加敏捷和靈活的數(shù)據(jù)應(yīng)用架構(gòu)和邏輯數(shù)倉(cāng)實(shí)踐。

        Philosophy

        隨著大數(shù)據(jù)技術(shù)在企業(yè)應(yīng)用日益廣泛,以及越來(lái)越多數(shù)據(jù)系統(tǒng)的出現(xiàn)解決各種不同的場(chǎng)景問(wèn)題,基于全景數(shù)據(jù)的快速查詢(xún)計(jì)算成為了迫切的需求和挑戰(zhàn)。目前的主流方式是建立以Hadoop為核心的數(shù)據(jù)倉(cāng)庫(kù)/數(shù)據(jù)湖,某種程度上解決了異構(gòu)數(shù)據(jù)系統(tǒng)及數(shù)據(jù)分散的問(wèn)題,但依然有數(shù)據(jù)歸集帶來(lái)的維護(hù)成本和時(shí)效損失問(wèn)題。另外數(shù)據(jù)開(kāi)發(fā)人員也面臨著業(yè)務(wù)頻繁變更和結(jié)果快速交付的問(wèn)題。在這樣的挑戰(zhàn)下,計(jì)算服務(wù)化、數(shù)據(jù)虛擬化提供了很好的解決思路。Moonbox正是基于大數(shù)據(jù)場(chǎng)景的數(shù)據(jù)虛擬化,計(jì)算服務(wù)化的一種實(shí)踐,設(shè)計(jì)思想主要體現(xiàn)在以下幾個(gè)方面:

        • 計(jì)算服務(wù)化

          Moonbox提供多種查詢(xún)接口以及定時(shí)任務(wù),將計(jì)算資源變成一種服務(wù),終端用戶(hù)可以自助注冊(cè)數(shù)據(jù)源編寫(xiě)SQL實(shí)現(xiàn)需求,只需要關(guān)心業(yè)務(wù)邏輯,而不用關(guān)心作業(yè)如何提交運(yùn)行的。

        • 數(shù)據(jù)虛擬化

          Moonbox提供虛擬表到物理表之間的映射,終端用戶(hù)無(wú)需關(guān)心數(shù)據(jù)的物理存放位置和底層數(shù)據(jù)源的特性即可操作數(shù)據(jù),體驗(yàn)類(lèi)似操作一個(gè)虛擬數(shù)據(jù)庫(kù)。

        • 統(tǒng)一入口

          • 統(tǒng)一查詢(xún)語(yǔ)言

            Moonbox對(duì)用戶(hù)提供統(tǒng)一的SQL語(yǔ)法標(biāo)準(zhǔn),屏蔽異構(gòu)數(shù)據(jù)系統(tǒng)查詢(xún)語(yǔ)言的差異,用戶(hù)只需編寫(xiě)SQL即可查詢(xún)各種數(shù)據(jù)系統(tǒng),也可使用SQL進(jìn)行跨異構(gòu)數(shù)據(jù)系統(tǒng)混算,降低多數(shù)據(jù)系統(tǒng)的學(xué)習(xí)成本。

          • 統(tǒng)一元數(shù)據(jù)服務(wù)

            Moonbox能夠?qū)佣喾N數(shù)據(jù)系統(tǒng),可以拿到各個(gè)數(shù)據(jù)系統(tǒng)數(shù)據(jù)表的schema信息,Moonbox并不存儲(chǔ)schema信息,每次都是實(shí)時(shí)從數(shù)據(jù)源獲取,所以不存在元數(shù)據(jù)變更不及時(shí),需要同步更新等問(wèn)題。Moonbox對(duì)外提供統(tǒng)一的元數(shù)據(jù)服務(wù)接口,用戶(hù)無(wú)需為了獲取各種數(shù)據(jù)源的元數(shù)據(jù)而調(diào)用多種接口。

          • 統(tǒng)一權(quán)限控制

            每種數(shù)據(jù)源都有各自特有的安全機(jī)制,用戶(hù)在使用這些數(shù)據(jù)系統(tǒng)的時(shí)候就需要多付出一定的學(xué)習(xí)成本。Moonbox在邏輯層提供了統(tǒng)一的安全訪問(wèn)機(jī)制,在接入時(shí),提供認(rèn)證登錄功能;在查詢(xún)時(shí),通過(guò)攔截分析查詢(xún)SQL,實(shí)現(xiàn)列級(jí)別的數(shù)據(jù)權(quán)限控制。如果查詢(xún)統(tǒng)一從Moonbox接口進(jìn)入,那么Moonbox就為各種數(shù)據(jù)源加上了一把安全鎖,用戶(hù)無(wú)需再學(xué)習(xí)各種數(shù)據(jù)源特有的安全機(jī)制。

        Architecture

        Architecture

        ? Moonbox總體上由四部分組成,分別是客戶(hù)端、接入層、Grid以及存儲(chǔ)計(jì)算層。

        • 客戶(hù)端

          客戶(hù)端有如下幾種:

          • rest api

            以restful api的方式提供batch作業(yè)提交、查詢(xún)作業(yè)執(zhí)行狀態(tài)、取消作業(yè)服務(wù)。

          • jdbc

            提供jdbc驅(qū)動(dòng),可以使用jdbc編程訪問(wèn), 使用戶(hù)擁有數(shù)據(jù)庫(kù)般的使用體驗(yàn)。

          • odbc

            提供odbc支持,用戶(hù)可以使用sas連接moonbox進(jìn)行數(shù)據(jù)分析。

          • cli

            命令行工具,基于jline實(shí)現(xiàn)。通過(guò)cli可以完成DDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language)以及Query操作。

          • zeppelin

            提供zeppelin moonbox interpreter,可以使用zeppelin快速進(jìn)行原型驗(yàn)證和SQL開(kāi)發(fā)。

          • davinci

            通過(guò)jdbc支持ABD Stack(敏捷大數(shù)據(jù)技術(shù)棧)中數(shù)據(jù)可視化平臺(tái)davinci的接入,進(jìn)行數(shù)據(jù)查詢(xún)并展示。

        • 接入層

          接入層包括http server、tcp server和thrift server,實(shí)現(xiàn)客戶(hù)端接入,并進(jìn)行用戶(hù)登錄認(rèn)證。

        • 分布式服務(wù)層

          Grid是Moonbox分布式服務(wù)層。Grid使用master-slave集群工作模式,支持master主備切換。Grid有Master、Worker、App三種角色:

          • Master負(fù)責(zé)接收所有的用戶(hù)請(qǐng)求,根據(jù)請(qǐng)求模式(adhoc/batch)將請(qǐng)求調(diào)度到合適的App上。
          • Worker向Master注冊(cè),負(fù)責(zé)該節(jié)點(diǎn)上App的啟動(dòng)和停止,每個(gè)Worker節(jié)點(diǎn)可以啟動(dòng)多個(gè)不同種類(lèi)的App。
          • App也會(huì)向Master注冊(cè),App是真正處理計(jì)算的角色,可以是一個(gè)Spark App, 也可以是其他自定義的App。
        • 計(jì)算/存儲(chǔ)層

          Moonbox默認(rèn)使用Spark作為計(jì)算引擎,將一個(gè)常駐的Spark作業(yè)稱(chēng)之為一個(gè)App, 支持standalone和yarn運(yùn)行模式。Spark App處理用戶(hù)發(fā)過(guò)來(lái)的請(qǐng)求,包括用戶(hù)體系管理操作、權(quán)限管理操作、SQL解析、下推優(yōu)化、執(zhí)行引擎選擇等,并提交真正的計(jì)算任務(wù)。當(dāng)計(jì)算邏輯可以完全下推到數(shù)據(jù)源計(jì)算時(shí),Moonbox將計(jì)算任務(wù)直接mapping成數(shù)據(jù)源的查詢(xún)語(yǔ)言進(jìn)行下推計(jì)算,以減小啟動(dòng)分布式作業(yè)的開(kāi)銷(xiāo)。數(shù)據(jù)源除了可以是hdfs這種純存儲(chǔ)系統(tǒng),mysql、elasticsearch這種帶計(jì)算能力的存儲(chǔ)系統(tǒng),還可以是presto等計(jì)算引擎,Moonbox將他們統(tǒng)一視為數(shù)據(jù)源。

        Feature

        • 用戶(hù)體系

          Moonbox建立了一套完整的用戶(hù)體系,引入了Organization的概念,用于劃分用戶(hù)空間。系統(tǒng)管理員ROOT賬號(hào)可以創(chuàng)建多個(gè)Organization,并在Organization中指定該Organization的管理者(SA),可以是一個(gè)或者多個(gè)。SA負(fù)責(zé)創(chuàng)建管理普通用戶(hù)。Moonbox將普通用戶(hù)的能力抽象出六大屬性,分別是是否可以執(zhí)行Account管理語(yǔ)句,是否可以執(zhí)行DDL語(yǔ)句,是否可以執(zhí)行DCL語(yǔ)句, 是否擁有可以授權(quán)其他用戶(hù)執(zhí)行Account類(lèi)語(yǔ)句的能力,是否擁有可以授權(quán)其他用戶(hù)執(zhí)行DDL語(yǔ)句的能力,是否擁有可以授權(quán)其他用戶(hù)執(zhí)行DCL語(yǔ)句的能力。通過(guò)屬性的自由組合,可以構(gòu)建出滿(mǎn)足多種角色,多種需求的用戶(hù)體系模型,并可借此實(shí)現(xiàn)多租戶(hù)。

        • 擴(kuò)展SQL

          Moonbox將查詢(xún)語(yǔ)言統(tǒng)一為Spark SQL,使用Spark SQL語(yǔ)法進(jìn)行查詢(xún)操作,同時(shí)擴(kuò)展了一套DDL、DCL語(yǔ)句。包括對(duì)用戶(hù)的創(chuàng)建刪除和授權(quán),數(shù)據(jù)表或者數(shù)據(jù)列的訪問(wèn)授權(quán),掛載卸載物理數(shù)據(jù)源或者數(shù)據(jù)表,創(chuàng)建刪除邏輯數(shù)據(jù)庫(kù),創(chuàng)建刪除udf/udaf,創(chuàng)建刪除定時(shí)任務(wù)等。

        • 優(yōu)化策略

          Moonbox基于Spark進(jìn)行混算,Spark SQL是支持多數(shù)據(jù)源的,但是Spark SQL在從數(shù)據(jù)源中進(jìn)行數(shù)據(jù)拉取的時(shí)候只進(jìn)行了project和filter算子的下推,并沒(méi)有考慮數(shù)據(jù)源的算力特性,比如elasticsearch對(duì)于聚合操作是很友好的,如果聚合操作能下推到elasticsearch中進(jìn)行計(jì)算會(huì)比將數(shù)據(jù)全部拉回Spark計(jì)算快的多,比如limit算子如果下推到數(shù)據(jù)源計(jì)算,能大大減少返回的數(shù)據(jù)量,節(jié)省拉取數(shù)據(jù)和計(jì)算的時(shí)間。Moonbox對(duì)Spark Optimizer優(yōu)化后的LogicalPlan作進(jìn)一步的優(yōu)化,根據(jù)規(guī)則拆分出可以進(jìn)行下推的子樹(shù),將子樹(shù)mapping成數(shù)據(jù)源查詢(xún)語(yǔ)言,將下推結(jié)果拉回Spark參與進(jìn)一步的計(jì)算。如果LogicalPlan可以整體下推計(jì)算,那么Moonbox將不采用Spark進(jìn)行計(jì)算,直接使用數(shù)據(jù)源客戶(hù)端運(yùn)行LogicalPlan mapping出來(lái)的查詢(xún)語(yǔ)句,以減少啟動(dòng)分布式作業(yè)的開(kāi)銷(xiāo),并節(jié)省分布式計(jì)算資源。

        • 列權(quán)限控制

          數(shù)據(jù)安全越來(lái)越受到企業(yè)的重視,我們希望在方便快捷提供計(jì)算服務(wù)和數(shù)據(jù)服務(wù)的同時(shí),還希望實(shí)現(xiàn)數(shù)據(jù)的安全。Moonbox定義了DCL語(yǔ)句來(lái)實(shí)現(xiàn)數(shù)據(jù)列級(jí)別權(quán)限控制。Moonbox管理員通過(guò)DCL語(yǔ)句將數(shù)據(jù)表或者數(shù)據(jù)列授權(quán)給用戶(hù),Moonbox會(huì)將用戶(hù)和表以及列的權(quán)限關(guān)系保存到catalog中。當(dāng)用戶(hù)在使用SQL查詢(xún)時(shí)會(huì)被攔截,分析出SQL被解析后的LogicalPlan中是否引用了未被授權(quán)的表或者列,如果有就報(bào)錯(cuò)返回給用戶(hù)。

        • 多種形式的UDF/UDAF

          Moonbox除了支持以jar包的形式創(chuàng)建UDF/UDAF外,還支持以源代碼的形式創(chuàng)建,包括Java語(yǔ)言和Scala語(yǔ)言,這給UDF開(kāi)發(fā)驗(yàn)證帶來(lái)了便捷性。

        • 定時(shí)任務(wù)

          Moonbox提供了定時(shí)作業(yè)的功能,用戶(hù)使用DDL語(yǔ)句定義定時(shí)任務(wù),以crontab表達(dá)式的形式定義調(diào)度策略,后臺(tái)內(nèi)嵌quartz進(jìn)行任務(wù)定時(shí)調(diào)度。

        Document

        Please refer to Moonbox用戶(hù)手冊(cè). ?

        Latest Release

        Please download the latest RELEASE

        Help

        License

        Moonbox is under the Apache 2.0 license. See the LICENSE file for details.

        瀏覽 20
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            中国老太婆一级A片免费 | 男生操女生视频免费看 | 国产九色av刺激露脸对白 | 亚洲少妇性爱 | 刚到房间门口就热吻扔衣服 | 日日撸天天撸夜夜撸 | 人妻无码日韩 | 天天视频国产 | 亚洲日韩电影网 | 欧美日韩大黄片 |