|
在《Java 如何調(diào)用 SPL 腳本》中我們介紹了在 Java 中可以部署集算器 JDBC 來調(diào)用本地 SPL 腳本,那如何能在 Java 中遠程調(diào)用 SPL 腳本呢?這就是接下來要說的重點! 實現(xiàn)思路通過下圖一目了然:
部署服務(wù)器服務(wù)器是運行在 Java 平臺上面向分析型的高性能數(shù)據(jù)庫,作為高性能計算數(shù)據(jù)倉庫,服務(wù)器可以在離線跑批、在線查詢、多維分析和內(nèi)存計算等方面提供高效的計算輸出,幫助用戶解決計算中的多種問題。 下面我們先來了解一下服務(wù)器的使用及配置,更多關(guān)于服務(wù)器的介紹可參考集算器在線文檔《教程》服務(wù)器小節(jié)。 1. 服務(wù)器配置在集算器安裝目錄的 esProc\bin 路徑下,可以找到 esprocs.exe 文件,可以直接運行它來啟動或配置服務(wù)器。使用 esprocs 時,會自動在安裝路徑下加載所需的 jar 包,但是需要注意此時使用的配置文件 raqsoftConfig.xml 和 unitServer.xml 必須放置在集算器安裝目錄的 esProc\config 路徑下。運行后,打開窗口如下:
在 esprocs.exe 執(zhí)行時,窗口中會顯示加載初始設(shè)定的信息,這些設(shè)定實際上是由配置文件 raqsoftConfig.xml 決定的。在右側(cè)的菜單欄中點擊 Options,可以配置服務(wù)器的相關(guān)信息,點擊后彈出服務(wù)器配置窗口如下:
在頁面中,可以配置授權(quán)文件、主路徑、尋址路徑、日期時間格式、默認字符編碼、日志等級、文件緩存區(qū)字節(jié)數(shù)等信息。 下面我們繼續(xù)來了解服務(wù)器的配置,在右側(cè)的菜單欄中點擊 Config,可以配置分機的相關(guān)信息,點擊后在 Unit 頁面中可以配置分機信息,如下:
Temp file timeout 設(shè)定臨時文件的生命周期小時數(shù);Check interval 必須設(shè)定為正值或 0,為檢查過期的間隔秒數(shù);Proxy timeout 為代理生命周期,即遠程游標、任務(wù)空間的生命小時數(shù)。如果 Temp file timeout 或者 Proxy timeout 設(shè)定為 0,則不檢查過期。 分機列表 Host list 中,可以配置本機上所有可能用來運行服務(wù)器的分機,配置它們的 IP 地址,在進程列表 Process list 中,可以為一個 IP 地址配置多個進程的端口 Port,其中第一個為主進程。服務(wù)器啟動時,會自動在分機列表中,尋找有空閑進程的分機,然后再由分機將任務(wù)交由某個進程執(zhí)行。需要注意的是,IP 地址需要是本機的真實 IP,在使用多網(wǎng)卡的情況下可以設(shè)定多個 IP。 分機配置中,Max task number 是該分機允許執(zhí)行的最大作業(yè)數(shù),而 Preferred task number 是該分機的適合作業(yè)數(shù),當分機中使用了多個進程時,適合作業(yè)數(shù)就是分進程的總數(shù)。在 Partitions 一欄中,可以選擇每個分機上所使用的分區(qū)。 服務(wù)器的 Enable clients 頁面中可以設(shè)定客戶端白名單,如下:
選定 Check clients 后,可以在 Clients hosts 列表中,設(shè)定允許調(diào)用服務(wù)器的 IP 地址白名單,不在設(shè)定范圍中的 IP 地址將無法調(diào)用服務(wù)器執(zhí)行計算。 服務(wù)器設(shè)定完成后,點擊 OK,此時可以自動設(shè)定對應(yīng)的配置文件 unitServer.xml 如下: 2. 運行服務(wù)器服務(wù)器配置完成后,在分機運行窗口中,點擊 Start 即可開始運行服務(wù)器,需要停止服務(wù)可以點擊 Stop,服務(wù)器停止后可以點擊 Quit 退出。如果點擊 Reset,服務(wù)將初始化重新啟動,清除所有的全局變量以及內(nèi)存區(qū)。
在分機啟動時,設(shè)置的各個進程會同時啟動,可以點擊 Main 查看分機主進程的執(zhí)行情況,或者點擊對應(yīng)的端口號查看分機的其它分進程執(zhí)行頁面。 在 Linux 系統(tǒng)中,可以運行 ServerConsole.sh 來啟動服務(wù)器類:
打開的分機運行窗口和在 Windows 下是相同的:
此外,還可以在執(zhí)行命令時添加 -p 參數(shù),非圖形啟動服務(wù)器,此時服務(wù)器將直接執(zhí)行:
部署集算器 JDBC將啟動 JAVA 應(yīng)用程序時加載集算器所需的 jar 包及配置文件放到項目中。需要注意的是,集算器 JDBC 所要求的 JDK 版本不得低于 1.6。 1. 加載驅(qū)動 jar集算器 JDBC 類似一個不帶物理表的數(shù)據(jù)庫 JDBC 驅(qū)動,可以把它簡單的看成是一個只有存儲過程的數(shù)據(jù)庫。另外,集算器 JDBC 是個完全嵌入式計算引擎,已經(jīng)在 JDBC 中完成了所有運算,不象數(shù)據(jù)庫那樣 JDBC 只是個接口,實際運算在獨立的數(shù)據(jù)庫服務(wù)器完成。 如果在 web 應(yīng)用項目下,可以把這些 jar 包放在 WEB-INF/lib 目錄下。集算器 JDBC 需要三個基礎(chǔ) jar 包,都可以在 [安裝目錄]\esProc\lib 目錄下找到: 除了以上的必需 jar,還有一些為完成特定功能的 jar 包: 比如數(shù)據(jù)庫作為數(shù)據(jù)源,那么還需要相應(yīng)數(shù)據(jù)庫的驅(qū)動 jar 包; 2. 部署 raqsoftConfig.xml集算器還有個重要的配置文件 raqsoftConfig.xml,可以在 [安裝目錄]\esProc\config 下找到,需復(fù)制后放置在應(yīng)用項目的類路徑下,配置文件的名稱不可改變。 在 raqsoftConfig.xml 文件中,配置了授權(quán)信息、集算器主路徑、dfx 文件尋址路徑、JDBC 遠程訪問的服務(wù)器地址等各類信息。我們先看下最基本的配置,即集算器授權(quán)文件和服務(wù)器地址的配置: Java 調(diào)用接下來我們以訪問服務(wù)器上的數(shù)據(jù)文件為例,介紹如何在 Java 中遠程訪問服務(wù)器。 Java 通過 SPL 不僅可以訪問本地文件,還能遠程訪問服務(wù)器上的數(shù)據(jù)文件,其中包括 Txt、Excel、Json、Csv、Ctx 等多種類型的文件。 訪問時可以通過絕對路徑查文件位置,也可以通過相對路徑查找。這里的絕對路徑和相對路徑都是會到服務(wù)器上去找。使用相對路徑時,則是相對于服務(wù)器中 raqsoftConfig.xml 配置文件中的主目錄,所以,首先我們來配置下服務(wù)器上的主目錄: 在 raqsoftConfig.xml 文件的節(jié)點中添加以下節(jié)點: 我們把要調(diào)用的文件 employee.txt 放到服務(wù)器的主目錄下面,Java 代碼如下: 執(zhí)行結(jié)果:
總結(jié)通過上面的使用,相信您已經(jīng)了解遠程訪問服務(wù)器的部署核心了吧,沒錯!Java 程序中調(diào)用服務(wù)器上的運算與調(diào)用本地的 SPL 運算操作步驟其實大體相同,總結(jié)下主要有如下三點區(qū)別: 1,部署服務(wù)器 2,JDBC 的 raqsoftConfig.xml 中添加服務(wù)器地址 3,在 JDBC 的 url 中添加 onlyServer 屬性,屬性值為 true,始終訪問服務(wù)器進行遠程計算;屬性值為 false,進行本地計算,但當 SPL 語句為 call dfx 或 dfx 時,會先在本地計算,如未計算成功則會進行遠程計算 到此,對于遠程調(diào)用 SPL 腳本的介紹就完了,Java 中調(diào)用時更多 SPL 的用法可參見《Java 如何調(diào)用 SPL 腳本》這里就不再贅述了,當然,想要更深入的學習 SPL 的小伙伴兒還可以去官網(wǎng)上的在線教程中查看。 |
|
|
來自: raqsoft > 《集算器&潤乾報表》