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

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

1总体说明

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

1.1需求描述 

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

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

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

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

1.2功能架构 

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

DAP可视化组件升级开发说明_DAP数据分析平台

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

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

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

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

1.3技术架构 

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

DAP可视化组件升级开发说明_DAP可视化组件升级_02

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

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

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

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

2组件资源 

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

2.1组件分组 

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

DAP可视化组件升级开发说明_可视化组件升级_03

2.2组件样例 

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

2.3统一规划 

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

DAP可视化组件升级开发说明_DAP可视化组件升级_04

3转换类规划 

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

3.1划分方式 

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

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

3.2类别规划 

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

DAP可视化组件升级开发说明_DAP可视化组件升级_05

3.3后续支撑 

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

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

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

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

4转换类开发 

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

4.1单维度数组 

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

DAP可视化组件升级开发说明_数据_06

  

4.1.1处理逻辑 

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

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

4.1.2返回格式 

返回数据格式如下: 

DAP可视化组件升级开发说明_数据_07

  

4.1.3参考代码  

DAP可视化组件升级开发说明_DAP数据分析平台_08

 

4.2基础列表 

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

DAP可视化组件升级开发说明_DAP可视化组件升级_09

  

4.2.1处理逻辑 

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

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

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

4.2.2返回格式 

返回数据格式如下: 

DAP可视化组件升级开发说明_可视化组件升级_10

  

4.2.3参考代码 

DAP可视化组件升级开发说明_数据_11

  

4.3多维度集合 

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

DAP可视化组件升级开发说明_数据治理分析_12

  

4.3.1处理逻辑 

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

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

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

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

4.3.2返回格式 

返回数据格式如下:   

DAP可视化组件升级开发说明_DAP可视化组件升级_13

  

4.3.3参考代码   

DAP可视化组件升级开发说明_数据治理分析_14

4.4树形嵌套 

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

DAP可视化组件升级开发说明_DAP数据分析平台_15

  

4.4.1处理逻辑 

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

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

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

4.4.2返回格式 

返回数据格式如下:   

DAP可视化组件升级开发说明_DAP可视化组件升级_16

  

4.4.3参考代码   

DAP可视化组件升级开发说明_DAP可视化组件升级_17

  

4.5多指标集合 

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

DAP可视化组件升级开发说明_DAP可视化组件升级_18

  

4.5.1处理逻辑 

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

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

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

4.5.2返回格式 

返回数据格式如下: 

DAP可视化组件升级开发说明_可视化组件升级_19

  

4.5.3参考代码 

DAP可视化组件升级开发说明_DAP数据分析平台_20

  

4.6趋势类指标 

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

DAP可视化组件升级开发说明_可视化组件升级_21

  

4.6.1处理逻辑 

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

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

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

4.6.2返回格式 

返回数据格式如下: 

DAP可视化组件升级开发说明_可视化组件升级_22

  

4.6.3参考代码 

DAP可视化组件升级开发说明_DAP数据分析平台_23

  

5心得总结 

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

5.1功能总结 

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

5.2后续规划 

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

5.3个人总结 

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

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