Elasticsearch提供了API接口供其他程序调用里边数据,例如可以通过9200端口与 Elasticsearch 的 RESTful API进行通信,返回json格式数据,如直接在浏览器中访问:http://localhost:9200/,则返回数据为:
Json格式数据做为常见的数据交换格式,润乾集算器可以很简便的对其进行解析及加工计算,并且数据来源可以是json文件,也可以来自http服务器。
解析来看下集算报表中怎么利用该数据进行报表展现。
上述为通过集算器解析来自http的json数据并将数据返回给报表的脚本,仅通过几行脚本既可以实现报表从Elasticsearch取数的操作,其中:
A1:定义了取数来源
A2:读取返回的手,A2的值即为json的字符串
A3:解析json串形成集算器中自己的序列格式
A4:将数据返回给报表数据集
在A3中将json转换成集算数据后,可以通过集算器的函数对数据进行进一步的操作,例如group,sum,count,过滤等等一系列运算,从而实现对json数据的进一步处理。
注:此例中json数据返回的是单条记录,所以A4中return时用中括号将A3括起来来了,强制将其转换成集算里的序列返回,如返回多条记录,此处可不加中括号。将该集算器文件保存即可,如保存为p3.dfx
接下来看下怎么在报表中展现该数据。
报表数据集中有两种数据集类型,集算器3.1,该数据集来源为集算器文件,选在该类型:
在这设置下数据来源为刚设置的p3.dfx文件即可,可以看到,此处支持参数设置,实际应用中可以将报表参数传入到集算器脚本中进行数据过滤等相应操作。
另外一种数据集格式为脚本数据集,可以在里边直接写集算器脚本,此处不做过多介绍。
设置完成后,设计器右下角会多两个数据集,带version这个数据集为json里支持数据嵌套,而报表同样能够解析出来,version里边字段为:
接下来就可以通过拖拽将相应字段拖到报表中实现报表制作,如设计界面:
可以看到,通过集算器脚本,能方便读取Elasticsearch中数据,数据读取到报表中后,可以通过报表相关函数或者相应操作完成各类报表制作,如数据过滤、统计分析、统计图生成等,可按实际业务需要进行制作。
此例中是采用的http返回json格式数据制作,看Elasticsearch的说明,应该也支持java程序解析数据,文档找到的不是太详细,由于时间关系没有进一步验证,集算器中同样也支持数据来自java程序。