第1章 概述
项目大量使用OData数据源,并且数据量很大,这种情况使用Dataviz默认的OData数据源担心会导致内存大量占用,引起系统的崩溃。 所以针对这种情况我们提供了图表直连URL数据源。
第2章 使用前提和限制
由于核心数据引擎中的图表模型依赖数据集,数据集又依赖数据源,所以无法直接以一个URL生成一个图表, 所以在制作图表的过程依然按照“数据源”>“数据集”>“图表”的过程进行操作。制作图表所引用的数据源的主要作用是确定数据结构,以便可以绘制出图表, 所以最少也要有1条数据,后期图表展示的时候会直接从URL中获取数据。
使用URL数据源的图表有一些功能无法使用,比如下钻/联动/详细信息/过滤条件等,只能作为展示用途。
所以由于诸多限制,URL数据源不支持以下图表:
- GIS(需要多次请求)
- 点亮图(需要多次请求)
- 桑基图(需要多次请求)
- 点亮图(需要多次请求)
- 列表(无法获取列表总数)
- KPI(无法在文本中引用KPI)
第3章 使用方法
图表直连URL数据源功能默认处于关闭状态,如果要打开此功能需要修改dataviz-web/common/config.js中的配置, 把urlDataSource的值修改为true,如下:
urlDataSource: true,
功能开启之后,可以在图表编辑页面中得数据绑定区域看到【url数据源】按钮,点击按钮可以弹出URL数据源设置窗口,如下图:
设置了URL数据源的图表,在图册中引用时就会通过设置的URL获取数据。所有的URL都是通过GET请求,并且返回值要与图表本身的数据结构相吻合。
由于每个图表绑定的字段不同,所以每个图表的数据结构也是不同的,可以在图表制作时通过浏览器的开发者工具监控请求来查看图表的数据结构,如下图:
虽然说每个图表的数据格式都不相同,但是也有一些共同的特性,如下面这些数据:
{
"object": {
"detailList": [
["类别名称", "订单数量(求和)"],
["图书", 5221],
["家居厨具", 11193],
["家用电器", 11946],
["手机数码", 9395],
["服装箱包", 5554],
["汽车用品", 6366],
["电脑办公", 9784],
["运动户外", 3765]
]
}
}
URL的数据以JSON格式返回,最外层属性名为object,object下包含detailList,在detailList下是图表的结构数据。 detailList是一个数组,detailList中第一行数据是图表绑定字段的名称集合,主要用来表示数据的结构,按照维度在前度量在后的顺序排列(具体顺序以图表请求中的结果为准)。 从第二行开始就是用来绘制图表的数据内容了,每一行表示一条数据,数据的内容要严格对照第一行中的字段顺序进行排列。
另外,在请求图表数据的时候我们会在URL中增加一个参数:userid,如果需要控制当前用户的数据权限, 可以通过此参数获取当前登录人的ID,进而控制用户的数据权限。