技术经验分享:DundasBI简介

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 技术经验分享:DundasBI简介

一、简介


Dundas公司于1992年成立于加拿大多伦多,原本是一家专注于数据可视化技术的公司,主要业务为向其他公司提供数据可视化组件外包开发服务。在1994年至2009年十多年的时间里,Dundas相继推出了Dundas Chart、Dundas Gauge、Dundas Map和Dundas Calendar这4款优秀的数据可视化产品。在享受了多年Dundas公司提供的数据可视化服务之后,微软终于在2007年把这4款产品都收购了,并把它们的技术和代码运用到自己的产品中,包括ASP.NET、Window Form、SharePoint和SQL Server Reporting Services等。能得到微软的青睐,足以说明Dundas公司在数据可视化领域的地位。


到2009年,Dundas公司又推出了Dundas dashboard,这是一款基于Web的图形仪表板设计工具,已经具备了BI产品的雏形。到了2015年,Dundas公司总算摆脱了数据可视化外包公司的尴尬地位,推出了Dundas BI,正式进入到了BI领域。


因为Dundas公司是做数据可视化出身的,所以Dundas BI的强项依旧是可视化部分,而在cube构建和数据分析方面,Dundas BI不得不依赖于第三方数仓。这种局面一直持续到2019年, Dundas推出了自己的In-Memory Engine,支持构建内存数仓,Dundas BI才算补足了自己最后一块短板,从此插上了牛逼的翅膀开始腾飞。在2020年Gartner发布的年度BI及分析平台魔力象限报告中,Dundas BI第一次进入到了魔力象限,其pixel-perfect的能力亦备受赞赏,说明Dundas BI优异的数据可视化能力为自己加分不少。


二、产品架构


Dundas BI的架构分为4层,最底下是数据源,数据源可以是RDBMS、OLAP、 平面文件、大数据存储、API数据源以及程式化数据源,一共支持50多种。值得一提的是,这50多种数据源还包括了谷歌云、亚马逊云的多种云上数据库产品,这也反映了Dundas BI的数据源适配及生态融合能力还是很强大的。


在数据源之上,是数据预聚合层或者叫数据集层。数据预聚合层从数据源中加载好数据,利用各种数据清洗工具完成数据的清洗和转换工作,并根据预定义好的数据集模型完成数据的预计算,并将预计算的结果数据保存在数仓或者内存中。在查询的时候,查询请求就不需要下发到数据源,而是直接从预聚合层中获取结果数据,加快数据查询的速度。在推出In-Memory Engine之前,这一层的工作只能交由第三方数仓去完成,这就使得Dundas BI不是一个完整的BI产品,没有办法独立完成OLAP操作,在推出了In-Memory Engine后,这一层的工作就可以交给In-Memory Engine完成。同时,Dundas依旧保留了与第三方数仓的对接能力,同时支持In-Memory Engine中内存数据集导出至数仓以及从数仓加载数据集回内存,这大大增加了Dundas BI数据集选择的灵活性,成为了Dundas BI的又一大特色。


再往上便是指标定义层。Dundas BI在指标定义层中完成对度量和维度的排序、分组、过滤等设置,并定义了数据的显示格式和缺失补全规则。指标定义层输出的产物是一个个指标集,指标集可以由用户根据自己的业务需求定义,也可以由Dundas BI根据数据集自动生成。


最上面的是视图层,视图层就是各种可视化服务组件,包括仪表板、报表、记分卡、看板等等。视图层的可视化组件可以轻松地被嵌入到其他业务系统,也可以导出和分享,并且支持评论、推送等服务,用户大部分的数据消费都是在视图层中完成的。这一层是Dundas BI做的最出色的部分,也是Dundas BI的主要卖点,其收入的70%都是来自于为其他公司提供报表嵌入支持服务。


三、产品特性


1.敏捷性和专业性相结合


1)适配多样化数据源


Dundas BI可以适配50多种数据源,既包括RDBMS、OLAP等结构化数据,也包括平面文件、大数据存储、API数据源以及程式化数据源等非结构化数据。


2)支持拖拽式分析,支持MDX查询,支持图表脚本


在Dundas BI中,可以不写一行查询语句,仅以拖拽和点击的方式,就可以完成一份报表制作。对于专业数据分析人士,Dundas BI则支持MDX查询语句,可以实现复杂的OLAP查询操作。Dundas BI还提供了自己的脚本语言DundasScript,可以利用DundasScript为图表编写脚本,完成复杂的数据分析工作。


3)强大的可视化能力


Dundas拥有25年的数据可视化技术积淀,在Dundas BI上提供了记分卡、表格、图表、计量器、地图、树图、微线图、指标卡、关系图等上百种可视化组件,充分满足用户的可视化需求。除了组件类型丰富,Dundas BI还可以根据数据集和指标集自动推荐合适的可视化图表,实现数据表达的智能化。对于具备自主设计报表能力的高阶用户,Dundas BI也提供了良好的支持,在Dundas BI中,用户可以使用HTML5和CSS设计自己的报表,可定制化程度非常高,这也是Dundas BI能宣称pixel-perfect的底气所在。


2.适应线上线下


1)多终端支持


Dundas除了提供桌面软件外,还可以通过web浏览器以online的方式使用,为了适应智能手机的发展,Dundas还提供了专门的手机app。因为Dundas的图表都是基于HTML5制作的,并且提供了良好的自适应能力,所以即使不安装app,也可以在手机浏览器上实现报表的创建、浏览和分享,甚至可以完成一些简单的数据分析操作,可谓十分方便。


2)可以在报表数据上直接编辑数据,实现所见即所得


Dundas BI的图表是动态的,除了能够完成上卷/下钻、联动、跳转操作外,在有数据写入权限时,还能够在报表上填报和修改数据,所见即所得,非常直观。


3)报表提供在线评论功能,实现数据交流


有时候数据往往只能展示事实,但却无法讲出完整的故事,而且通过数据传递信息的方式是单向的,信息只能由数据提供者传递给数据查看者,中间缺乏互动。为了解决这个问题,Dundas BI为图表提供了评论功能,用户可以对可视化出来的数据进行评论,如提出问题或作出解释,其他人还可以对这些提问或解释进行回复,以此来实现数据展示过程中的交流互动,增强数据交流的效果。


4)支持报表导出和幻灯片生成,可发布到IM工具和FTP


虽然Dundas BI的线上报表可以被方便地访问,但是在许多特定的场景下,用户还是希望报表能够离线保存。为此,Dundas BI支持将报表导出成PDF和图片,导出的离线数据还可以直接发送到IM工具和FTP上。Dundas BI还有一大特色便是它的报表可以直接生成幻灯片,幻灯片可以投到各种显示设备上,并且能够根据设备屏幕的大小自动调整报表尺寸,极大地满足了演讲场合的需求。


3.灵活的cube支持


前面已经说过,Dundas BI最初只能借助第三方数仓完成cube构建,后来Dundas又开发了自己的In-Memory Engine用以支持内存cube构建。此外,Dundas BI还支持direct模式,数据不落地,直接将查询请求发送到源数据库,由源数据库完成聚合并加载到内存中完成可视化。由此Dundas BI便支持了3种cube接入方式。为了进一步增加cube接入的灵活性,Dundas BI还支持定义cube视图,以及将现有cube和其他源数据表进行关联的功能,以此提供对第三方数仓中cube的修改能力。


4.便捷的系统管理和灵活的部署方式


1)对接Windows账号体系,同时支持其他SSO系统


Dundas BI深度融合微软生态体系,可以无缝对接微软系的各种平台和系统,包括Windows账号体系。为了更加方便地被集成进其它现有系统从而提供报表嵌入服务,Dundas BI很早就支持对接其它SSO系统,以满足不同客户的接入需要。


2)支持SaaS化部署和多租户模式


区别于其它以单机软件形式提供服务的传统BI软件,Dundas BI可以作为SaaS产品部署在云上,既支持亚马逊云、微软云和谷歌云等公共云,也可以部署在私有云中。Dundas BI还天然支持多租户模式,更加适应云上生产环境。


3)支持独立部署


除了作为SaaS产品部署在云上,Dundas BI仍然保留了独立部署的输出方式,以满足业务未上云客户的需要。用户可以下载单机软件并购买一定规格的license,激活后便可以使用对应的软件服务。


5.强大的开放集成能力


Dundas公司作为一家提供数据可视化外包服务起家的公司,从一开始就非常注重产品的开放集成能力,在与微软的长期合作中,其自然而然就融合到了微软的BI生态体系内,支持所有的微软BI相关产品,包括SQL Server、Microsoft Analysis Services、Microsoft IIS等等。Dundas BI还支持便捷分享,报表可以轻松地嵌入到第三方系统中。Dundas BI还提供了丰富的开放API,涵盖权限管理、报表管理、数据管理、数据分发、文件系统、分析脚本管理等功能,利用这套开放API, Dundas BI可以更加无缝地嵌入到客户的业务系统中。


四、In-Memory Engine


In-Memory Engine是Dundas公司在2019年推出的内存cube技术,并申请了专利。


In-Memory Engine会先根据构建好的cube,利用Dundas提供的工具把数据源中的数据清洗好,并按照不同维度组合完成预聚合,将结果存放到内存中,加快数据的访问速度。同时支持将内存中的计算结果持久化到数仓中,以便在下次使用时直接加载到内存。


In-Memory Engine采用一种数学上的超图结构来组织内存中的数据,这种超图结构使得Dundas不需要在内存中存储维度所有粒度的聚合结果,即可完成对不同粒度聚合结果的查询,减小内存使用量。


五、DundasScript


DundasScript是Dundas自己开发的一套脚本语言,可以认为是C#的一个子集,在语法上和C#非常类似,且支持C#中的许多标准工具类。


虽然DundasScript在语法上表现为一个C#的子集,且支持C#中的标准工具类,但DundasScript是一个支持动态类型的脚本语言,在DundasScript中可以不声明变量的类型,也可以在一个作用域内多次定义相同命名的变量,这些特性使得DundasScript更像是python、JavaScript等脚本语言。


// Create a new string:


string foo = new string("Hello world");


if (someCondition)


{


// From now on, foo is an int, not a string!


int foo = 10;


}


在Dundas中可以利用DundasScript完成数据清洗以及包括计算字段定义、桥梁参数定义、第三方数仓接入、占位符定义、自定义计算公式等其他数据操作。下面是一个利用DundasScript完成自定义字段的例子:


DateTime date1 = $OrderDate$;


int i = date1.Year;


string s = "";


if (i == 2020)


{


s = "This Year";


}


else


{


s = "Other Year";


}


return s;


在这个例子中,首先对cube中的OrderDate字段进行了引用,把它引用到date1这个DateTime类型的变量中,然后取date1的年部分,并对他的值做判断,如果为2020年,则返回“This Year”,否则返回“Other Year”。


六、总结


Dundas公司在数据可视化领域所积累的技术沉淀,使得其产品在可视化方面的能力几乎是其他BI产品无法超越的,这也成为了Dundas BI的核心卖点。Dundas公司也非常善于抓住这一卖点,瞄准细分市场,主打报表嵌入服务,并为客户提供一对一的嵌入开发服务,这种服务为其带来了70%的年收入。


但Dundas公司也明白数据可视化只是BI产品的一部分,如果一直抱着数据可视化技术吃老本,那么就永远都无法摆脱数据可视化外包公司的地位。为此,Dundas在cube建设上投入了大量精力,构建了自己的In-Memory Engine,从此弥补了自己一直以来的短板,让Dundas BI成为了一个完整的BI产品。同时还保留了第三方数仓的接入能力,这便给Dundas BI的cube选择提供了灵活性,反而成为了它的一大特色。


另外,Dundas //代码效果参考:http://www.jhylw.com.cn/485238421.html

BI作为微软技术栈中的产品,虽然可以对接亚马逊云、谷歌云等云厂商的数据源,但是产品本身一直以来都只能部署在windows系统上,这阻碍了它进一步向市场推广。不过这种局面随着Dundas BI最新版本可以部署在linux系统上而得到改善,这一点在Gartner的报告中也有提到。

参考链接:


产品官网:


主页:


用户文档:


开发者文档:


学习资源:


演示视频:


Data Cleansing with Data Cubes


Creating Custom Categorical Hierarchies


Creating and Using Filters on a Dashboard


Working with Formulas


Introduction to OLAP Date Mapping


Automating cube processing


Automate Report Delivery in SQL Server Reporting Services

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
5月前
|
Web App开发 人工智能 Java
技术经验分享:affineCipherandafineHacker
技术经验分享:affineCipherandafineHacker
35 2
|
5月前
技术经验分享:comparisonmethodviolates必现
技术经验分享:comparisonmethodviolates必现
25 0
技术经验分享:comparisonmethodviolates必现
|
5月前
|
XML 图形学 C++
技术经验分享:ASSIMP概述
技术经验分享:ASSIMP概述
84 0
|
5月前
|
存储 C# 索引
技术经验分享:C#入门详解(8)
技术经验分享:C#入门详解(8)
29 0
|
5月前
|
存储 安全 物联网
技术经验分享:FIDO标准简介
技术经验分享:FIDO标准简介
|
5月前
|
存储 缓存 NoSQL
技术经验分享:braum的使用
技术经验分享:braum的使用
23 0
|
5月前
|
应用服务中间件 PHP nginx
技术经验分享:fastcgimain
技术经验分享:fastcgimain
|
5月前
|
前端开发 关系型数据库 MySQL
技术好文:R基础学习(三)
技术好文:R基础学习(三)
26 0
|
5月前
|
JavaScript
技术经验分享:javascriptvar的理解
技术经验分享:javascriptvar的理解
24 0
|
5月前
|
前端开发 JavaScript 容器
技术经验分享:CSSFIXEDpornjavhd
技术经验分享:CSSFIXEDpornjavhd
75 0