Davinci介绍

Davinci是一个DVAAS(Data Visualization as a Service)平台解决方案。Davinci面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立使用,也可作为可视化插件集成到三方系统。用户只需在可视化UI上简单配置即可服务多种数据可视化应用,并支持高级交互/行业分析/模式探索/社交智能等可视化功能。

Davinci源码大概分为三部分:

  • 采用React的前端工程
  • 采用Spring Boot的后端工程
  • 采用Jekyll + Minmal Mistakes的文档工程,用来介绍Davinci的用户操作方法

官网地址

http://college.creditease.cn/techOpenSource#Davinci

https://edp963.github.io/davinci/

GitHub地址

https://github.com/edp963/davinci

目录

前端部分代码在Davinci源码根目录的 webapp/ 目录中

目录结构
├── app              # 主应用源码
  ├── assets           # 资源文件
  ├── components       # 通用组件
  ├── containers       # 路由容器组件
  ├── utils            # 通用实用方法
  └── app.tsx          # 主应用入口
├── internals        # 开发工程文件
├── libs             # 改动后的项目依赖
├── server           # 开发服务器
├── share            # 分享页源码
└── package.json

安装

https://edp963.github.io/davinci/docs/zh/1.1-deployment

模块架构

支持的数据源

功能特点

  • 数据源

    • 支持多种 JDBC 数据源
    • 支持 CSV 数据文件上传
  • 数据模型
    • 支持友好 SQL 编辑器进行数据处理和转换
    • 支持自动和自定义数据模型设计和共享
  • 可视化组件
    • 支持基于数据模型拖拽智能生成可视化组件
    • 支持各种可视化组件样式配置
    • 支持自由分析能力
  • 数据门户
    • 支持基于可视化组件创建可视化仪表板
    • 支持可视化组件自动布局
    • 支持可视化组件全屏显示、本地控制器、高级过滤器、组件间联动、群控控制器可视组件
    • 支持可视化组件大数据量展示分页和滑块
    • 支持可视化组件 CSV 数据下载、公共分享授权分享以及可视化仪表板的公共分享和授权分享
    • 支持基于可视化仪表板创建数据门户
  • 数据大屏
    • 支持可视化组件自由布局
    • 支持图层、透明度设置、边框、背景色、对齐、标签等更丰富大屏美化功能
    • 支持多种屏幕自适应方式
  • 用户体系
    • 支持多租户用户体系
    • 支持每个用户自建一整套组织架构层级结构
    • 支持浅社交能力
  • 安全权限
    • 支持 LDAP 登录认证
    • 支持动态 Token 鉴权
    • 支持细粒度操作权限矩阵配置
    • 支持数据列权限、行权限
  • 集成能力
    • 支持安全 URL 嵌入式集成
    • 支持 JS 融入式集成
  • 多屏适应
    • 支持大屏、PC、Pad、手机移动端等多屏自适应

网上找到一个去掉邮箱验证的版本

https://github.com/andotorg/davinci-boot

二、实际使用介绍

Step 1:增加数据源

点击Source界面右上角“+”,在Source List里新增数据源(图2),上传CSV文件至指定数据库中(图3),小编使用的数据库为MySQL。


(图2)


(图3)

上传完CSV文件之后,就来到了我们特别重要的一步:写SQL、求出同比环比增长率。

计算同比环比可借助SQL里的window窗口函数实现。MySQL数据库8.x版本才支持window函数,然而小编所用数据库版本为5.x,升级比较麻烦,所以小编在这里使用Moonbox计算同比环比增长率。步骤如下:

(1)把 CSV文件对应数据源挂载到Moonbox计算引擎中。


(图4)

(2)在Source界面继续添加来自Moonbox的数据源,小编将其命名为“growthSource”,连接Url写Moonbox jdbc服务地址(例:jdbc:moonbox://localhost:10010/growthSource),注意将Moonbox jdbc 驱动放至Davinci lib包下。


(图5)

点击保存,就新增了一个JDBC类型的数据源。

Step 2:添加View

点击View界面右上角“+”,出现图6界面。【View是 Davinci 中非常重要的概念,所有的 SQL 逻辑都需要在这里创建,所有在图表上展示的数据都是通过这里的 SQL 获取,可视化建模和团队数据权限控制也在这里进行。(引自Davinci用户手册)】


(图6)

点击图6左上角的“选择一个Source”,选择上一步中新增的“growthSource”数据源,接着就是写SQL语句了,求同比与环比增长率的SQL语句分别如代码块7、代码块8所示。

<span style="font-family: 黑体, SimHei;">select g1.year,g1.month, g1.box_office_mln, g1.last_year_month_box_office_mln, round((g1.box_office_mln - g1.last_year_month_box_office_mln)/g1.last_year_month_box_office_mln * 100.0, 2) asbox_office_mln_year_growth, g1.advertising_revenue_mln, g1.last_year_month_advertising_revenue_mln, round((g1.advertising_revenue_mln - g1.last_year_month_advertising_revenue_mln)/g1.last_year_month_advertising_revenue_mln * 100.0, 2) as advertising_revenue_mln_year_growth, g1.screening_ths, g1.last_year_month_screening_ths, round((g1.screening_ths - g1.last_year_month_screening_ths)/g1.last_year_month_screening_ths * 100.0, 2) asscreening_ths_year_growth, g1.audience_mln, g1.last_year_month_audience_mln, round((g1.audience_mln - g1.last_year_month_audience_mln)/g1.last_year_month_audience_mln * 100.0, 2) as audience_mln_year_growth from (select g.year, g.month, g.box_office_mln, lead(box_office_mln) over(partition by g.month order by g.year desc) aslast_year_month_box_office_mln, g.advertising_revenue_mln, lead(advertising_revenue_mln) over(partition by g.month order by g.year desc) as last_year_month_advertising_revenue_mln, g.screening_ths, lead(screening_ths) over(partition by g.month order by g.year desc) aslast_year_month_screening_ths, g.audience_mln, lead(audience_mln) over(partition by g.month order by g.year desc) as last_year_month_audience_mln from GrowthRate_SQL g order by g.month, g.year desc) g1;<br></span>

(代码块7)

<span style="font-family: 黑体, SimHei;">select g1.year,g1.month , g1.box_office_mln, g1.last_month_box_office_mln, round((g1.box_office_mln - g1.last_month_box_office_mln)/g1.last_month_box_office_mln * 100.0, 2) as box_office_mln_month_growth, g1.advertising_revenue_mln, g1.last_month_advertising_revenue_mln, round((g1.advertising_revenue_mln - g1.last_month_advertising_revenue_mln)/g1.last_month_advertising_revenue_mln * 100.0, 2) asadvertising_revenue_mln_month_growth, g1.screening_ths, g1.last_month_screening_ths, round((g1.screening_ths - g1.last_month_screening_ths)/g1.last_month_screening_ths * 100.0, 2) as screening_ths_month_growth, g1.audience_mln, g1.last_month_audience_mln, round((g1.audience_mln - g1.last_month_audience_mln)/g1.last_month_audience_mln * 100.0, 2) asaudience_mln_month_growth from (select g.year, g.month, g.box_office_mln, lead(box_office_mln) over(partition by g.year order by g.month desc) as last_month_box_office_mln, g.advertising_revenue_mln, lead(advertising_revenue_mln) over(partition by g.year order byg.month desc) as last_month_advertising_revenue_mln, g.screening_ths, lead(screening_ths) over(partition by g.year order by g.month desc) as last_month_screening_ths, g.audience_mln, lead(audience_mln) over(partition by g.year order by g.month desc) as last_month_audience_mln from GrowthRate_SQL g order by g.year, g.month) g1;<br></span>

(代码块8)

注:这里小编增加了两个“View”,分别是yearGrowth和monthGrowth。另外,为了方便计算,在写SQL时,四列主数据的后面生成了一列新数据,用来表示去年同月或同年上月的数据。

点击右下角“Execute”执行SQL语句,yearGrowth和monthGrowth里面的数据分别发生如下变化:


(图9)


(图10)

点击“Model”进行可视化建模,也就是数据中,哪几项用作维度,哪几项用作指标。更改完毕后,点击“保存”。在这两个View中,小编仅用年、月作为维度,其余都作为指标。

Step 3:制作Widget

可视化组件Widget是 Davinci 中功能最强大也最复杂的部分。同一个数据视图可以被多个可视组件使用,并用不同的图形展现。

在展示同比环比数据方面,我们一般会用柱状图或者折线图来表示,而在Davinci所支持的透视驱动和图表驱动里,都有柱状图和折线图。它们具体有什么区别呢?让我们在实例中感受一下吧~

注:想了解透视驱动和图表驱动?请参考Davinci用户手册:

https://edp963.github.io/davinci/widget_guide.html

点击Widget界面右上角“+”,选择一个View。选择完毕后,出现图11所示界面。


(图11)

其中,分类型字段对应View中设置的是维度的字段,数值型字段对应指标字段。当鼠标悬停在图形图标上,系统提示图形的配置要求,满足条件生成图形。

例如,小编想要了解一下2017年下半年各月票房的环比增长率趋势,用透视驱动中的柱状图表示。在这个需求中,简简单单拖拽几个字段就能配制出小编想要的图表。

选择“monthGrowth”这个View,将鼠标放在柱状图图标上,我们会发现要做这个柱状图会需要“0到多个维度”及“1到多个指标”。既然小编想看的是各月环比增长率,那维度这里我们就需要放上“month”字段(点击字段下拉菜单可以排序),指标则是票房环比增长率字段。

接下来我们就需要用到“筛选”一项,在小编的原始数据中,年份里包括2017和2018年,月份里有12个月。这里小编的要求是“2017年下半年”,因此需要将“year”和“month”字段都拖到筛选栏里,并且按照自己需求配置筛选。这几项配置完以后,出现了如图12所示界面:


(图12)

如果觉得单单只看图形,不够清晰明了,我们还可以将票房环比数据拖进标签栏,最终如图13所示:


(图13)

当然,大家也可以根据自己的喜好配置柱状图颜色、标题颜色及大小以及坐标轴颜色等(图14)。


(图14)

点击右上角“保存”,小编就成功制作了一个Widget。当然,这个Widget也可以用折线图来表示(图15),完全看个人需求~


(图15)

再例如,想试试用图表驱动里的折线图来展示一下2018年各月广告收入的同比增长率。这时候就要选择“yearGrowth”这个View了。然后将鼠标放在图表驱动的折线图图标上,我们会发现要做这个折线图需要“1个维度”及“1到多个指标”。

同样,将“month”字段拖入维度栏,“广告收入同比增长率”字段拖入指标栏。

Hmmmmm,就完成了。(图16)

(图16)

是不是过于简单了?

但是大家有没有发现一个问题:在这个数据配置栏里并没有“标签栏”,但是折线图中依然有数字。

原来这里的标签设置在样式配置中。

勾选样式配置中的“显示标签”,数字就出现在了折线图中(图17)。


(图17)

且慢!小编似乎发现了折线图可以变换面貌。点击了一下,发现果然平滑的折线图更符合小编心意。于是最终的“2018年各月广告收入同比增长率”折线图制作完成!(图18)


(图18)

最后例如,小编想看一下2018年各月场次的增减与各月广告收入的多少有没有关系。透视驱动和图表驱动里的柱状图和折线图都可以表示,小编暂且选择透视驱动里的折线图。

同样还是将需求所需字段拖入维度栏和指标栏 — “month”拖入维度栏,“广告收入”和“场次”拖入指标栏,把“year”拖入筛选栏,选择出2018年。完成!(图19)


(图19)

值得一提的是,在这里我们还可以按照自己喜好变换指标栏中的图形。(图20)


(图20)

于是,小编就这样靠着拖拉拽完成了很多Widget的制作。

三、Display

最终,我们来到了展示界面。在展示界面,分别有Dashboard和Display两种展示方式。Dashboard里面有很多更为高级的功能,比如联动关系配置和钻取设置。

然而,肤浅的小编暂时被Display展示吸引住了,所有兴趣都挂在了Display上面,因此,本文中小编只介绍Display展示,Dashboard功能之后再做详细介绍。

下面我们来介绍一下Davinci的Display展示功能。

其实也没有什么介绍的,直接上图吧!


(图21 简约风)


(图22 漫画风)


(图23 科技风)

如图所示,在Display的展示中,我们可以自己更改背景颜色或上传背景图片。设置好背景之后,点击左上角的“Widgets”图标,上传自己想展示的图表,排列成自己喜欢的形状,风格任君选择,一个个大屏就这样制作完成!

以上便是小编用Davinci展示同比环比的过程。由于数据是自己编的,难免会有不符合实际之处,敬请大家谅解。

另外,Davinci一直在不断的成长中。未来,我们还是支持在Davinci Widget中直接计算出同比环比增长率这项功能,还请大家耐心等待,继续支持。

来源:宜信技术学院

开源报表 Davinci 详细介绍相关推荐

  1. C++流媒体开源库Live555详细介绍

    目录 1.Live555简介 2.Live555源码目录说明 3.Live555中的关键概念与流程介绍 3.1.liveMedia的运转 3.2.RTSP介绍 3.3.RTSP连接的建立 3.4.DE ...

  2. python开源报表系统详细操作流程_手把手教你实现自动化报表系统

    今天给大家安利一套自动化报表的实现过程. 说到报表,大家脑海里一定浮现了各种高大上的财务报表,不管他们如何实现的,本文却要教你实现自己的报表系统.对于土豪公司来说,这些都是小case,因为商业的工具平 ...

  3. LinkedIn 详细介绍了他们开源的 Kafka Monitor

    在2016年4月份举行的Kafka峰会上,LinkedIn在Apache 2.0许可协议下开源了Kafka Monitor,并于近日详细介绍了该监控工具的架构以及他们最初的构建动机.在年初的时候,Li ...

  4. RapidScada免费开源Scada组态软件系列教程4-各模块详细介绍

    RapidScada免费开源Scada组态软件系列教程 系列文章目录 RapidScada免费开源Scada组态软件系列教程1-初识RapidScada RapidScada免费开源Scada组态软件 ...

  5. 选开源报表还是商用?2018最新试用三款报表软件产品的感受

    本文非本人整理,仅为搬运工!!! 转载自原文:https://blog.csdn.net/qq_41456848/article/details/83744388,仅供参考. 原文如下: 头疼啊  头 ...

  6. Hadoop系列 (九):Sqoop详细介绍

    文章目录 Hadoop系列文章 Sqoop简介 Sqoop架构 Sqoop数据导入 Sqoop数据导出 Sqoop安装部署 版本介绍 前提环境 下载 安装配置 Sqoop的使用 构建测试数据 将MyS ...

  7. java下开源报表工具(JasperReport)调研记录

    1.介绍 JasperReport是一个强大.灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式.该库完全由Java写成,可以用于在各种Java应用程序,包括J2 ...

  8. 6款实用开源报表工具 | 码云周刊第 83 期

    大数据时代,从海量数据中挖掘出有用的数据,并以较人性化.直观的方式展示这些数据,变得尤为重要.今天小编为大家介绍6款实用的开源报表工具,你可以使用这些工具做出高效,且符合企业需求的报表. 1.项目名称 ...

  9. 开源SVM库libSVM介绍

    一.libSVM简介 libSVM是台湾大学林智仁教授等研究人员开发的一个用于支持向量机分类,回归分析及分布估计的c/c++开源库.另外,它也可以用于解决多类分类问题. libSVM最新的版本是201 ...

最新文章

  1. Docker初学1:初识Docker
  2. 一款遥控器拆解之后可利用的元器件
  3. .NET定时任务执行管理器开源组件–FluentScheduler
  4. 调度场算法与逆波兰表达式
  5. 项目Alpha冲刺--1/10
  6. HTML+CSS+JS实现 ❤️CSS3图片遮罩高亮显示❤️
  7. 【Elasticsearch】es 7.8.0 唐诗三百首写入 Elasticsearch 会发生什么
  8. 有钱人是怎么挣钱的?
  9. samp服务器信息获取,手把手教你写一个简单的服务器
  10. python类的继承代码_python--类的继承
  11. 使用sp_addlinkedserver、sp_dropserver 、sp_addlinkedsrvlogin和sp_droplinkedsrvlogin 远程查询数据...
  12. logitech鼠标接收器配对
  13. 自定义view局部刷新_View
  14. 去除word PDF水印 去除pdf限制
  15. Android JNI的调用过程
  16. 《阿里云服务器教程1》:如何购买阿里云服务器
  17. 机器学习-推荐系统中基于深度学习的混合协同过滤模型
  18. SeaweedFS 分布式 上传、下载、删除附件公共接口
  19. android mapping文件 路径,Android打包代码混淆后的Mapping文件路径
  20. 如何利用ewomail搭建邮件服务器

热门文章

  1. GameFi 发展势头值得期待,下一步它将如何“绽放”?
  2. 记录主机无故蓝屏死机、卡顿的排查过程,结果居然是它!
  3. video、webgl canvas推拉流及多媒体流协议
  4. 开设 AI本科专业 的国内高校一览
  5. python out of memory_详解Pycharm出现out of memory的终极解决方法
  6. 2014安徽二级c语言程序设计,安徽省二级C语言程序设计笔试样题(14页)-原创力文档...
  7. KEIL出现Loading PDSC Debug Description failed解决办法
  8. SoundPool类播放音频、案例弹钢琴
  9. 阿里巴巴史上最大变革
  10. 单价多少元一千克在c语言中怎么表示_教育机器人锂电池一般多少钱