技术经验分享:DundasBI简介

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,8核32GB 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

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2天前
|
Web App开发 人工智能 Java
技术经验分享:affineCipherandafineHacker
技术经验分享:affineCipherandafineHacker
10 2
|
4天前
技术经验分享:comparisonmethodviolates必现
技术经验分享:comparisonmethodviolates必现
技术经验分享:comparisonmethodviolates必现
|
3天前
|
存储 C# 索引
技术经验分享:C#入门详解(8)
技术经验分享:C#入门详解(8)
|
3天前
|
XML 图形学 C++
技术经验分享:ASSIMP概述
技术经验分享:ASSIMP概述
|
2天前
|
JSON 程序员 Swift
技术好文:Swit项目
技术好文:Swit项目
|
4天前
|
前端开发 关系型数据库 MySQL
技术好文:R基础学习(三)
技术好文:R基础学习(三)
|
3天前
|
存储 缓存 NoSQL
技术经验分享:braum的使用
技术经验分享:braum的使用
|
3天前
|
应用服务中间件 PHP nginx
技术经验分享:fastcgimain
技术经验分享:fastcgimain
|
3天前
|
存储 安全 物联网
技术经验分享:FIDO标准简介
技术经验分享:FIDO标准简介
|
4天前
|
前端开发 JavaScript 容器
技术经验分享:CSSFIXEDpornjavhd
技术经验分享:CSSFIXEDpornjavhd