Moonbox v0.3beta 发布:Grid 全新重构,更快更解耦
百度智能云 云生态狂欢季 热门云产品1折起>>>
导读:数据虚拟化思想一直以来都是敏捷大数据团队十分关注的一个点,Moonbox则以此为基础而设计,致力于提供批量计算服务解决方案。 近日,Moonbox惊喜发布0.3beta版(回顾v0.2请戳这里:#Moonbox# 计算服务平台简介),阅读全文,了解Moonbox,跟小编一起看0.3版本的神奇之处在哪里吧~
- Project:https://github.com/edp963/moonbox
- Release:https://github.com/edp963/moonbox/releases/tag/0.3.0-beta
- Documentation:https://edp963.github.io/moonbox/
一、Moonbox定位
在了解Moonbox新版本之前,我们先来回忆一下Moonbox的定位。
Moonbox是一个DVtaaS(Data Virtualization as a Service)平台解决方案。它基于数据虚拟化设计思想,致力于提供批量计算服务解决方案。Moonbox负责屏蔽底层数据源的物理和使用细节,为用户带来虚拟数据库般使用体验,用户只需通过统一SQL语言,即可透明实现跨异构数据系统混算和写出。此外Moonbox还提供数据服务、数据管理、数据工具、数据开发等基础支持,可支撑更加敏捷和灵活的数据应用架构和逻辑数仓实践。
二、Moonbox功能
数据虚拟化思想是Moonbox很重要的一个设计原则,在此基础上,Moonbox实现了多种功能。下面我们具体看一下Moonbox都有哪些功能:
多租户
Moonbox建立了一套完整的用户体系,引入了Organization的概念,用于划分用户空间。系统管理员ROOT账号可以创建多个Organization,并在Organization中指定该Organization的管理者(SA)。SA可以是一个或者多个,SA负责创建管理普通用户。
Moonbox将普通用户的能力抽象出六大属性,分别是是否可以执行Account管理语句,是否可以执行DDL语句,是否可以执行DCL语句, 是否拥有可以授权其他用户执行Account类语句的能力,是否拥有可以授权其他用户执行DDL语句的能力,是否拥有可以授权其他用户执行DCL语句的能力。通过属性的自由组合,可以构建出满足多种角色,多种需求的用户体系模型,并借此实现多租户。
扩展SQL
Moonbox将查询语言统一为Spark SQL,底层使用Spark进行计算,同时扩展了一套DDL、DCL语句。包括对用户的创建删除和授权,数据表或者数据列的访问授权,挂载卸载物理数据源或者数据表,创建删除逻辑数据库,创建删除UDF/UDAF,创建删除定时任务等。
优化策略
Moonbox基于Spark进行混算,Spark SQL是支持多数据源的,但是Spark SQL在从数据源中进行数据拉取的时候只进行了project和filter算子的下推,并没有考虑数据源的算力特性。
比如Elasticsearch对于聚合操作是很友好的,如果聚合操作能下推到Elasticsearch中进行计算会比将数据全部拉回Spark计算快的多。
再比如limit算子如果下推到数据源计算,能大大减少返回的数据量,节省拉取数据和计算的时间。
Moonbox对Spark Optimizer优化后的LogicalPlan作进一步的优化,根据规则拆分出可以进行下推的子树,将子树mapping成数据源查询语言,将下推结果拉回Spark参与进一步的计算。
另外,如果LogicalPlan可以整体下推计算,那么Moonbox将不采用Spark进行计算,而是直接使用数据源客户端运行LogicalPlan mapping出来的查询语句,以减少启动分布式作业的开销,并节省分布式计算资源。
列权限控制
Moonbox定义了DCL语句来实现数据列级别权限控制。Moonbox管理员通过DCL语句将数据表或者数据列授权给用户,Moonbox会将用户和表以及列的权限关系保存到catalog中。当用户在使用SQL查询时会被拦截,分析出SQL被解析后的LogicalPlan中是否引用了未被授权的表或者列,如果有就报错返回给用户。
多种形式的UDF/UDAF
Moonbox除了支持以jar包的形式创建UDF/UDAF外,还支持以源代码的形式创建,包括Java语言和Scala语言,这给UDF开发验证带来了便捷性。
定时任务
Moonbox提供了定时任务的功能,用户使用DDL语句定义定时任务,以crontab表达式的形式定义调度策略,后台内嵌quartz进行任务定时调度。
多种客户端
Moonbox支持以命令行工具, JDBC, Rest, ODBC等方式进行访问。
多种数据源支持
Moonbox支持多种数据源,包括MySQL, Oracle, SQLServer, Clickhouse, Elasticsearch, MongoDB, Cassandra, HDFS, Hive, Kudu等,且支持自定义扩展。
两种任务模式
Moonbox支持Batch和Interactive两种任务模式。Batch模式支持Spark Yarn Cluster Mode,Interactive模式支持Spark Local和Spark Yarn Client Mode。
集群工作模式
Moonbox以master-slave群集方式工作,支持master主备切换。
三、Moonbox_v0.3 VS v0.2
Moonbox_v0.3在v0.2的基础上做出了几点重要改变,具体包括:
去掉redis依赖
v0.2是将查询结果写入Redis然后客户端从Redis中获取结果;v0.3直接将结果返回给客户端。
改变数据传输方式
v0.2客户端以rest方式获取结果数据;v0.3使用netty加protobuf的方式获取结果数据。
Moonbox Master选主策略重构
将Moonbox Master选主由akka singleton改为使用zk进行选主和信息持久化。
Moonbox Worker与Spark解耦
在v0.2中,直接在Worker中运行Spark APP Driver;v0.3改为在新的进程中运行Spark APP Driver,这样Worker就与Spark进行了解耦,一个Worker节点可以运行多个Spark APP Driver,且可以运行其他APP。
四、Moonbox典型场景案例
最后,为了让大家更加了解Moonbox,我们来介绍几个典型的Moonbox应用场景案例。
基于DBus、Wormhole、Kudu、Moonbox构建实时ETL
DBus将数据库变更实时写入Kafka,Wormhole消费Kafka进行流式处理,流上lookup其他表形成大宽表,或者执行部分处理逻辑写入Kudu。使用Moonbox对Kudu进行查询将结果保存或者展示。
批量作业
使用Moonbox提供的批量作业脚本,异步rest接口或者定时任务,可以运行批量作业。
基于Davinci、Moonbox即席查询可视化
将Moonbox的JDBC驱动放入Davinci lib中,即可像使用其他数据库一样对Moonbox进行查询,并将结果进行图形化展示。
SAS查询
SAS用户可以使用ODBC的方式连接到Moonbox进行数据查询,并且可以将计算直接推到Moonbox中进行分布式计算。
便捷数据操作工具箱
因为Moonbox可以对接多种数据源,而且可以利用Spark进行多种数据源之间的混合计算,所以可以利用Moonbox进行各种便捷操作。例如利用一条SQL就可以搞定将一种数据源中某张表的数据导入另外一种数据源中,对比两张表有哪些数据不同等等。
更多使用场景,大家可以自行体验挖掘哦!
随着数据虚拟化越来越受到大家的重视,一个靠谱的工具成了大家探索数据虚拟化世界的共同需求。Moonbox就是这样一个工具,还等什么,赶紧用起来吧~
项目开源地址:
DBus:https://github.com/BriData/DBus
Wormhole:https://github.com/edp963/wormhole
Moonbox:https://github.com/edp963/moonbox
Davinci:https://github.com/edp963/davinci
作者:王浩 来源:敏捷大数据
Moonbox v0.3beta 发布:Grid 全新重构,更快更解耦相关推荐
- MRoot 2.2 发布,全新 UI 界面,更好的集群
开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> MRoot 2.2 发布,全新UI界面,更好的集群 重大 重大 1 Ehcache3 改为 Redis 以便更好的 ...
- MesaLink v0.7.0发布 | 迎接TLS 1.3时代 更快更安全
MesaLink是百度安全实验室研发的一个内存安全并且兼容OpenSSL C API的传输层安全(TransportLayer Security, TLS)协议栈.近年来TLS漏洞频发,以2014年的 ...
- 更快更强更清晰 苹果发布The New iPad
更快更强更清晰 苹果发布The New iPad 北京时间3月8日凌晨两点,全球IT目光聚焦美国旧金山,在芳草地艺术中心,苹果召开新品发布会,正式推出了第三代iPad平板电脑:The New iPad ...
- 与阿里云整个生态体系共同成长,更快更好的为房地产行业客户提供高价值的服务。...
免费开通大数据服务:https://www.aliyun.com/product/odps "最早是新业务要做,但是买服务器来不及,管理员没到位,而且新业务的成本很高,是否能成功也是未知,因 ...
- 与阿里云整个生态体系共同成长,更快更好的为房地产行业客户提供高价值的服务。
免费开通大数据服务:https://www.aliyun.com/product/odpsyu "最早是新业务要做,但是买服务器来不及,管理员没到位,而且新业务的成本很高,是否能成功也是未知 ...
- vivo适配android10,更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版...
原标题:更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版 天,谷歌一年一度的I/O 2019开发者大会如期举行.此次大会除了多款重磅新产品,新一代系统Android Q( ...
- msdn安装后怎么用_Win10不好用?安装官方版精简Win10后,运行比win7更快更流畅
尽管不想承认,确实是大白菜的电脑配置有点旧了,导致从win7升级最新版win10系统后,电脑是100个不好用!!! 虽然,非常怀念使用win7系统时,那种操作的流畅度,那种运行的速度~ 但是,大白菜和 ...
- YOLOv5全面解析教程③:更快更好的边界框回归损失
作者|Fengwen.BBuf 边界框回归是目标检测的关键步骤,在现有方法中,虽然被广泛用于边界框回归,但它不是针对评估指标量身定制的,即 Intersection over Union (IoU). ...
- 更快更安全,HTTPS 优化总结
在网站升级到 HTTPS 之后,我们还可以有很多玩意可以折腾,优化 HTTPS,让它更快更安全.这里是一篇 HTTPS 优化的总结,也包含问题的解决方法,不过不仅仅包括 HTTPS 的优化,也包含 H ...
- 网吧无盘服务器为什么玩地下城和穿越火线卡其它游戏不卡,为什么网吧的电脑配置更低,玩游戏却更快更爽?...
原标题:为什么网吧的电脑配置更低,玩游戏却更快更爽? 随着互联网时代的到来,现在家家户户都有一台或几台电脑几乎成为常态,有人认为网吧行业可能会因此受到冲击,但是相反我国的营业性网吧不仅没有减少,还继续 ...
最新文章
- 人工神经网络秒变脉冲神经网络,新技术有望开启边缘AI计算新时代
- 几种常用的Java数据源解决方案
- 24、Java Swing JTabbedPane:选项卡组件
- docker报错解决办法:Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp
- assign, retain, copy, weak, strong
- MySQL知识树 集合操作
- sony微型计算机,舍我其谁?只有SONY做得到!
- 分享精心收藏的前台开发素材网站,都是干货
- python函数中文手册-python函数手册
- Bolt引擎内置的元对象介绍
- 误差的基本性质与处理matlab实验,误差理论与数据处理实验报告
- [人工智能-综述-9]:科学计算、大数据分析、人工智能、机器学习、深度学习全面比较
- 超级蓝筹股是什么意思?a股蓝筹股是什么意思?
- Codeforces Round #545 (Div. 2) C. Skyscrapers
- matlab 门函数频谱,时域门函数及门函数串的频谱分析
- git 本地多账号管理
- 字符串中的转义字符(史上最详版)
- 【NDN学习】NDN的定义,基础,解决什么问题
- c语言double型小数点后几位小数,c语言double类型默认输出几位小数?
- 2021-7-9 学习记录:前端动画制作钟表