我的编程空间,编程开发者的网络收藏夹
学习永远不晚

程序数据集上的多维分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

程序数据集上的多维分析

看到文章标题,顾名思义应该也晓得本篇文章的重点内容是要说啥了吧?

没错,就是想针对程序数据集上的多维分析唠几毛钱的!所谓程序数据集,是指数据源不是来自文件和SQL,而是由程序现计算出来的。这种情况在许多BI系统中都会出现,BI系统自己管理数据模型,把数据库挡在后面,不会直接开放SQL,更不会提供文件让你直接访问,访问数据都要通过程序接口(比如JavaAPI或Webservice)——这样一来,想要对这些程序接口返回的结果集做多维分析看似就有些困难了。

小编我本着先客户之忧而忧的服务宗旨,思前想后还是觉得之前的《把 Excel 透视表搬到 WEB 上》和《给一句 SQL 就能做多维分析》对多维分析的介绍不太够,所以今天特地再来唠唠如何对程序数据集做多维分析。

 

访问 JavaAPI

API是应用程序编程接口,程序开放API就是开放接口,开放后接口返回的程序数据就可以被其他程序调用了。

问题来了,在俺们多维分析中怎样才能对API接口返回的程序数据做分析呢?

简单,其实是分分钟搞定的事儿!

步骤一:

最最重要的前提,要麻烦程序猿自定义类,把要返回的结果集封装在一个静态方法中

本例小编自己写了个api,为方法传入txt文件路径,然后将txt内容以文本字符串返回。

test.txt文件内容:

程序数据集上的多维分析

 

自定义类TxtTest:

package api;import java.io.*; public class TxtTest {public static String readTxttoString(String pathName,boolean hasTitle){final BufferedReader bfr;final String encoding = "gbk";final File file = new File(pathName);String lineTxt=null;StringBuffer buf = new StringBuffer();InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);bfr = new BufferedReader(read);while((lineTxt=bfr.readLine())!=null){buf.append(lineTxt+"\n");}return buf.toString();}}

步骤二:

将TxtTest.class文件放入WEB应用能加装到的类路径下,本例以安装包自带的demo应用为例,因此该文件可放入[安装根目录]\report\web\webapps\demo\WEB-INF\classes\api下。

 

步骤三:

在集算器设计器中新建 txtTest.dfx,添加参数和网格内容:

程序数据集上的多维分析


A

1

=invoke(api.TxtTest.readTxttoString,pathName,hasTitle)

2

=A1.import@tq()

3

return A1

 

使用invoke函数,调用步骤一中自定义JAVA类中的静态方法,并为方法传入参数。 保存后将dfx文件放至[安装根目录]\report\web\webapps\demo\WEB-INF\files\dfx目录下。至于为啥要把文件放到这儿,先卖个关子,后面再解释。

集算器用的invoke函数主要是用来调用用户自定义函数的,不仅能像上面例子这样返回字符串,还可以返回其他多种类型,不过必须使用可与集算器匹配的数据类型,否则有可能在展现或调用时出现错误。集算器中常用数据类型对应的Java类型如下:

整数

java.lang.Integer

长整数

java.lang.Long

浮点数

java.lang.Double

长实数

java.math.BigInteger

实数

java.lang.Number

布尔型

java.lang.Boolean

字符串

java.lang.String

日期

java.sql.Date

时间

java.sql.Time

日期时间

java.sql.TimeStamp

二进制数据

byte[]

 

步骤四:

多维分析中添加 dfx 文件数据集

程序数据集上的多维分析

数据集窗口大家一定都不陌生,多维分析与外部API之间的通道就是通过它指定DFX文件完成的。

选择dfx文件时是不是发现步骤三中创建的dfx被列出来了,前因后果这下明白了吧,猜对了,这个列表默认就是把[安装根目录]\report\web\webapps\demo\WEB-INF\files\dfx这个目录下的所有dfx列出。想要修改这个目录路径也是ok的,在 "[demo 应用根目录]/raqsoft/guide/jsp/olap.jsp" 中添加 JS API 进行指定,如下图所示:

程序数据集上的多维分析

选择dfx文件,传递参数值,点击查询数据,缓存入文件保存,数据集就创建完成了!

 

接下来马上又到了每日开心一刻了,任性拖拽无人阻拦,哈哈!

点击【添加报表】,选择数据集,填写报表名称【确定】

程序数据集上的多维分析

程序数据集上的多维分析

程序数据集上的多维分析

  

添加报表后,数据集返回的表结构指标就这样赤裸裸的出来了,接下来就可以拖拖拽拽查看指标内容了。咋样,有没有发现其实这种调用JavaAPI的程序数据集也挺好使,只要先把自定义类做好就相当于完成一大半了,集算器dfx只是起到了个中间调用的作用。

程序数据集上的多维分析

API返回的程序数据不仅可以是txt文本串,还可以是json串。关于json串在多维分析的调用我们也有攻略帮您解决,其实很简单,API里的内容由您自己做主,只要最终返回的是json串就行,这里主要就是变通一下步骤三dfx文件中对json串的处理。

dfx内容作如下修改:


A

1

=invoke(api.TxtTest.readTxttoString,pathName,hasTitle)

2

=json(A1)

3

return A2

 

访问多维分析页面,添加dfx文件类型的数据集。

 

程序数据集上的多维分析

程序数据集上的多维分析

聪明的你,看到这里应该什么都明白了吧?其实换汤不换药,重点都在dfx文件上,只是API返回的类型不同,在dfx中处理方法不同罢了。

 

访问 Webservice

提起Webservice一定都不陌生,一款跨编程语言和跨操作系统平台的远程调用技术。关于Webservice的使用原理小编就不班门弄斧在高手面前显摆了,相信作为资深程序猿的您早已对它了如指掌了吧,哈哈

那在我们多维分析里是否能调用这种远程接口呢?答案必须是肯定的,当然能!

我们已经做了全方位考量,不仅能调用JavaApi还能调用Webservice接口,方法和JavaApi的调用大致类同,具体是哪里相同哪里类同请看下例分晓。

下面以手机号码归属地查询作为示例,介绍对WebService的调用(本例使用的WebService服务是国内官方的手机号码归属地查询所在的服务):

步骤一:

在集算器设计器中新建 webTest.dfx,添加网格内容

 


A

B

C

1

=[18810690043,15207579527,13018617766, 13713309396,15810200987,13168889653, 13501321234,13003110868,13310006279, 13003113520,18718391001,13168889659]

//手机号


2

=ws_client("http://ws.webxml.com.cn/WebServices/ MobileCodeWS.asmx?WSDL")

//访问国内手机号码归属地查询WEB服务


3

=create(手机号,省份,城市,卡类型)

//创建序表


4

for A1

//使用for循环,逐个查询手机号的归属地等信息


5


=ws_call(A2,"MobileCodeWS":"MobileCodeWSSoap": "getMobileCodeInfo",A4:"mobileCode")

//传入手机号,从服务器查询手机号归属地

6


=B5.split@1(":")(2).split(" ").insert(1,A4)


7


=A3.record@i(B6,0)

//将查询结果作为记录插入A3序表中

8

return A3



 

保存后将 dfx 文件放至[安装根目录]\report\web\webapps\demo\WEB-INF\files\dfx目录下。

步骤二:

多维分析中添加 dfx 文件数据集

选择dfx文件,传递参数值,点击查询数据,缓存入文件保存,数据集就创建完成了!

程序数据集上的多维分析

dfx下拉列表里的文件是从哪里读取的,还用小编再提一下吗?嘻嘻,巩固下记忆吧,这个列表默认就是把[安装根目录]\report\web\webapps\demo\WEB-INF\files\dfx这个目录下的所有dfx列出。不过这个路径也是可以修改的,修改方法和JavaApi里使用时的修改方法一样。

数据集创建完成后,接下来就是拖拽指标进行分析了

点击【添加报表】,选择数据集,填写报表名称【确定】

程序数据集上的多维分析

程序数据集上的多维分析

程序数据集上的多维分析

将指标拖拽到右侧数据显示区,这样一来,从WebService服务器获取的手机归属地的信息就展现在我们眼前了,是不是很方便呢?

程序数据集上的多维分析

利用 Tag 标签添加 dfx 数据集

上面两种程序数据集在多维分析使用时都是通过界面数据集菜单配置的dfx数据集,其实还可以通过Tag标签添加。

在Tag标签的使用与之前讲的SQL数据集大同小异,只是属性略有不同。

Tag标签添加dfx数据集:

<raqsoft:analysev2

dfxFile="WEB-INF/files/dfx/txtTest.dfx" //指定相对于web根目录的dfx文件

dfxParams="pathName='D:/2.json';" //dfx所需的参数 … …

/>

在Tag标签中添加dfx数据集,访问多维分析页面时会将该数据集默认作为初始数据集,并直接将结果集以明细的形式展现在页面中。

程序数据集上的多维分析

 

叮叮叮,关于JavaApi和Webservice程序接口的访问到此就介绍完了,通过对本篇文章的学习,一定更能领会我们多维分析的妙处了吧。使用dfx数据集访问程序数据集是直接借用集算器函数轻松引入程序数据集结果,当然,除此之外还能利用集算器的计算能力,对程序数据集的结果做二次处理,最终在界面上做拖拽分组、聚合、过滤等等数据分析动作。

但是,我要说但是,这里都用到了集算器的脚本,而自写脚本的功能是不包含在基本润乾报表中的,也就是说需要花钱滴。嗯,听起来有点悲伤,不过,认真关注乾学院,后面我们会主动提供办法让你绕过这个检查,还是不花钱,一定要关注,不可错过哟!

其实两种程序接口类型在多维分析的使用中是有一定的共同点的,下图就能直观的让我们看到区别: 

程序数据集上的多维分析

JavaAPI和WebService两种程序数据集上的多维分析都是使用的dfx数据集,不同点是dfx文件中使用的函数不同,这是关键点!JavaApi时是先将程序接口进行封装,然后在集算器中使用invoke函数调用自定义类。WebService时则是直接使用函数远程访问官方手机号码归属地查询所在的服务器获取手机号归属地数据。

其实,如果想实现高性能还可以直接用二进制格式,但就需要学习集算器的数据类型及相关API了。此处就不过多介绍了。还是那句话,更多关于集算器的学习可参考帮助文档《函数参考》、《教程》。

好了,本篇文章虽然讲完了,但它却已成为我们之间交友学习的开端,还在犹豫什么,快来加入乾学院吧,带你了解更腻害的多维分析。


详情链接:http://c.raqsoft.com.cn/article/1539249655403?r=gxy

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

程序数据集上的多维分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

程序数据集上的多维分析

看到文章标题,顾名思义应该也晓得本篇文章的重点内容是要说啥了吧?没错,就是想针对程序数据集上的多维分析唠几毛钱的!所谓程序数据集,是指数据源不是来自文件和SQL,而是由程序现计算出来的。这种情况在许多BI系统中都会出现,BI系统自己管理数据
2023-06-02

聚合函数在多维数据分析中的应用

在多维数据分析中,聚合函数起着至关重要的作用。聚合函数通常用于对数据进行汇总、计算统计指标以及生成报表。在多维数据分析中,常见的聚合函数包括计算平均值、总和、最大值、最小值、计数等。这些聚合函数可以帮助分析人员更好地理解数据的整体情况,识
聚合函数在多维数据分析中的应用
2024-08-03

ADO.NET程序集的示例分析

这篇文章主要为大家展示了“ADO.NET程序集的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ADO.NET程序集的示例分析”这篇文章吧。强命名ADO.NET程序集强名称(或数字签名)由
2023-06-17

CLR程序集的示例分析

小编给大家分享一下CLR程序集的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、CLR程序集教程之体系结构程序集是一个抽象的概念,程序集是一个或多个托管
2023-06-17

Oracle Value函数在数据仓库多维数据分析中的优化

Oracle Value函数在数据仓库多维数据分析中是一个非常有用的工具,它可以帮助我们计算基于维度的值。然而,为了提高查询性能和减少资源消耗,我们可以采取一些优化措施。以下是一些建议:使用索引:确保在经常用于Value函数中的维度列上创建
Oracle Value函数在数据仓库多维数据分析中的优化
2024-10-09

Python与大数据:踏上数据分析的旅程

Python在大数据处理和数据分析领域发挥着重要作用。本文介绍了Python与大数据的关系,并提供了演示代码,帮助您踏上数据分析的探索之旅。
Python与大数据:踏上数据分析的旅程
2024-02-07

VB.NET数据集的示例分析

这篇文章将为大家详细讲解有关VB.NET数据集的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.基本概念VB.NET数据集是一种离线了的缓存存储数据,它的结构和数据库一样,具有表格、行、列的一种
2023-06-17

Java多线程程序的示例分析

今天就跟大家聊聊有关Java多线程程序的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我们在使用Java多线程程序的时候会遇到不少的问题,当我们解决这个问题的时候在源代码中就
2023-06-17

多维数据分析引擎Saiku怎么安装使用

这篇文章主要介绍了多维数据分析引擎Saiku怎么安装使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Saiku的下载安装和启动下载地址:https://communit
2023-06-02

小程序怎么自定义分析数据上报接口

这篇文章主要讲解了“小程序怎么自定义分析数据上报接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“小程序怎么自定义分析数据上报接口”吧!wx.reportAnalytics(eventNam
2023-06-26

Java程序中多线程的示例分析

这篇文章主要介绍了Java程序中多线程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  为什么会排队等待?  下面的这个简单的 Java 程序完成四项不相关的任务。
2023-06-03

Kylin是基于哪种技术实现的多维OLAP数据分析

Kylin是基于Apache Hadoop和Apache Spark技术实现的多维OLAP数据分析引擎。Kylin使用了Hadoop的HDFS存储数据,利用Spark进行计算和处理,以支持快速、高效的多维数据分析。Kylin还提供了与Hiv
Kylin是基于哪种技术实现的多维OLAP数据分析
2024-03-06

Java程序的脏数据问题实例分析

本篇内容主要讲解“Java程序的脏数据问题实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序的脏数据问题实例分析”吧! 脏数据(Out-of-date data),指过时的数据
2023-06-03

分析跨多次运行的 Go 程序

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《分析跨多次运行的 Go 程序》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~
分析跨多次运行的 Go 程序
2024-04-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录