作者:张玺
大数据分析、企业BI、数据可视化等话题在坛子里日趋火热,新的技术,架构也层出不穷,今天借此文跟大家分享一款大数据下的联机分析(ROLAP)解决方案,它应用了当前主流的数据可视化工具Tableau及列存储数据库Vertica, 采用了IBM Platform Analytics数据采集框架和数据ETL(Extract, transform, load)框架完成对原始数据的采集和处理,提供可用于数据可视化处理的数据仓库,完成对业务数据的可视化分析。
Tableau主要是面向企业数据提供可视化服务, 企业运用Tableau授权的数据可视化软件对数据进行处理和展示。
Tableau目前有三大软件产品:Tableau Desktop、Tableau Server以及Tableau Public。其中Tableau Desktop是一款PC桌面操作系统上(只支持windows系统)的数据可视化分析软件。Tableau Server则是完全面向企业的商业智能应用平台,基于企业服务器和web网页,用户使用浏览器进行分析和操作,还可以将数据发布到Tableau Server与同事进行协作,实现了可视化的数据交互。而Tableau Public是完全免费的,不过用户只能将自己运用Tableau Public制作的可视化作品发布到网络上即Tableau Public社区,而不能保存在本地,每个Tableau Public用户都可以查看和分享,而且Tableau Public所能支持的接入数据源的类型和大小都有所限制,所以Tableau Public更像是Tableau Desktop的公共网络版,重在体验和分享。
Spss、Matlab、Excel是几个大家比 较熟知的数据分析软件,也都能进行数据的可视化。但Tableau Desktop可以说是一款完全的数据可视化软件,而Spss、Matlab、Excel则各有侧重。Tableau Desktop与之的区别是,Spss作为三大统计分析软件,比较偏重于统计分析,使用者需要一定的数理统计基础,虽然其也是功能强大且操作简单友好,但 其输出的图表在与办公软件的兼容性及交互方面有所欠缺,而Tableau Desktop专注的是结构化数据的快速可视化,使用者可以快速构建美观有效的数据可视化作品,并构建交互界面(通过发布到Server),但只是辅助分 析,辅助人们进行视觉化的思考,并没有像Spss那样强大的统计分析功能。Matlab的功能更加强大,但需要较为深厚的编程基础,比较适合科学方面的可 视化项目。Excel是最流行最常用的数据分析、数据绘图软件,但因其大量糟糕的图表设计案例从而在可视化领域广受诟病,而Tableau Desktop不仅图表美观,而且更加智能,可以自动地进行可视化形式的选择,而且Excel作为一款电子表格工具,其不适用大型数据集。
总之,快速、易用、可视化还是Tabeleau Desktop最大的特点,其能满足大多数企业、政府机构数据分析和展示的需要以及部分大学、研究机构可视化项目的要求,而且特别适合于企业,毕竟Tableau自己的定位也是业务分析和商业智能。
Veritica作为列存储数据库,提供了比传统行式存储数据库更快的查询操作。Vertica不仅仅按列式存储数据,还主动地根据列数据的特点和查询的要求选用最佳的算法对数据进行培续和压缩,这就大大降低磁盘I/O消耗。
在Vertica中,每列数据式独立地存储在连续的硬盘存储块中。这与传统行式数据库按行的顺序来连续存储数据有根本的不同。 Veritica支持延迟物化技术。对于大多数的分析查询而言,往往只需要获取所有列数据的一个子集。Veritca列式优化器和执行引擎可以在列式存储中跳过无关的列,从而节省了大量的I/O资源消耗。
从实际情况上来看,基于行存储的数据库更适合OLTP(联机事务处理系统),而基于列存储的数据库更适合OLAP(联机分析处理系统),比如数据仓库。除此之外,由于同一列必定是同一类型大小,基于列存储的数据库更容易使用高效的存储方式,与之相比较,基于行存储的数据库则只能采用随机方式处理列值了。
数据采集与数据加工(ETL)应用了IBM Platform Analytics(以下简称PA)开放式框架,它集成vertica和tableau,实现了从数据采集,数据分析到最终可视化的完整解决方案,其架构如图3所示:
Platform Analytics通过Analytics Data Collectors 进行原始数据的采集,并将采集到的数据写入数据库,存放在原始数据表中,Analytics Data Collectors被部署在一台主机上,一个Analytics Data Collectors包括不同的数据采集器,我们称之为dataloader。不同的dataloader负责采集不同类型的数据,这些loader 可以分为events loader,polling loader和database loader。events loader通过对log文件的解析,polling loader通过与系统API的交互定期采集实时数据,database loader则采集数据库中已经存储的数据。这些数据通过通过plc(platform loader controller)对dataloader进行管理,plc作为loader的主进程负责各个loader的定期调度。与此同时,还有一个wsm进程负责HA控制,检测plc的运行状况,在发现plc停止工作的情况下,wsm会自动重启plc,保证数据的及时采集。
除了单节点的PA node,PA node还采用了failover机制,一个loader可以被部署在多台主机上,一旦某台机子宕机,plc会以此被运行在下一个指定的host上。
原始数据写入到数据库后,Platform Analytics Server会调度ETL对数据进行Extract、Transform和Load,生成最终可用来数据分析的分析数据,这些分析数据存放在以RPT 开头的表中,不同的ETL根据自己特有的业务逻辑对原始数据有价值的信息进行提取和聚合。
在Platform Analytics Server上,每个ETL被定义为不同的task,在PA Console上,可以对这些task 的运行周期进行配置,定期调度这些task完成原始数据的Roll Up、Drill Down、Slice、Dice、Filter等操作。与此同时,Platform Server端还提供其他的功能,比如,数据的清洗,数据延迟的检测,用户数据的合并以及对数据库表中重复的数据进行删除操作。
最终的数据通过可视化工具Tableau Server展现,终端用户可以通过浏览器访问Workbook,对Workbook进行条件查询和数据筛选来查看符合条件的业务数据,可以通过定义Email Notification定时收到系统事件的反馈。
Platform 通过以上的过程,完成数据的采集,加工及可视化展现,最终用户可以通过Web 浏览器方便浏览Workbook,也可以通过与LSF的其他第三方产品(比如PAC)集成,方便用户定制和浏览Workbook。
PA目前利用自身提供的数据采集和ETL处理,以及与Tableau和Vertica的集成能够快速相应业务变化的需求,并满足当前的系统性能需求。下一步需要考虑的方向是:在日益增长的数据需求下,如何与其他开源框架的集成,进一步提高数据分析的效率,比如利用ELK来替代现有组件分析系统日志以及采用Spark框架并行处理ETL, 来降低数据周转时间,提高系统的运行效率, 这些都是PA下一步的研究方向。
作者简介:张玺, 2011年加入IBM至今,从事软件测试工作,研究方向为大数据分析,系统实时监控和数据可视化。
责编:周建丁([email protected])
2016年3月18日-19日,由CSDN重磅打造的数据库核心技术与实战应用峰会、互联网应用架构实战峰会将在上海举行。这两场峰会将邀请业内顶尖的架构师和技术专家,共同探讨高可用/高并发系统架构设计、新技术应用、移动应用架构、微服务、智能硬件架构、云数据库实战、新一代数据库平台、产品选型、性能调优、大数据应用实战等领域的热点话题与技术。
2月29日24点前仍处于最低六折优惠票价阶段,单场峰会(含餐)门票只需799元,5人以上团购或者购买两场峰会通票更有特惠,限量供应,预购从速。(票务详情链接)。