DAP数据分析平台是公司数据治理分析方案的重要部分,通过结合MDM主数据平台和ESB企业服务总线在进行企业数据治理、数仓建设、数据分析方面提供全面的支持,通过ESB流程实现数据传输、构建数仓,实现了业务数据的有效汇聚与整合,而基于数仓的分析与展现则以更直观的方式展现数据价值,支撑企业的运营决策。

在之前的项目中DAP平台进行过实际应用,有一定成果但也暴露了一系列问题,所以DAP产品的升级一直在进行,之前更多是优化数仓建设部分内容,而本次则是对分析展现部分进行优化升级,对DAP预置的组件以及组件配置方式进行优化,包括组件资源的梳理、规划,组件样例的扩展,组件转换类的重构等工作,本文主要是对组件转换类的规划与设计开发工作进行梳理。

1总体说明

DAP组件资源是DAP进行看板展现的基础,绝大多数的展现效果都是基于组件实现的,所以组件的统一化、规范化至关重要,本次DAP升级中升级组件管理占很大比重。由于组件展现时是依靠组件转换来实现,为了便于组件数据处理以及后续组件扩展,所以需要对组件转换类进行重构

1.1需求描述

1.对组件资源进行整体规划,基于目前DAP现有组件进行分类、分组划分,实现组件资源的统一化、规范化;

2.基于规划后的组件设计组件的数据格式,规划、重构组件转换类;

3.基于组件资源扩展组件样例功能,通过配置不同的属性为每个组件配置不同的展现效果;

4.组件实例配置时直接引用组件样例,复用组件样例的展现效果。

1.2功能架构

DAP组件资源、组件样例和组件实例三者相互支持、密不可分,相关功能架构图如下所示:

1.每个组件资源可以进行组件模板、JS代码、组件属性和默认数据的配置,为组件样例和组件实例提供基础支持;

2.组件样例通过组件资源生成,每个组件资源可以通过配置不同的属性值,从而构建多个不同的组件样例;

3.DAP提供通用的转换类,转换类通过将数据集/立方体与组件的配置结合,构建出固定格式的数据用于支持组件实例的展现,每类组件转换类可以支持几类不同的组件共用;

4.基于数据集/立方体和资源样例构建组件实例,每个组件样例可以通过配置不同的数据集构建多个组件样例。

1.3技术架构

DAP组件资源、组件样例和组件实例三者在技术上相互结合,模板、JS、属性、数据相互交错,同时结合ajax、Vue、echarts等技术和框架实现数据的传输交互与效果展现。技术架构图如下所示:

1.组件资源提供基础支持,包括组件模板、JS代码、组件属性和默认数据;

2.组件样例复用组件资源的模板、JS代码和默认数据,同时基于组件资源的属性生成组件样例属性,同时支持修改样例属性,从而构建不同的样例展现效果;

3.在配置组件实例时,根据组件资源的JS代码通过ajax请求的方式获取数据集/立方体的数据,再将数据提供给转换类进行格式处理并返回JSON数据;

4.转换类返回的数据通过Vue框架和组件模板、JS进行绑定,从而构建组件实例的展现效果。

2组件资源

由于DAP组件资源管理和转换类重构是一体的,要实现多个不同类别的组件可以复用同一个转换类,首先要对组件资源进行整体规划,对现有的组件资源进行分类,使组件资源统一化。

2.1组件分组

由于DAP中组件资源较多,也比较分散,从整体考虑将组件资源分成二级管理,分为组件分类和组件分组,分组下是组件资源,并针对目前的组件资源进行分类、分组划分,分类信息参考如下:

2.2组件样例

为了便于实现组件实例的配置与使用,更好地进行组件资源的管理,在组件管理中添加了组件样例功能,通过组件样例可以直接预览组件展现效果。组件样例基于组件资源进行构建,复用组件资源的Html模板、JS代码和默认数据,但是组件样例可以独立配置自己的属性信息,通过配置可以构建出不同的展现效果,从而支持组件实例配置时的展现。本次重点说明组件转换类的处理与开发,组件样例的相关内容不做重点说明。

2.3统一规划

将现有的组件资源重新进行规划,将组件属性和配置方式尽量保证一致,从而降低DAP学习和使用的难度,所以对于各类组件进行分类划分,规划每一类组件的绑定字段以及绑定数据格式(转换类返回的数据格式),具体如下表所示:

3转换类规划

基于组件资源的划分以及规划后的组件资源绑定字段和转换类返回的数据格式,对组件转换类进行规划,分类制定并开发通用的转换类,实现同一转换类的多组件复用

3.1划分方式

组件转换类的划分依据主要是规划后的组件所接收的数据格式,即转换类返回到前端组件中的数据格式,根据数据格式的不同,开发不同类别的转换类。如表格组件和树形组件,表格组件需要返回的列表数据,而树形组件需要通过嵌套的方式构建多层级数据,所以表格组件和树形组件需要采用不同的转换类实现。

在进行组件资源规划时,考虑到组件所绑定的数据集/立方体的以及数据格式的不同,所以需要配置不同的维度和度量字段,根据配置字段的不同,也需要建立不同的转换类。如表格组件和柱形图,表格类一般有多个维度、多个度量,而通用的柱形图一般是1或2个维度,1个度量,所以二者需要构建不同的转换类进行处理。

3.2类别规划

基于转换类的划分原则,结合规划后的组件资源,对组件转换类进行规划,只开发几类通用性转换类,所有组件进行组件转换类的复用。具体规划的转换类如下:

3.3后续支撑

重新规划后的组件转换类除了需要满足DAP现有组件的数据处理和构建外,也需要满足后续组件扩展时对组件转换类的需求。

1.规划后的六个转换类能满足DAP现有所有的组件使用,并且能满足各类组件在不同业务场景下数据转换处理和效果展现的需要;

2.对每类组件所能处理返回的数据格式进行固化,每个转换类根据配置的数据集字段的不同,返回几种固定格式的数据;

3.后续如果需要进行组件扩展,则需要根据转换类所能返回的数据格式进行组件设计,扩展组件资源时直接复用平台已有的转换类,尽量不再进行组件转换类的扩展,至少保证在项目上不再进行转换类级别的扩展。

4转换类开发

基于转换类的类别规划,根据规划的转换类返回的数据格式进行组件转换类的开发。考虑到对DAP平台功能的影响,所以对于DAP已有的转换类不进行操作,直接根据规划的转换类编码重新建立新的转换类,后续平台组件直接迁移到新的转换类上即可

4.1单维度数组

单维度数组转换类相对简单,只需要根据组件配置为维度字段构建数组即可,参考组件实例的配置方式如下:

4.1.1处理逻辑

1.获取数据集/立方体的数据,获取组件实例绑定的维度字段;

2.循环数据记录,根据维度字段获取每一条记录中的维度值,并将维度值存储到数组中返回组件。

4.1.2返回格式

返回数据格式如下:

4.1.3参考代码

4.2基础列表

基础列表和单维度数组类似,只是在返回的结果为数组嵌套对象的方式,参考组件实例的配置方式如下:

4.2.1处理逻辑

1.获取数据集/立方体的数据,获取组件实例绑定的维度和指标字段;

2.循环数据记录,根据维度和指标字段获取每一条记录中的维度值和指标值,并将维度值、指标值存储到同一个对象中;

3.每一条记录构建一个对象,并存储到同一个数组中,再将构建后的数据返回组件。

4.2.2返回格式

返回数据格式如下:

4.2.3参考代码

4.3多维度集合

多维度集合的数据结构相对复杂,返回的结果集中包含多个对象,每个对象内还需要根据实际配置情况定义多个数组的组合,参考组件实例的配置方式如下:

4.3.1处理逻辑

1.获取数据集/立方体的数据;

2.获取组件实例绑定的维度字段,如果维度字段数大于1,获取最后一个维度,并且循环数据,获取每条数据对应的维度值,并存储于一个数组中;

3.循环数据记录,根据第一个维度获取每一个维度值,再循环步骤2构建的数组,获取数组中每一个维度值对应的指标值,从而构建指标数组;

4.将第一个维度值,步骤2的维度值数组和步骤3的指标数组存储到一个对象中,构建如4.3.2的数据格式,再将构建后的数据返回组件。

4.3.2返回格式

返回数据格式如下:

4.3.3参考代码

4.4树形嵌套

树形嵌套主要是满足类树形组件的数据格式要求,返回一个或多个对象,并且在对象内在嵌套子节点对象,形成多级嵌套的复杂数据格式,参考组件实例的配置方式如下:

4.4.1处理逻辑

1.获取数据集/立方体的数据,获取组件实例绑定的标识、父标识、文本、扩展字段;

2.循环数据记录,获取所有绑定字段对应的数据值,并通过递归的方式获取和构建数据,构建的数据格式如4.4.2;

3.将构建后的数据返回组件。

4.4.2返回格式

返回数据格式如下:

4.4.3参考代码

4.5多指标集合

多指标集合和多维度集合类似,只是多指标集合在配置时维度为空,而指标为多值,在返回数据时将多个指标构建成数组,参考组件实例的配置方式如下:

4.5.1处理逻辑

1.获取数据集/立方体的数据,获取组件实例绑定的指标字段;

2.先循环数据记录,再循环指标字段,获取所有指标字段对应的数据值,并将每一条记录中多个值存储到同一个数组中,构建的数据格式如4.5.2;

3.将构建后的数据返回组件。

4.5.2返回格式

返回数据格式如下:

4.5.3参考代码

4.6趋势类指标

趋势类指标是基础列表的延伸,由于趋势类组件在配置时需要配置动态指标(趋势数据),所以需要通过转换类再添加一个动态的趋势类指标值,参考组件实例的配置方式如下:

4.6.1处理逻辑

1.获取数据集/立方体的数据,获取组件实例绑定的维度、指标、动态指标字段;

2.循环数据记录,获取所有维度、指标、动态指标字段对应的数据值,并将每一条记录中各个值存储到同一个数组中,构建的数据格式如4.6.2。

3.将构建后的数据返回组件。

4.6.2返回格式

返回数据格式如下:

4.6.3参考代码

5心得总结

本次DAP组件梳理是DAP升级的重要内容,而组件转换类是组件实例实现的重要方式,所以在梳理组件时对组件转换类进行重构处理也是重要的内容,而通过转换类统一化、标准化,可以很好地支持后续DAP产品的开发与实施工作。

5.1功能总结

组件管理是DAP分析展现的重要功能,是看板页面展现的基础,而由于之前DAP产品功能不完善,在实际项目中扩展了大量定制化组件,无论是组件配置还是管理都非常不便。而本次升级就是解决组件的这些问题,通过升级组件规范化,组件管理和使用更加方便,配置方式也进行了统一,后续学习DAP可以保证快速学习,也便于对客户进行培训和项目交付。

5.2后续规划

伴随着DAP组件的升级,DAP中原有的预置组件资源、看板实例等都需要进行优化升级,在新版组件的基础上,首先对组件资源的模板、JS等进行优化调整,同时对每个组件扩展组件样例,看板页面基于组件样例重新配置组件展现和穿透,从而优化平台的整体效果。

5.3个人总结

由于前期在DAP设计和开发时,自己直接参与了开发过程,所以对DAP的相关功能比较了解,而且也在实际项目中实施过DAP项目,所以对于目前DAP中大量的组件资源比较了解,而通过本次升级,又重新对DAP的组件进行了一次整体梳理,同时也参考项目实施情况重新进行了规划。从规划到开发,不仅是对DAP重新认知和了解,也对之前开发的代码进行梳理和调整,优化了相关代码的结构,提升了代码规范性。

DAP作为公司的核心产品之一,主要通过数仓建设和展现配置解决了企业数据分析的难题,而随着DAP产品的不断升级与完善,公司的产品逐渐走向精细化,产品组合和方案越来越贴近企业的实际业务,必然会在后续的项目和解决方案中发挥更加重要的作用。

DAP可视化组件升级开发说明相关推荐

  1. DAP数据分析平台可视化组件开发

    企业信息化建设会越来越完善,越来越体系化,当今数据时代背景下更加强调.重视数据的价值,以数据说话,通过数据为企业提升渠道转化率.改善企业产品.实现精准运营.有效运营,用数据来指引企业的发展. 组件使用 ...

  2. 【组件化开发】前端进阶篇之如何编写可维护可升级的代码

    前言 我还在携程的做业务的时候,每个看似简单的移动页面背后往往会隐藏5个以上的数据请求,其中最过复杂的当属机票与酒店的订单填写业务代码 这里先看看比较"简单"的机票代码: 然后看看 ...

  3. iOS 的组件化开发

    2019独角兽企业重金招聘Python工程师标准>>> 在一个APP开发过程中,如果项目较小且团队人数较少,使用最基本的MVC.MVVM开发就已经足够了,因为维护成本比较低. 但是当 ...

  4. android组件化开发视频教程,教你打造一个Android组件化开发框架

    作者简介 本篇来自 lucky_billy 的投稿,分享了他的开源组件化框架,详细地讲解框架形成的思路,希望对大家有所帮助. lucky_billy 的博客地址: 解读开源框架设计思想 B站学习视频 ...

  5. 组件化开发,制作Cocoapods Git库

    在项目中,如果项目功能很多而且工程浩大,需要多个技术部门或小组同时进行开发,根据独立功能模块进行分配.多个小组开发模块怎么样快速优雅的进行整合到主项目中呢?这个是时候组件化开发优势就体现出来了,每个模 ...

  6. matlab氢原子杂化轨道,网络版原子和分子结构可视化程序的开发

    网络版原子和分子结构可视化程序的开发 以MATLAB为开发平台,编写一种基于网络的原子和分子结构可视化程序AMSW,有绘制主量子数小于9的任意类氢原 (本文共5页) 阅读全文>> 随着交通 ...

  7. 润乾报表列太多导致渲染速度慢_报表自动化: 如何选择可视化大屏开发利器

    报表自动化: 如何选择可视化大屏开发利器​www.coologic.cn 我们在前文完成了各种数据的准备:原始数据.指标数据.报表表格等等,但仍然无法解决"阅者"难以理解庞大数据. ...

  8. 工作流的设计,业务流程图的绘制与编辑,工作流软件,工作流源代码组件库,开发平台,开发引擎...

    基于业务流程的工作流系统在当前的软件工业中占据着非常重要的部分,开发此类系统, 最困难的部分就是业务流程建模和电子表单的可视化界面部分,这部分界面要求有快速的响应时间, 完善的逻辑关系,以及根据需求不 ...

  9. 数据可视化组件Grafana详细解读--MacOSX上的安装

    数据可视化演示: PS:您可以在目标服务器上运行数据可视化组件,监控数据服务器,Web服务器,网络文件服务器等等服务器的各种运行状态,DevOps的必不可少的组件. Mac OS X(通过homebr ...

最新文章

  1. 清华、中科大实现了量子版本的GAN,平均保真度98.8%
  2. ubuntu workerman kaer
  3. iframe的src动态修改并刷新_微服务中配置中心Config+消息总线Bus,实现分布式自动刷新配置
  4. 关于Unity实现AR功能(四)设置相机的对焦
  5. leetcode 241. Different Ways to Add Parentheses | 241. 为运算表达式设计优先级(Java)
  6. 复杂XML的解析及组装
  7. 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
  8. [转]WinForm--使用C#制做进程监视器
  9. Metasploit Framework(6)客户端渗透(上)
  10. Office 2007打开提示The setup controller has encountered
  11. 数学到底有多重要?网友:道理都懂,实力不允许啊…
  12. Windows API串口编程
  13. 元宇宙与虚拟现实(一)
  14. DM368开发 -- 再论 UBL
  15. 5G 38.300 Rel15 中文版
  16. Q-learning 算法工作原理
  17. XPDL学习与分享 二 XPDL整体结构
  18. 阿里大数据之路 总述
  19. SSH Tunneling (SSH隧道)远程连接服务器
  20. 10kV高压开关柜无线测温系统设计及产品选型

热门文章

  1. [导入]discuz!NT整合经验总结
  2. 线性规划单纯形法的matlab程序,线性规划单纯形法的MATLAB实现_数学专业.doc
  3. 大数据技术面临的挑战
  4. 华为路由器:ipsec技术
  5. 如何设置分布式IO模块Profinet的地址
  6. 结构化数据和半结构化数据和非结构化数据
  7. 安防摄像机网页流媒体服务器EasyNVR无插件直播软件启动打印的IP地址与服务器地址不一致
  8. [菜鸟训练]347. 前 K 个高频元素
  9. 808计算机基础考试时间,成都信息工程大学808计算机基础2020年考研大纲
  10. 初识flowable工作流-实现简单请假流程SpringBoot+VUE