成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

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

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

部署服務(wù)器

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

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

1. 服務(wù)器配置

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

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

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

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

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

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

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

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

分機(jī)列表 Host list 中,可以配置本機(jī)上所有可能用來運(yùn)行服務(wù)器的分機(jī),配置它們的 IP 地址,在進(jìn)程列表 Process list 中,可以為一個(gè) IP 地址配置多個(gè)進(jìn)程的端口 Port,其中第一個(gè)為主進(jìn)程。服務(wù)器啟動(dòng)時(shí),會自動(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 頁面中可以設(shè)定客戶端白名單,如下:

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

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

服務(wù)器設(shè)定完成后,點(diǎn)擊 OK,此時(shí)可以自動(dòng)設(shè)定對應(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 即可開始運(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)程會同時(shí)啟動(dòng),可以點(diǎn)擊 Main 查看分機(jī)主進(jìn)程的執(zhí)行情況,或者點(diǎn)擊對應(yīng)的端口號查看分機(jī)的其它分進(jìn)程執(zhí)行頁面。

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

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

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

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

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

icu4j_3_4_5.jar?//處理國際化

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

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

比如數(shù)據(jù)庫作為數(shù)據(jù)源,那么還需要相應(yīng)數(shù)據(jù)庫的驅(qū)動(dòng) jar 包;
要讀寫 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,可以在 [安裝目錄]\esProc\config 下找到,需復(fù)制后放置在應(yīng)用項(xiàng)目的類路徑下,配置文件的名稱不可改變。

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

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

Java 調(diào)用

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

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

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

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

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

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

?<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是否對服務(wù)器進(jìn)行遠(yuǎn)程計(jì)算,為true表示遠(yuǎn)程計(jì)算;false時(shí)表示本地計(jì)算??
//注意:屬性值為false,當(dāng)SPL語句使用call?dfx或dfx時(shí),會先使用本地計(jì)算,如未計(jì)算成功則會進(jìn)行遠(yuǎn)程計(jì)算??
????con=?DriverManager.getConnection("jdbc:esproc:local://?onlyServer=true");??
????//直接執(zhí)行SPL語句,返回結(jié)果集??
????st?=?(PreparedStatement)con.createStatement();??
????ResultSet?rs?=?st.executeQuery("$select?*?from?employee.txt");??
?????
????//簡單處理結(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是否對服務(wù)器進(jìn)行遠(yuǎn)程計(jì)算,為true表示遠(yuǎn)程計(jì)算;false時(shí)表示本地計(jì)算??//注意:屬性值為false,當(dāng)SPL語句使用call?dfx或dfx時(shí),會先使用本地計(jì)算,如未計(jì)算成功則會進(jìn)行遠(yuǎn)程計(jì)算??????con=?DriverManager.getConnection("jdbc:esproc:local://?onlyServer=true");??
????//直接執(zhí)行SPL語句,返回結(jié)果集??????st?=?(PreparedStatement)con.createStatement();??
????ResultSet?rs?=?st.executeQuery("$select?*?from?employee.txt");??
?????
????//簡單處理結(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é)

通過上面的使用,相信您已經(jīng)了解遠(yuǎn)程訪問服務(wù)器的部署核心了吧,沒錯(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,始終訪問服務(wù)器進(jìn)行遠(yuǎn)程計(jì)算;屬性值為 false,進(jìn)行本地計(jì)算,但當(dāng) SPL 語句為 call dfx 或 dfx 時(shí),會先在本地計(jì)算,如未計(jì)算成功則會進(jìn)行遠(yuǎn)程計(jì)算

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

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

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

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

廣告

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

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