真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

程序數(shù)據(jù)集上的多維分析

看到文章標(biāo)題,顧名思義應(yīng)該也曉得本篇文章的重點(diǎn)內(nèi)容是要說(shuō)啥了吧?

成都網(wǎng)站建設(shè)、成都網(wǎng)站制作過(guò)程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。成都創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進(jìn)行功能模塊的開(kāi)發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。

沒(méi)錯(cuò),就是想針對(duì)程序數(shù)據(jù)集上的多維分析嘮幾毛錢(qián)的!所謂程序數(shù)據(jù)集,是指數(shù)據(jù)源不是來(lái)自文件和SQL,而是由程序現(xiàn)計(jì)算出來(lái)的。這種情況在許多BI系統(tǒng)中都會(huì)出現(xiàn),BI系統(tǒng)自己管理數(shù)據(jù)模型,把數(shù)據(jù)庫(kù)擋在后面,不會(huì)直接開(kāi)放SQL,更不會(huì)提供文件讓你直接訪問(wèn),訪問(wèn)數(shù)據(jù)都要通過(guò)程序接口(比如JavaAPI或Webservice)——這樣一來(lái),想要對(duì)這些程序接口返回的結(jié)果集做多維分析看似就有些困難了。

小編我本著先客戶之憂而憂的服務(wù)宗旨,思前想后還是覺(jué)得之前的《 把 Excel 透視表搬到 WEB 上 》和《 給一句 SQL 就能做多維分析 》對(duì)多維分析的介紹不太夠,所以今天特地再來(lái)嘮嘮如何對(duì)程序數(shù)據(jù)集做多維分析。

 

訪問(wèn) JavaAPI

API是應(yīng)用程序編程接口,程序開(kāi)放API就是開(kāi)放接口,開(kāi)放后接口返回的程序數(shù)據(jù)就可以被其他程序調(diào)用了。

問(wèn)題來(lái)了,在俺們多維分析中怎樣才能對(duì)API接口返回的程序數(shù)據(jù)做分析呢?

簡(jiǎn)單,其實(shí)是分分鐘搞定的事兒!

步驟一:

最最重要的前提,要麻煩程序猿自定義類(lèi),把要返回的結(jié)果集封裝在一個(gè)靜態(tài)方法中

本例小編自己寫(xiě)了個(gè)api,為方法傳入txt文件路徑,然后將txt內(nèi)容以文本字符串返回。

test.txt 文件內(nèi)容:

程序數(shù)據(jù)集上的多維分析

 

自定義類(lèi) 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應(yīng)用能加裝到的類(lèi)路徑下,本例以安裝包自帶的demo應(yīng)用為例,因此該文件可放入[安裝根目錄](méi)\report\web\webapps\demo\WEB-INF\classes\api下。

 

步驟三:

在集算器設(shè)計(jì)器中新建 txtTest.dfx,添加參數(shù)和網(wǎng)格內(nèi)容:

程序數(shù)據(jù)集上的多維分析


A

1

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

2

=A1.import@tq()

3

return A1

 

使用invoke函數(shù),調(diào)用步驟一中自定義JAVA類(lèi)中的靜態(tài)方法,并為方法傳入?yún)?shù)。 保存后將dfx文件放至[安裝根目錄](méi)\report\web\webapps\demo\WEB-INF\files\dfx目錄下。至于為啥要把文件放到這兒,先賣(mài)個(gè)關(guān)子,后面再解釋。

集算器用的invoke函數(shù)主要是用來(lái)調(diào)用用戶自定義函數(shù)的,不僅能像上面例子這樣返回字符串,還可以返回其他多種類(lèi)型,不過(guò)必須使用可與集算器匹配的數(shù)據(jù)類(lèi)型,否則有可能在展現(xiàn)或調(diào)用時(shí)出現(xiàn)錯(cuò)誤。集算器中常用數(shù)據(jù)類(lèi)型對(duì)應(yīng)的Java類(lèi)型如下:

整數(shù)

java.lang.Integer

長(zhǎng)整數(shù)

java.lang.Long

浮點(diǎn)數(shù)

java.lang.Double

長(zhǎng)實(shí)數(shù)

java.math.BigInteger

實(shí)數(shù)

java.lang.Number

布爾型

java.lang.Boolean

字符串

java.lang.String

日期

java.sql.Date

時(shí)間

java.sql.Time

日期時(shí)間

java.sql.TimeStamp

二進(jìn)制數(shù)據(jù)

byte []

 

步驟四:

多維分析中添加 dfx 文件數(shù)據(jù)集

程序數(shù)據(jù)集上的多維分析

數(shù)據(jù)集窗口大家一定都不陌生,多維分析與外部API之間的通道就是通過(guò)它指定DFX文件完成的。

選擇dfx文件時(shí)是不是發(fā)現(xiàn)步驟三中創(chuàng)建的dfx被列出來(lái)了,前因后果這下明白了吧,猜對(duì)了,這個(gè)列表默認(rèn)就是把[安裝根目錄](méi)\report\web\webapps\demo\WEB-INF\files\dfx這個(gè)目錄下的所有dfx列出。想要修改這個(gè)目錄路徑也是ok的,在 "[demo 應(yīng)用根目錄](méi)/raqsoft/guide/jsp/olap.jsp" 中添加 JS API 進(jìn)行指定,如下圖所示:

程序數(shù)據(jù)集上的多維分析

選擇dfx文件,傳遞參數(shù)值,點(diǎn)擊 查詢數(shù)據(jù),緩存入文件 保存,數(shù)據(jù)集就創(chuàng)建完成了!

 

接下來(lái)馬上又到了每日開(kāi)心一刻了,任性拖拽無(wú)人阻攔,哈哈!

點(diǎn)擊【添加報(bào)表】,選擇數(shù)據(jù)集,填寫(xiě)報(bào)表名稱(chēng)【確定】

程序數(shù)據(jù)集上的多維分析

程序數(shù)據(jù)集上的多維分析

程序數(shù)據(jù)集上的多維分析

  

添加報(bào)表后,數(shù)據(jù)集返回的表結(jié)構(gòu)指標(biāo)就這樣赤裸裸的出來(lái)了,接下來(lái)就可以拖拖拽拽查看指標(biāo)內(nèi)容了。咋樣,有沒(méi)有發(fā)現(xiàn)其實(shí)這種調(diào)用JavaAPI的程序數(shù)據(jù)集也挺好使,只要先把自定義類(lèi)做好就相當(dāng)于完成一大半了,集算器dfx只是起到了個(gè)中間調(diào)用的作用。

程序數(shù)據(jù)集上的多維分析

API返回的程序數(shù)據(jù)不僅可以是txt文本串,還可以是json串。關(guān)于json串在多維分析的調(diào)用我們也有攻略幫您解決,其實(shí)很簡(jiǎn)單,API里的內(nèi)容由您自己做主,只要最終返回的是json串就行,這里主要就是變通一下步驟三dfx文件中對(duì)json串的處理。

dfx內(nèi)容作如下修改:


A

1

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

2

=json(A1)

3

return A2

 

訪問(wèn)多維分析頁(yè)面,添加dfx文件類(lèi)型的數(shù)據(jù)集。

 

程序數(shù)據(jù)集上的多維分析

程序數(shù)據(jù)集上的多維分析

聰明的你,看到這里應(yīng)該什么都明白了吧?其實(shí)換湯不換藥,重點(diǎn)都在dfx文件上,只是API返回的類(lèi)型不同,在dfx中處理方法不同罷了。

 

訪問(wèn) Webservice

提起Webservice一定都不陌生,一款跨編程語(yǔ)言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù)。關(guān)于Webservice的使用原理小編就不班門(mén)弄斧在高手面前顯擺了,相信作為資深程序猿的您早已對(duì)它了如指掌了吧,哈哈

那在我們多維分析里是否能調(diào)用這種遠(yuǎn)程接口呢?答案必須是肯定的,當(dāng)然能!

我們已經(jīng)做了全方位考量,不僅能調(diào)用JavaApi還能調(diào)用Webservice接口,方法和JavaApi的調(diào)用大致類(lèi)同,具體是哪里相同哪里類(lèi)同請(qǐng)看下例分曉。

下面以手機(jī)號(hào)碼歸屬地查詢作為示例,介紹對(duì)WebService的調(diào)用(本例使用的WebService服務(wù)是國(guó)內(nèi)官方的手機(jī)號(hào)碼歸屬地查詢所在的服務(wù)):

步驟一:

在集算器設(shè)計(jì)器中新建 webTest.dfx,添加網(wǎng)格內(nèi)容

 


A

B

C

1

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

//手機(jī)號(hào)


2

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

//訪問(wèn)國(guó)內(nèi)手機(jī)號(hào)碼歸屬地查詢WEB服務(wù)


3

=create(手機(jī)號(hào),省份,城市,卡類(lèi)型)

//創(chuàng)建序表


4

for A1

//使用for循環(huán),逐個(gè)查詢手機(jī)號(hào)的歸屬地等信息


5


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

//傳入手機(jī)號(hào),從服務(wù)器查詢手機(jī)號(hào)歸屬地

6


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


7


=A3.record@i(B6,0)

//將查詢結(jié)果作為記錄插入A3序表中

8

return A3



 

保存后將 dfx 文件放至[安裝根目錄](méi)\report\web\webapps\demo\WEB-INF\files\dfx目錄下。

步驟二:

多維分析中添加 dfx 文件數(shù)據(jù)集

選擇dfx文件,傳遞參數(shù)值,點(diǎn)擊 查詢數(shù)據(jù),緩存入文件 保存,數(shù)據(jù)集就創(chuàng)建完成了!

程序數(shù)據(jù)集上的多維分析

dfx下拉列表里的文件是從哪里讀取的,還用小編再提一下嗎?嘻嘻,鞏固下記憶吧,這個(gè)列表默認(rèn)就是把[安裝根目錄](méi)\report\web\webapps\demo\WEB-INF\files\dfx這個(gè)目錄下的所有dfx列出。不過(guò)這個(gè)路徑也是可以修改的,修改方法和JavaApi里使用時(shí)的修改方法一樣。

數(shù)據(jù)集創(chuàng)建完成后,接下來(lái)就是拖拽指標(biāo)進(jìn)行分析了

點(diǎn)擊【添加報(bào)表】,選擇數(shù)據(jù)集,填寫(xiě)報(bào)表名稱(chēng)【確定】

程序數(shù)據(jù)集上的多維分析

程序數(shù)據(jù)集上的多維分析

程序數(shù)據(jù)集上的多維分析

將指標(biāo)拖拽到右側(cè)數(shù)據(jù)顯示區(qū),這樣一來(lái),從WebService服務(wù)器獲取的手機(jī)歸屬地的信息就展現(xiàn)在我們眼前了,是不是很方便呢?

程序數(shù)據(jù)集上的多維分析

利用 Tag 標(biāo)簽添加 dfx 數(shù)據(jù)集

上面兩種程序數(shù)據(jù)集在多維分析使用時(shí)都是通過(guò)界面數(shù)據(jù)集菜單配置的dfx數(shù)據(jù)集,其實(shí)還可以通過(guò)Tag標(biāo)簽添加。

在Tag標(biāo)簽的使用與之前講的SQL數(shù)據(jù)集大同小異,只是屬性略有不同。

Tag標(biāo)簽添加dfx數(shù)據(jù)集:

dfxFile="WEB-INF/files/dfx/txtTest.dfx" //指定相對(duì)于web根目錄的dfx文件

dfxParams="pathName='D:/2.json';" //dfx所需的參數(shù) … …

/>

在Tag標(biāo)簽中添加dfx數(shù)據(jù)集,訪問(wèn)多維分析頁(yè)面時(shí)會(huì)將該數(shù)據(jù)集默認(rèn)作為初始數(shù)據(jù)集,并直接將結(jié)果集以明細(xì)的形式展現(xiàn)在頁(yè)面中。

程序數(shù)據(jù)集上的多維分析

 

叮叮叮,關(guān)于JavaApi和Webservice程序接口的訪問(wèn)到此就介紹完了,通過(guò)對(duì)本篇文章的學(xué)習(xí),一定更能領(lǐng)會(huì)我們多維分析的妙處了吧。使用dfx數(shù)據(jù)集訪問(wèn)程序數(shù)據(jù)集是直接借用集算器函數(shù)輕松引入程序數(shù)據(jù)集結(jié)果,當(dāng)然,除此之外還能利用集算器的計(jì)算能力,對(duì)程序數(shù)據(jù)集的結(jié)果做二次處理,最終在界面上做拖拽分組、聚合、過(guò)濾等等數(shù)據(jù)分析動(dòng)作。

但是,我要說(shuō)但是,這里都用到了集算器的腳本,而自寫(xiě)腳本的功能是不包含在基本潤(rùn)乾報(bào)表中的,也就是說(shuō)需要花錢(qián)滴。嗯,聽(tīng)起來(lái)有點(diǎn)悲傷,不過(guò),認(rèn)真關(guān)注乾學(xué)院,后面我們會(huì)主動(dòng)提供辦法讓你繞過(guò)這個(gè)檢查,還是不花錢(qián),一定要關(guān)注,不可錯(cuò)過(guò)喲!

其實(shí)兩種程序接口類(lèi)型在多維分析的使用中是有一定的共同點(diǎn)的,下圖就能直觀的讓我們看到區(qū)別: 

程序數(shù)據(jù)集上的多維分析

JavaAPI和WebService兩種程序數(shù)據(jù)集上的多維分析都是使用的dfx數(shù)據(jù)集,不同點(diǎn)是dfx文件中使用的函數(shù)不同,這是關(guān)鍵點(diǎn)!JavaApi時(shí)是先將程序接口進(jìn)行封裝,然后在集算器中使用invoke函數(shù)調(diào)用自定義類(lèi)。WebService時(shí)則是直接使用函數(shù)遠(yuǎn)程訪問(wèn)官方手機(jī)號(hào)碼歸屬地查詢所在的服務(wù)器獲取手機(jī)號(hào)歸屬地?cái)?shù)據(jù)。

其實(shí),如果想實(shí)現(xiàn)高性能還可以直接用二進(jìn)制格式,但就需要學(xué)習(xí)集算器的數(shù)據(jù)類(lèi)型及相關(guān)API了。此處就不過(guò)多介紹了。還是那句話,更多關(guān)于集算器的學(xué)習(xí)可參考幫助文檔《 函數(shù)參考 》、《 教程 》。

好了,本篇文章雖然講完了,但它卻已成為我們之間交友學(xué)習(xí)的開(kāi)端,還在猶豫什么,快來(lái)加入乾學(xué)院吧,帶你了解更膩害的多維分析。


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


本文名稱(chēng):程序數(shù)據(jù)集上的多維分析
本文鏈接:http://weahome.cn/article/picjhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部