1. 程式人生 > >集算器JDBC

集算器JDBC

集算器JDBC 類似一個不完整的資料庫JDBC驅動,它不帶物理表,可將集算器視為只有儲存過程的資料庫(較強的計算能力,較弱的儲存機制)。與使用資料庫JDBC非常類似,可以像呼叫儲存過程一樣呼叫集算器程式。不同的是,集算器JDBC是個完全嵌入式計算引擎,所有運算都在這個嵌入包中完成,而不象資料庫那樣還有一個獨立的伺服器來實施計算。

1載入驅動jar

集算器JDBC所需jar包括:dm.jarpoi-3.7-20101029.jarlog4j_128.jaricu4j_3_4_5.jardom4j-1.6.1.jar,這5jar包可以在集算器IDE安裝目錄的\esProc\ lib下獲得。在啟動

 java 應用程式時載入上述jar包,如果在web應用下,可以把這些 jar包放在 WEB-INF/lib 目錄下。

值得注意的是,集算器JDBC需要JDK1.6 或以上版本。

2修改配置檔案config.xmldfxConfig.xml

    準備config.xml檔案,這個檔案中包含了集算器的基本配置資訊,如註冊碼、定址路徑、

主目錄、資料來源配置等,它可以在集算器安裝目錄的esProc\config路徑下找到,在部署時可以先調整其中的配置(詳細配置資訊解釋見附錄)。

    配置授權資訊

    在config.xml檔案裡做如下配置:

< regCode>license</regCode>

其中license為授權碼,目前集算器提供了免費的分發版供使用者整合,免費授權碼可在官網上直接獲得。

 config.xml dfxConfig.xml儲存到應用專案的類路徑下。

這裡要注意的是,配置檔案的名稱必須為config.xmldfxConfig.xml不能改變。在配置資料庫連線資訊時,不能迴圈呼叫,不能將集算器JDBC本身作為資料來源在配置中使用。

3部署集算器程式

    將事先編輯好的集算器指令碼(dfx檔案),放到應用專案的類路徑下,也可以放到dfxConfig.xml檔案的<paths/>節點指定的路徑中。

4Java呼叫集算器程式

由於集算器程式可以返回單一結果集,也可以返回多個結果集,這裡分別來看一下。

4.1單結果集

    集算器指令碼

wKiom1QX6Eaz2bKzAACa0MqRBHc552.jpg

Java呼叫

public class CallSingleRS {

public voidtestDataServer(){

        Connection con = null;

        com.esproc.jdbc.InternalCStatement st;

try{

//建立連線

          Class.forName("com.esproc.jdbc.InternalDriver");

          con= (Connection) DriverManager.getConnection("jdbc:esproc:local://");

//呼叫儲存過程,其中singleRsdfx的檔名

          st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call singleRs(?)");

//設定引數

          st.setObject(1,"5");

//執行儲存過程

          st.execute();

//獲取結果集

          ResultSet rs = (ResultSet)st.getResultSet();

    }

catch(Exception e){

           System.out.println(e);

        }

finally{

//關閉連線

if (con!=null) {

try {

              con.close();

            }

catch(Exception e) {

              System.out.println(e);

            }

          }

        }

    }

}

4.2多結果集

    集算器指令碼

wKioL1QX6InTSA6EAACJ7GnszAs914.jpg

Java呼叫

這裡給出主要程式碼,其他部分與上例相同。

//呼叫儲存過程

st =( com.esproc.jdbc.InternalCStatement)con.prepareCall("call MutipleRs()");

//執行儲存過程

boolean hasResult = st.execute();

//當存在返回的結果集時

if (hasResult) {

   //獲取多個結果集

   ResultSet set = st.getResultSet();

   int csize = set.getMetaData().getColumnCount();

   //返回多個結果集時,返回 1 列多行的資料,csize 1

   while (set.next()) {

     Object o = set.getObject(1);

     //本例中,每次可讀出1個序表,分別取出A2A3中的序表

    }

}

相關推薦

JDBC

集算器JDBC 類似一個不完整的資料庫JDBC驅動,它不帶物理表,可將集算器視為只有儲存過程的資料庫(較強的計算能力,較弱的儲存機制)。與使用資料庫JDBC非常類似,可以像呼叫儲存過程一樣呼叫集算器

(倉庫版)發布,黑科技獲得用戶好評

集群組表 並行列存 數據存儲 數據計算 2018年5月16日,集算器(倉庫版)攜帶多項黑科技正式發布。在發布之前的應用驗證中,倉庫版就已經用實力贏得了用戶的好評。北京銀行用戶在評價倉庫版時表示:在數據分析實踐中,高並發訪問、大數據量計算造成的系統響應時間過長的問題,始終沒有得到很好的解決。集算

初體驗

強制 控制臺輸出 有意 包含 根據 main函數 有意義 自動 強烈 1、從經典的Hello, world! 開始先看圖(1):圖(1)新建p1程序文件,在A1格子中輸入=output(“Hello, world!”)。點擊圖(1)中紅圈圈住的三角按鈕,執行p1的代碼,就可

資料分析用它就夠了 | 37 個場景你要用

【報表查詢效能】 1. 資料量大或併發多導致的查詢效能低下,BI 介面拖拽響應很慢 通過集算器編寫更為簡單高效的演算法加速計算程序,提升查詢效能 採用集算器可控儲存和索引機制,為 BI(CUBE)提供高速的資料儲存 2.T+0 實時全量查詢報表涉及資料量大,影響生產系統執

巧用資料

看如下圖所示報表:   這個報表從樣式來看,可以看作是一個簡單的網格式報表,統計著各種收支金額,但因為取數複雜,每個格子的資料都來自一個複雜的 sql 資料集,並且涉及十幾個,乃至幾十個資料集,藍色 區域裡每個格子都需要從各自的資料集裡檢索遍歷,查詢與左表頭關聯的記錄。為了方便體

批量隨機鍵值查詢測試

【摘要】 當資料量巨大時,使用大批量隨機鍵值集獲取對應記錄集合,不僅僅考驗資料庫軟體本身,更在於程式設計師對資料的理解!如何在硬體資源有限的情況下將效能發揮到極致?點選:批量隨機鍵值查詢測試,來乾學院一探究竟! 複製摘要 本次測試主要針對集算器組表索引實現的批量鍵值取數效能,並與 Oracl

資料分析之37 個場景使用到

可閱讀原文:http://c.raqsoft.com.cn/article/1534732238335?r=alice 慢 1、清單式大報表難以及時呈現,採用資料庫分頁方式翻頁效率很差 集算器將計算和呈現做成兩個非同步執行緒,取數執行緒發出 SQL 將資料快取到本地,然後交給呈現執

10 行程式碼實現寫詩機器人

可閱讀原文:http://c.raqsoft.com.cn/article/1536756719594?r=alice 集算器不僅有大資料計算,還有詩和遠方。最近看到不少寫詩機器人的新聞,於是嘗試用集算器簡單地實現一個。這個實現真的很簡單,簡單到只有10幾行程式碼,請看實現步驟:  

10 行程式碼,實現寫詩機器人

集算器不僅有大資料計算,還有詩和遠方。最近看到不少寫詩機器人的新聞,於是嘗試用集算器簡單地實現一個。這個實現真的很簡單,簡單到只有10幾行程式碼,請看實現步驟: 1.下載字典和詩詞 從網上找一個用於分詞的字典檔案,裡面記錄著每個中文詞彙的詞性。我從GitHub上找了一

Oracle與對比測試報告

1.測試目的 針對相同的硬體環境和計算任務,對比Oracle和集算器的效能差異,為客戶選型提供參考。 2.硬體環境 裝置數量:1臺 CPU:16核 Intel(R) Xeon(R) CPU E5620  @ 2.40GHz 記憶體:20G 3.軟體環境 作業系統:CentOS6.4 64位 JDK:1.6

處理兩個序表資料交叉

需求: 集算器指令碼能否把兩個序表的值交叉放,存為一個序表?比如    左右分別是查出的兩個序表,想合併成   分析與實現: 從結果看,要求兩個序表或結果集按照隔行交叉處理,直接的方式就會想到for迴圈。不過集算器有豐富的封裝函式(遍歷),實際可以用一個單元格代替用for

Hive Impala效能對比測試報告(上)

目的   對比Hive、集算器、Impala這三種大資料解決方案在分組彙總和關聯計算時的效能差異。 硬體環境   PC數量:4   CPU:Intel Core i5 2500(4核)   RAM:16G   HDD:2T/7200rpm   Ethern

如何將第一個sql語句中的結果作為第二個sql的引數值

集算器裡面如何將第一個sql執行的結果作為第二個資料集的引數值去過濾第二個資料集的資料呢?例如  我的第一個query()  裡面的結果是多條資料。然後將其中一個欄位的結果 作為 第二個資料集的引數去過濾資料。  在報表5 裡面ds2 資料集的引數 可以寫動態引數。表示式寫

生成動態列結果

  表1(tb1)中部分源資料如下:   Prjno      Subtask   Ddate      Num   P9996     P9996-sub002 2015-01-01     123   P9996     P9996-sub002 2015-0

實現記錄合併

  表1(T1)中儲存了單獨的id和name欄位,部分源資料如下:   id    name   1     a   2     b   3     c   4     d   5     e    表2(T2)中儲存了多個id組成的ids欄位,其值如下:

實現文字比對

       控制檯命令、JAVA、python、perl都可以進行簡單的文字比對,但這些工具不擅長集合運算、結構化運算,編寫多執行緒程式碼較複雜,處理多欄位對比、大檔案對比、異構檔案對比等情況時很繁瑣。        免費的集算器支援集合運算、遊標運算、結構化運算,簡化了多執行緒程式碼,可以彌補上述不足。

零基礎學並查

truct 和諧 point 喜歡 else 最簡 不改變 復雜 hdu1232 並查集是我暑假從高手那裏學到的一招,覺得真是太精妙的設計了。以前我無法解決的一類問題竟然可以用如此簡單高效的方法搞定。不分享出來真是對不起party了。(party:我靠,關我嘛事啊?我跟你

03.CSS選擇-->交集並選擇

img ont meta tex es2017 nta color 學習 mage <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

python腳本采服務數據通過API提交到django web服務,然後展示在頁面上

python學習采集服務器的信息的python程序#coding:utf-8import psutilimport urllibimport urllib.requestimport urllib.parse#import urllib2import requests#獲取數據cpuData = psutil

css基礎 並選擇 多個標簽用逗號隔開,使用相同的樣式

visual ast range -c 如果 logs utf rom gpo 禮悟:   公恒學思合行悟,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉養身心,誠勸且行且珍惜。