塞库报表封装问题分析--一篇不太成功的问题分析报告

塞库报表封装问题分析

 

一、问题描述

借助saiku生成数据模型;

借助saiku生成图文文件;

 

———(数据、格式)——》塞库处理——〉图片报表

 

二、saiku原理描述

 

现状1:

——(数据源)——》---建模控制+权限系统——〉数据+模型—》绘图数据——>绘图引擎——> 图片——>导出接口——〉图形文件

所有的过程都在会话系统的控制下进行

 

 

现状2:(详见附录数据)

1、前端绘制:

——(源数据)—》saiku建模————〉绘图源数据—》前端绘制

 

2、导出绘制

绘图源数据—>svg数据——》服务器转换引擎——〉图形文件——》导出接口

 

——(源数据)—》saiku建模————〉

 

 

三、问题分析

 

1、数据模型导出分析

模型数据 = 元数据(数据库)+ 建模数据 + 导出接口

 

元数据 = 数据库选择 = 数据库连接选择 = 数据库连接设置 + 数据库选择接口 + 会话参量

数据建模 = 数据模型配置 + 数据库选择 + 模型设置接口 + 会话参量;

数据导出 = 会话参量 + 导出接口;

 

现存问题:

1)不支持多数据库连接选择

2)没有做会话参量的保存;

3)没有超级账户

 

连接+视图+权限

 

2、图文导出

 

模型数据—》svg——〉需要的图文格式;

模型数据—》报表数据

 

现存问题

1)svg

数据模型—〉js引擎—>svg—》后继处理

数据模型—〉java引擎—>svg—》后继处理

 

2)乱码问题

 

3)svg的数据数据

模型数据

saiku模型数据

的关系

 

———》svg数据解析

 

 

四、解决方案

1、数据方案

模型数据——》svg格式—〉图文数据

 

2、部署方案

 

saiku服务器+新开放接口——》适配服务器——〉用户

 

用户需求 = 数据库选择 + 模型数据配置 + 输出结果

 

四、技术方案

1、svg转数据

使用Java解析svg文件,以及将获取的Element转换成String

https://blog.csdn.net/genius_wolf/article/details/78794059

 

2SVG HTML5 canvas 各有什么优点,哪个更有前途?

https://www.zhihu.com/question/19690014

 

3、Java Batik操作SVG,实现svg读取,生成,动态操作

https://my.oschina.net/yuyidi/blog/339684

 

Java 的 SVG 库 JFreeSVG

 

 

如何使用JFreeChart创建SVG?

 

 

 

五、数据分析

 

请求接口

1、图文导出接口

http://ns-bi.creditease.corp/saiku/rest/saiku/admin/export/saiku/chart

2、模型修改接口

http://ns-bi.creditease.corp/saiku/rest/saiku/admin/query/E504DC28-6754-E9DE-8F6C-B84CDAF4B33D/axis/COLUMNS/dimension/Measures/member/%5BMeasures%5D.%5BALL_AMT%5D

3、数据接口

http://ns-bi.creditease.corp/saiku/rest/saiku/admin/query/E504DC28-6754-E9DE-8F6C-B84CDAF4B33D/result/flattened?limit=0&_=1578560443459

 

 

附录数据

1、服务器下发数据、数据接口

array.gifcellset

  • s.gifs.gifs.gifarray.gif0
    • s.gifs.gifs.gifs.gifobject.gif0
      • s.gifs.gifs.gifs.gifs.gifblue.gifvalue : "MeasuresLevel"
      • s.gifs.gifs.gifs.gifs.gifblue.giftype : "ROW_HEADER_HEADER"
      • s.gifs.gifs.gifs.gifs.gifobject.gifproperties
        • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifhierarchy : "[Measures]"
        • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifdimension : "Measures"
        • s.gifs.gifs.gifs.gifs.gifs.gifblue.giflevel : "[Measures].[MeasuresLevel]"
    • s.gifs.gifs.gifs.gifobject.gif1
      • s.gifs.gifs.gifs.gifs.gifblue.gifvalue : "星火"
      • s.gifs.gifs.gifs.gifs.gifblue.giftype : "COLUMN_HEADER"
      • s.gifs.gifs.gifs.gifs.gifobject.gifproperties
        • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifuniquename : "[dimens3.MerchantHie].[0000160]"
        • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifhierarchy : "[dimens3.MerchantHie]"
        • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifs.gifs.gifs.gifs.gifs.gifs.gifblue.giflevel : "[dimens3.MerchantHie].[MerchantLevel]"
    • s.gifarray.gif1
    • s.gifs.gifs.gifs.gifobject.gif0
    • s.gifs.gifs.gifs.gifs.gifblue.gifvalue : "成功笔数占比"
    • s.gifs.gifs.gifs.gifs.gifblue.giftype : "ROW_HEADER"
    • s.gifs.gifs.gifs.gifs.gifobject.gifproperties
      • s.gifs.gifs.gifs.gifs.gifs.gifblue.gif成功笔数占比s.gifs.gifs.gifs.gifs.gifs.gifblue.gifhierarchy : "[Measures]"
      • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifdimension : "Measures"
      • s.gifs.gifs.gifs.gifs.gifs.gifblue.giflevel : "[Measures].[MeasuresLevel]"
    • s.gifs.gifs.gifs.gifobject.gif1
    • s.gifs.gifs.gifs.gifs.gifblue.gifvalue : "83.00%"
    • s.gifs.gifs.gifs.gifs.gifblue.giftype : "DATA_CELL"
    • s.gifs.gifs.gifs.gifs.gifobject.gifproperties
      • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifposition : "0:0"
      • s.gifs.gifs.gifs.gifs.gifs.gifblue.gifraw : "0.8300195828187892"
    • s.gifs.gifs.gifs.gifobject.gif2

 

2、导图时的请求数据

type=png&

svg=%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+font-size%3D%2210px%22+font-family%3D%22sans-serif%22+fill%3D%22none%22+stroke%3D%22none%22+stroke-width%3D%221.5%22+style%3D%22-webkit-touch-callout%3A+none%3B+-webkit-user-select%3A+none%3B+-khtml-user-select%3A+none%3B+-moz-user-select%3A+none%3B+-ms-user-select%3A+none%3B+user-select%3A+none%3B%22+unselectable%3D%22on%22+width%3D%22859%22+height%3D%22303%22%3E%3Cdefs%2F%3E%3Crect+pointer-events%3D%22all%22+width%3D%22859%22+height%3D%22303%22+fill%3D%22rgb%28127%2C127%2C127%29%22+fill-opacity%3D%220.00001%22%2F%3E%3Cg%3E%3Cg+transform%3D%22translate%283%2C3%29%22%3E%3Cg+transform%3D%22translate%28762%2C0%29%22%3E%3Cg+clip-

posted @ 2020-01-10 17:46  zzfx  阅读(272)  评论(0编辑  收藏  举报