免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Java如何遠(yuǎn)程調(diào)用SPL腳本-創(chuàng)新互聯(lián)

在《Java 如何調(diào)用 SPL 腳本》中我們介紹了在 Java 中可以部署集算器 JDBC 來(lái)調(diào)用本地 SPL 腳本,那如何能在 Java 中遠(yuǎn)程調(diào)用 SPL 腳本呢?這就是接下來(lái)要說(shuō)的重點(diǎn)!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了清澗免費(fèi)建站歡迎大家使用!

實(shí)現(xiàn)思路通過(guò)下圖一目了然:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

部署服務(wù)器

服務(wù)器是運(yùn)行在 Java 平臺(tái)上面向分析型的高性能數(shù)據(jù)庫(kù),作為高性能計(jì)算數(shù)據(jù)倉(cāng)庫(kù),服務(wù)器可以在離線(xiàn)跑批、在線(xiàn)查詢(xún)、多維分析和內(nèi)存計(jì)算等方面提供高效的計(jì)算輸出,幫助用戶(hù)解決計(jì)算中的多種問(wèn)題。

下面我們先來(lái)了解一下服務(wù)器的使用及配置,更多關(guān)于服務(wù)器的介紹可參考集算器在線(xiàn)文檔《教程》服務(wù)器小節(jié)。

1. 服務(wù)器配置

在集算器安裝目錄的 esProc\bin 路徑下,可以找到 esprocs.exe 文件,可以直接運(yùn)行它來(lái)啟動(dòng)或配置服務(wù)器。使用 esprocs 時(shí),會(huì)自動(dòng)在安裝路徑下加載所需的 jar 包,但是需要注意此時(shí)使用的配置文件 raqsoftConfig.xml 和 unitServer.xml 必須放置在集算器安裝目錄的 esProc\config 路徑下。運(yùn)行后,打開(kāi)窗口如下:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

在 esprocs.exe 執(zhí)行時(shí),窗口中會(huì)顯示加載初始設(shè)定的信息,這些設(shè)定實(shí)際上是由配置文件 raqsoftConfig.xml 決定的。在右側(cè)的菜單欄中點(diǎn)擊 Options,可以配置服務(wù)器的相關(guān)信息,點(diǎn)擊后彈出服務(wù)器配置窗口如下:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

在頁(yè)面中,可以配置授權(quán)文件、主路徑、尋址路徑、日期時(shí)間格式、默認(rèn)字符編碼、日志等級(jí)、文件緩存區(qū)字節(jié)數(shù)等信息。

下面我們繼續(xù)來(lái)了解服務(wù)器的配置,在右側(cè)的菜單欄中點(diǎn)擊 Config,可以配置分機(jī)的相關(guān)信息,點(diǎn)擊后在 Unit 頁(yè)面中可以配置分機(jī)信息,如下:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

Temp file timeout 設(shè)定臨時(shí)文件的生命周期小時(shí)數(shù);Check interval 必須設(shè)定為正值或 0,為檢查過(guò)期的間隔秒數(shù);Proxy timeout 為代理生命周期,即遠(yuǎn)程游標(biāo)、任務(wù)空間的生命小時(shí)數(shù)。如果 Temp file timeout 或者 Proxy timeout 設(shè)定為 0,則不檢查過(guò)期。

分機(jī)列表 Host list 中,可以配置本機(jī)上所有可能用來(lái)運(yùn)行服務(wù)器的分機(jī),配置它們的 IP 地址,在進(jìn)程列表 Process list 中,可以為一個(gè) IP 地址配置多個(gè)進(jìn)程的端口 Port,其中第一個(gè)為主進(jìn)程。服務(wù)器啟動(dòng)時(shí),會(huì)自動(dòng)在分機(jī)列表中,尋找有空閑進(jìn)程的分機(jī),然后再由分機(jī)將任務(wù)交由某個(gè)進(jìn)程執(zhí)行。需要注意的是,IP 地址需要是本機(jī)的真實(shí) IP,在使用多網(wǎng)卡的情況下可以設(shè)定多個(gè) IP。

分機(jī)配置中,Max task number 是該分機(jī)允許執(zhí)行的大作業(yè)數(shù),而 Preferred task number 是該分機(jī)的適合作業(yè)數(shù),當(dāng)分機(jī)中使用了多個(gè)進(jìn)程時(shí),適合作業(yè)數(shù)就是分進(jìn)程的總數(shù)。在 Partitions 一欄中,可以選擇每個(gè)分機(jī)上所使用的分區(qū)。

服務(wù)器的 Enable clients 頁(yè)面中可以設(shè)定客戶(hù)端白名單,如下:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

選定 Check clients 后,可以在 Clients hosts 列表中,設(shè)定允許調(diào)用服務(wù)器的 IP 地址白名單,不在設(shè)定范圍中的 IP 地址將無(wú)法調(diào)用服務(wù)器執(zhí)行計(jì)算。

服務(wù)器設(shè)定完成后,點(diǎn)擊 OK,此時(shí)可以自動(dòng)設(shè)定對(duì)應(yīng)的配置文件 unitServer.xml 如下:

<?xml?version="1.0"?encoding="UTF-8"?>

<SERVER?Version="3">

<TempTimeOut>12</TempTimeOut>

<Interval>1800</Interval>

<ProxyTimeOut>12</ProxyTimeOut>

<Hosts>

<Host?ip="192.168.107.1"?maxTaskNum="8"?preferredTaskNum="3">

<Partitions>

<Partition?name="0"?path="d:/file/parallel/node1/0">

</Partition>

<Partition?name="1"?path="d:/file/parallel/node1/1">

</Partition>

</Partitions>

<Units>

<Unit?port="8281">

</Unit>

<Unit?port="8282">

</Unit>

</Units>

</Host>

</Hosts>

<EnabledClients?check="true">

<Host?start="192.168.107.1"?end="192.168.107.1">

</Host>

</EnabledClients>

</SERVER><?xml?version="1.0"?encoding="UTF-8"?><SERVER?Version="3"><TempTimeOut>12</TempTimeOut><Interval>1800</Interval><ProxyTimeOut>12</ProxyTimeOut><Hosts><Host?ip="192.168.107.1"?maxTaskNum="8"?preferredTaskNum="3"><Partitions><Partition?name="0"?path="d:/file/parallel/node1/0"></Partition><Partition?name="1"?path="d:/file/parallel/node1/1"></Partition></Partitions><Units><Unit?port="8281"></Unit><Unit?port="8282"></Unit></Units></Host></Hosts><EnabledClients?check="true"><Host?start="192.168.107.1"?end="192.168.107.1"></Host></EnabledClients></SERVER>

2. 運(yùn)行服務(wù)器

服務(wù)器配置完成后,在分機(jī)運(yùn)行窗口中,點(diǎn)擊 Start 即可開(kāi)始運(yùn)行服務(wù)器,需要停止服務(wù)可以點(diǎn)擊 Stop,服務(wù)器停止后可以點(diǎn)擊 Quit 退出。如果點(diǎn)擊 Reset,服務(wù)將初始化重新啟動(dòng),清除所有的全局變量以及內(nèi)存區(qū)。

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

在分機(jī)啟動(dòng)時(shí),設(shè)置的各個(gè)進(jìn)程會(huì)同時(shí)啟動(dòng),可以點(diǎn)擊 Main 查看分機(jī)主進(jìn)程的執(zhí)行情況,或者點(diǎn)擊對(duì)應(yīng)的端口號(hào)查看分機(jī)的其它分進(jìn)程執(zhí)行頁(yè)面。

在 Linux 系統(tǒng)中,可以運(yùn)行 ServerConsole.sh 來(lái)啟動(dòng)服務(wù)器類(lèi):

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

打開(kāi)的分機(jī)運(yùn)行窗口和在 Windows 下是相同的:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

此外,還可以在執(zhí)行命令時(shí)添加 -p 參數(shù),非圖形啟動(dòng)服務(wù)器,此時(shí)服務(wù)器將直接執(zhí)行:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

部署集算器 JDBC

將啟動(dòng) JAVA 應(yīng)用程序時(shí)加載集算器所需的 jar 包及配置文件放到項(xiàng)目中。需要注意的是,集算器 JDBC 所要求的 JDK 版本不得低于 1.6。

1. 加載驅(qū)動(dòng) jar

集算器 JDBC 類(lèi)似一個(gè)不帶物理表的數(shù)據(jù)庫(kù) JDBC 驅(qū)動(dòng),可以把它簡(jiǎn)單的看成是一個(gè)只有存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù)。另外,集算器 JDBC 是個(gè)完全嵌入式計(jì)算引擎,已經(jīng)在 JDBC 中完成了所有運(yùn)算,不象數(shù)據(jù)庫(kù)那樣 JDBC 只是個(gè)接口,實(shí)際運(yùn)算在獨(dú)立的數(shù)據(jù)庫(kù)服務(wù)器完成。

如果在 web 應(yīng)用項(xiàng)目下,可以把這些 jar 包放在 WEB-INF/lib 目錄下。集算器 JDBC 需要三個(gè)基礎(chǔ) jar 包,都可以在 [安裝目錄](méi)\esProc\lib 目錄下找到:

dm.jar?//集算器計(jì)算引擎及JDBC驅(qū)動(dòng)包

icu4j_3_4_5.jar?//處理國(guó)際化

jdom.jar??//解析配置文件dm.jar?//集算器計(jì)算引擎及JDBC驅(qū)動(dòng)包icu4j_3_4_5.jar?//處理國(guó)際化jdom.jar??//解析配置文件

除了以上的必需 jar,還有一些為完成特定功能的 jar 包:

比如數(shù)據(jù)庫(kù)作為數(shù)據(jù)源,那么還需要相應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng) jar 包;
要讀寫(xiě) Office 文件,則需要加入 poi*.jar 和 xmlbeans.jar; 要使用繪制圖形功能,則需要加入 SVG 圖形處理相關(guān)的 jar 包,包括 batik*.jar、js.jar、pdf-transcoder.jar、xalan-2.6.0.jar、xercesImpl.jar、xml-apis.jar、xml-apis-ext.jar。

2. 部署 raqsoftConfig.xml

集算器還有個(gè)重要的配置文件 raqsoftConfig.xml,可以在 [安裝目錄](méi)\esProc\config 下找到,需復(fù)制后放置在應(yīng)用項(xiàng)目的類(lèi)路徑下,配置文件的名稱(chēng)不可改變。

在 raqsoftConfig.xml 文件中,配置了授權(quán)信息、集算器主路徑、dfx 文件尋址路徑、JDBC 遠(yuǎn)程訪(fǎng)問(wèn)的服務(wù)器地址等各類(lèi)信息。我們先看下最基本的配置,即集算器授權(quán)文件和服務(wù)器地址的配置:

<?xml?version="1.0"?encoding="?UTF-8"?>??
<Config?Version="2">??
?<Runtime>??
?<Esproc>??
????<!--集算器授權(quán)文件配置,可以是絕對(duì)路徑,也可以是相對(duì)路徑,使用相對(duì)路徑時(shí)是相對(duì)于類(lèi)路徑-->??
????<license>esproc.xml</license>??
????<!--試用授權(quán)文件可從潤(rùn)乾公司官網(wǎng)中下載-->??
?</Esproc>??
?</Runtime>??
<JDBC>??
<!--配置JDBC需遠(yuǎn)程訪(fǎng)問(wèn)的服務(wù)器地址-->??
<Units>??
<!--為方便多機(jī)熱備,可配置多臺(tái)服務(wù)器地址,添加多個(gè)<Unit></Unit>節(jié)點(diǎn)-->??
<Unit>192.168.107.1:8281</Unit>??
</Units>????????????????
?</JDBC>??
</Config><?xml?version="1.0"?encoding="?UTF-8"?>??<Config?Version="2">???<Runtime>???<Esproc>??????<!--集算器授權(quán)文件配置,可以是絕對(duì)路徑,也可以是相對(duì)路徑,使用相對(duì)路徑時(shí)是相對(duì)于類(lèi)路徑-->??????<license>esproc.xml</license>??????<!--試用授權(quán)文件可從潤(rùn)乾公司官網(wǎng)中下載-->???</Esproc>???</Runtime>??<JDBC>??<!--配置JDBC需遠(yuǎn)程訪(fǎng)問(wèn)的服務(wù)器地址-->??<Units>??<!--為方便多機(jī)熱備,可配置多臺(tái)服務(wù)器地址,添加多個(gè)<Unit/>節(jié)點(diǎn)-->??<Unit>192.168.107.1:8281</Unit>??</Units>????????????????
?</JDBC>??</Config>

Java 調(diào)用

接下來(lái)我們以訪(fǎng)問(wèn)服務(wù)器上的數(shù)據(jù)文件為例,介紹如何在 Java 中遠(yuǎn)程訪(fǎng)問(wèn)服務(wù)器。

Java 通過(guò) SPL 不僅可以訪(fǎng)問(wèn)本地文件,還能遠(yuǎn)程訪(fǎng)問(wèn)服務(wù)器上的數(shù)據(jù)文件,其中包括 Txt、Excel、Json、Csv、Ctx 等多種類(lèi)型的文件。

訪(fǎng)問(wèn)時(shí)可以通過(guò)絕對(duì)路徑查文件位置,也可以通過(guò)相對(duì)路徑查找。這里的絕對(duì)路徑和相對(duì)路徑都是會(huì)到服務(wù)器上去找。使用相對(duì)路徑時(shí),則是相對(duì)于服務(wù)器中 raqsoftConfig.xml 配置文件中的主目錄,所以,首先我們來(lái)配置下服務(wù)器上的主目錄:

在 raqsoftConfig.xml 文件的節(jié)點(diǎn)中添加以下節(jié)點(diǎn):

<!--集算器主路徑,該路徑為單一的絕對(duì)路徑-->

?<mainPath>D:\\mainFile</mainPath><!--集算器主路徑,該路徑為單一的絕對(duì)路徑-->

?<mainPath>D:\\mainFile</mainPath>

我們把要調(diào)用的文件 employee.txt 放到服務(wù)器的主目錄下面,Java 代碼如下:

public??void?runSPL()?throws?ClassNotFoundException,?SQLException{??
????Connection?con?=?null;??
????PreparedStatement?st;??
????ResultSet?set?;??
????//建立連接??
????Class.forName("com.esproc.jdbc.InternalDriver");??
//onlyServer用于控制當(dāng)前jdbc是否對(duì)服務(wù)器進(jìn)行遠(yuǎn)程計(jì)算,為true表示遠(yuǎn)程計(jì)算;false時(shí)表示本地計(jì)算??
//注意:屬性值為false,當(dāng)SPL語(yǔ)句使用call?dfx或dfx時(shí),會(huì)先使用本地計(jì)算,如未計(jì)算成功則會(huì)進(jìn)行遠(yuǎn)程計(jì)算??
????con=?DriverManager.getConnection("jdbc:esproc:local://?onlyServer=true");??
????//直接執(zhí)行SPL語(yǔ)句,返回結(jié)果集??
????st?=?(PreparedStatement)con.createStatement();??
????ResultSet?rs?=?st.executeQuery("$select?*?from?employee.txt");??
?????
????//簡(jiǎn)單處理結(jié)果集,將結(jié)果集中的字段名與數(shù)據(jù)輸出???
????ResultSetMetaData?rsmd?=?rs.getMetaData();??
????int?colCount?=?rsmd.getColumnCount();??
????for?(?int??c?=?1;?c?<=?colCount;c++)?{??
????String?title?=?rsmd.getColumnName(c);??
????if(?c?>?1?)?{??
????????System.out.print("\t");??
????}??
????else?{??
????????System.out.print("\n");??
????}??
????????System.out.print(title);??
??}??
????while?(rs.next())?{??
?????for(int?c?=?1;?c<=?colCount;?c++)?{??
???????if?(?c?>?1?)?{??
????????????System.out.print("\t");??
??}??
???????else?{??
????????????System.out.print("\n");??
??}??
?????Object?o?=?rs.getObject(c);??
?????System.out.print(o.toString());??
??}??
??}??
???//關(guān)閉連接??
???if?(con!=null)?{??
????????con.close();??
???}??
}public??void?runSPL()?throws?ClassNotFoundException,?SQLException{??
????Connection?con?=?null;??
????PreparedStatement?st;??
????ResultSet?set?;??
????//建立連接??????Class.forName("com.esproc.jdbc.InternalDriver");??
//onlyServer用于控制當(dāng)前jdbc是否對(duì)服務(wù)器進(jìn)行遠(yuǎn)程計(jì)算,為true表示遠(yuǎn)程計(jì)算;false時(shí)表示本地計(jì)算??//注意:屬性值為false,當(dāng)SPL語(yǔ)句使用call?dfx或dfx時(shí),會(huì)先使用本地計(jì)算,如未計(jì)算成功則會(huì)進(jìn)行遠(yuǎn)程計(jì)算??????con=?DriverManager.getConnection("jdbc:esproc:local://?onlyServer=true");??
????//直接執(zhí)行SPL語(yǔ)句,返回結(jié)果集??????st?=?(PreparedStatement)con.createStatement();??
????ResultSet?rs?=?st.executeQuery("$select?*?from?employee.txt");??
?????
????//簡(jiǎn)單處理結(jié)果集,將結(jié)果集中的字段名與數(shù)據(jù)輸出???????ResultSetMetaData?rsmd?=?rs.getMetaData();??
????int?colCount?=?rsmd.getColumnCount();??
????for?(?int??c?=?1;?c?<=?colCount;c++)?{??
????String?title?=?rsmd.getColumnName(c);??
????if(?c?>?1?)?{??
????????System.out.print("\t");??
????}??
????else?{??
????????System.out.print("\n");??
????}??
????????System.out.print(title);??
??}??
????while?(rs.next())?{??
?????for(int?c?=?1;?c<=?colCount;?c++)?{??
???????if?(?c?>?1?)?{??
????????????System.out.print("\t");??
??}??
???????else?{??
????????????System.out.print("\n");??
??}??
?????Object?o?=?rs.getObject(c);??
?????System.out.print(o.toString());??
??}??
??}??
???//關(guān)閉連接?????if?(con!=null)?{??
????????con.close();??
???}??
}

執(zhí)行結(jié)果:

Java 如何遠(yuǎn)程調(diào)用 SPL 腳本

總結(jié)

通過(guò)上面的使用,相信您已經(jīng)了解遠(yuǎn)程訪(fǎng)問(wèn)服務(wù)器的部署核心了吧,沒(méi)錯(cuò)!Java 程序中調(diào)用服務(wù)器上的運(yùn)算與調(diào)用本地的 SPL 運(yùn)算操作步驟其實(shí)大體相同,總結(jié)下主要有如下三點(diǎn)區(qū)別:

1,部署服務(wù)器

2,JDBC 的 raqsoftConfig.xml 中添加服務(wù)器地址

3,在 JDBC 的 url 中添加 onlyServer 屬性,屬性值為 true,始終訪(fǎng)問(wèn)服務(wù)器進(jìn)行遠(yuǎn)程計(jì)算;屬性值為 false,進(jìn)行本地計(jì)算,但當(dāng) SPL 語(yǔ)句為 call dfx 或 dfx 時(shí),會(huì)先在本地計(jì)算,如未計(jì)算成功則會(huì)進(jìn)行遠(yuǎn)程計(jì)算

到此,對(duì)于遠(yuǎn)程調(diào)用 SPL 腳本的介紹就完了,Java 中調(diào)用時(shí)更多 SPL 的用法可參見(jiàn)《Java 如何調(diào)用 SPL 腳本》這里就不再贅述了,當(dāng)然,想要更深入的學(xué)習(xí) SPL 的小伙伴兒還可以去官網(wǎng)上的在線(xiàn)教程中查看。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱(chēng):Java如何遠(yuǎn)程調(diào)用SPL腳本-創(chuàng)新互聯(lián)
鏈接地址:http://m.newbst.com/article22/depejc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作云服務(wù)器企業(yè)網(wǎng)站制作網(wǎng)站營(yíng)銷(xiāo)建站公司網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)