<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

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

          Moonbox是一個DVtaaS(Data Virtualization as a Service)平臺解決方案。

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

          Philosophy

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

          • 計算服務(wù)化

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

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

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

          • 統(tǒng)一入口

            • 統(tǒng)一查詢語言

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

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

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

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

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

          Architecture

          Architecture

          ? Moonbox總體上由四部分組成,分別是客戶端、接入層、Grid以及存儲計算層。

          • 客戶端

            客戶端有如下幾種:

            • rest api

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

            • jdbc

              提供jdbc驅(qū)動,可以使用jdbc編程訪問, 使用戶擁有數(shù)據(jù)庫般的使用體驗。

            • odbc

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

            • cli

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

            • zeppelin

              提供zeppelin moonbox interpreter,可以使用zeppelin快速進行原型驗證和SQL開發(fā)。

            • davinci

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

          • 接入層

            接入層包括http server、tcp server和thrift server,實現(xiàn)客戶端接入,并進行用戶登錄認證。

          • 分布式服務(wù)層

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

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

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

          Feature

          • 用戶體系

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

          • 擴展SQL

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

          • 優(yōu)化策略

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

          • 列權(quán)限控制

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

          • 多種形式的UDF/UDAF

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

          • 定時任務(wù)

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

          Document

          Please refer to Moonbox用戶手冊. ?

          Latest Release

          Please download the latest RELEASE

          Help

          License

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

          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月丁香涩涩婷婷 | 色五月天网站 | 操逼网址视频 | 欧美一区 | 中文天堂视频在线 |