概述:運行在 JVM 上的 SQL 函數和存儲過程
總所周知,有些數據庫沒有強大的分析函數(eg. Mysql), 有些數據庫沒有存儲過程(eg. Vertica),當遇到復雜的數據計算,往往只能通過 Python,R 等外部腳本來實現,但這些腳本語言和主流工程語言(Java)集成性不好,如果直接用工程語言實現類似 SQL 函數和存儲過程的功能,經常只是針對某個計算需求編寫冗長的代碼,代碼幾乎不可復用。
另外,即便擁有強大的分析函數,實現稍復雜的邏輯其實也不算容易,比如下面這種常見的業務計算,找出“銷售額占到一半的前 n 個客戶,并按銷售額從大到小排序”,在 Oracle 中 SQL 實現如下:
with A as(selectCUSTOM,SALESAMOUNT,row_number() over (order by SALESAMOUNT) RANKINGfrom SALES)select CUSTOM,SALESAMOUNTfrom (select CUSTOM,SALESAMOUNT,sum(SALESAMOUNT) over (order by RANKING) AccumulativeAmountfrom A)where AccumulativeAmount>(select sum(SALESAMOUNT)/2 from SALES)order by SALESAMOUNT desc
說明:按照銷售額累計值從小到大排序,通過累計值大于“一半銷售額”的條件,逆向找出占到銷售額一半的客戶。為了避免窗口函數在計算累計值時對銷售額相同的值處理出現錯誤,用子查詢先計算了排名。
下面是用集算器實現相同邏輯的代碼:
從上述代碼我們可以看到,集算器利用一套簡潔的語法取代了需嵌套 SQL+ 窗口函數才能實現的邏輯,并且具有通用一致性(任何數據源代碼一致)。
集算器是一套運行在 JVM 上專門處理結構化數據的腳本語言,類似用 SQL 函數和存儲過程,與 Java 集成可以創建可移植、功能強大和與數據庫無關的計算邏輯,運行于中間層的計算邏輯和運行于數據庫層的數據邏輯之間的分離,提高了應用程序的可擴展性、靈活性和可維護性。
應用場景:報表數據準備
應用結構
集成后,集算器嵌入報表應用層,相當于本地的邏輯數據庫(不需要單獨服務器部署),在報表與數據源間作為報表數據準備層,完成各種復雜的計算任務。
如何集成
下面以 Vertica 為數據源,Birt 為報表工具,描述怎樣集成 esProc 作為數據準備層。
(一) Birt 開發環境
1、 基礎 jar 集成
集算器 JDBC 需要三個基礎 jar 包,都可以在 [esProc 安裝目錄]/esProc/lib 目錄下找到,分別為:
dm.jar 集算器計算引擎及JDBC驅動包
jdom.jar 解析配置文件
icu4j/_3/_4_5.jar 處理國際化
除了基礎包外,還有一些為完成特定功能的 jar 包。如,要在集算器 JDBC 用其它數據庫作為集算器的數據源,那么還需要相應數據庫的驅動 jar 包,本文涉及到 vertica,所以要同時增加其 JDBC 驅動包(以 vertica9.1。0 為例)
vertica-jdbc-9.1.0-0.jar vertica 官網即可下載
獲取到以上 Jar 后,將其拷貝至 Birt 開發環境 [安裝目錄]/plugins/org.eclipse.birt.report.data.oda.jdbc_4.6.0.v20160607212 下。
注意:標紅部分,不同 birt 版本略有不同
2、 配置文件集成
raqsoftConfig. ,主要包含集算器授權、腳本文件路徑、其他作為集算器數據源的連接配置等。
可在 [esProc 安裝目錄]/esProc/config 下找到,需復制后放置在類路徑下,同樣將其拷貝至 Birt 開發環境 [安裝目錄]/plugins/org.eclipse.birt.report.data.oda.jdbc_4.6.0.v20160607212 下。
注意:配置文件名不能改變
(二) Birt 應用環境
1、 將(一)中的所有 jar 拷貝至應用的 WEB-INF/lib 下
2、 將 raqsoftConfig. 拷貝至應用的 WEB-INF/classes 下
例一:常規調用
1、 Vertica 內 Sales 表字段及數據說明(通過 vsql 查詢,本測試庫有 2013/14/15 年數據)
2、 編寫并部署 esProc 腳本
(1) esProc 設計器添加 vertica JDBC 驅動包
vertica 官網下載 jdbc 驅動包(如,vertica-jdbc-9.1.0-0.jar),放至【esProc 安裝目錄】/common/jdbc 下
(2) 新增 vertica 數據源
打開設計器,Tool―Datasource connection 新增 JDBC 方式連接
點 ok 保存,再點 connect 連接
數據源名稱變為粉色即表示連接成功。
(3) 編寫算法腳本 (文件:VerticaExternalProcedures.dfx)
国产精品久久在线观看| 98视频在线噜噜噜国产| 国产精品欧美激情在线播放| 欧美丝袜美女中出在线| 成人性生交大片免费观看嘿嘿视频| 日韩精品极品在线观看| 欧美亚洲激情视频| 色综合久久精品亚洲国产| 亚洲综合国产精品| 成人免费午夜电影| 亚洲色图欧美制服丝袜另类第一页| 久久91精品国产91久久久| 国产精品欧美一区二区| 日韩欧美国产激情| 欧美日韩一区免费| 92版电视剧仙鹤神针在线观看| 亚洲第一男人av| 精品自在线视频| 久久亚洲成人精品| 亚洲欧美在线x视频| 精品偷拍各种wc美女嘘嘘| 亚洲一区二区三| 成人动漫网站在线观看| 深夜福利一区二区| 欧美激情在线视频二区| 成人黄色av网| 欧美激情视频播放| 欧美一区二粉嫩精品国产一线天| 国产精品丝袜高跟| 日韩视频在线免费| 欧美大尺度在线观看| 亚洲国产精品电影在线观看| 久久久91精品国产一区不卡| 欧美激情精品久久久久久免费印度| 国产精品视频精品| 国产有码一区二区| 国产精品白丝jk喷水视频一区| 91免费人成网站在线观看18| 91大神在线播放精品| 国产精品永久免费| 美女视频久久黄| 亚洲国产欧美久久| 国产精品www网站| 91av福利视频| 日韩电影免费在线观看中文字幕| 欧美床上激情在线观看| 97在线视频国产| 久久久久久一区二区三区| 欧美www视频在线观看| 国产成人精品在线观看| 国产亚洲欧美日韩一区二区| 精品在线观看国产| 欧美日韩午夜激情| 日韩黄色在线免费观看| 国产欧美一区二区| 亚洲欧美日韩中文在线制服| 精品无人国产偷自产在线| 日韩av在线天堂网| 国产精品你懂得| 久久精品中文字幕电影| 狠狠躁夜夜躁人人爽天天天天97| 91网站免费看| 久久人人看视频| 亚洲精品国产精品国自产观看浪潮| 亚洲精品丝袜日韩| 91精品国产91| 成人欧美一区二区三区在线湿哒哒| 午夜精品久久久久久99热| 国产啪精品视频| 亚洲一区二区三区视频播放| 亚洲欧美日韩一区二区三区在线| 欧美成人精品三级在线观看| 国产色综合天天综合网| 中文字幕在线观看亚洲| 久久精品视频在线播放| 久久青草福利网站| 91手机视频在线观看| 久久久噜噜噜久久| 日本久久久久久| 亚洲网站在线看| 国产精品久久久久久久久久| 日韩精品视频免费在线观看| 久久精品一偷一偷国产| 国产精品一区二区三区免费视频| 午夜伦理精品一区| 亚洲国产精品高清久久久| 91精品视频大全| www.欧美视频| 亚洲最大成人免费视频| 国产成人亚洲综合91| 国语自产偷拍精品视频偷| 亚洲女同精品视频| 国产综合在线看| 丁香五六月婷婷久久激情| 欧美福利小视频| 国产日韩欧美视频| 色一情一乱一区二区| 久久免费少妇高潮久久精品99| 91精品国产91久久久久福利| 九九热这里只有精品免费看| 狠狠干狠狠久久| 91精品国产综合久久香蕉| 波霸ol色综合久久| 亚洲精品美女久久久| 成人久久精品视频| 欧美极品美女电影一区| 久久不射热爱视频精品| 国产一区二区三区高清在线观看| 国产成人亚洲综合| 日韩在线视频播放| 久久久影视精品| 欧美另类高清videos| 久久久99久久精品女同性| 亚洲国产成人精品久久久国产成人一区| 亚洲一区二区免费| 亚洲偷熟乱区亚洲香蕉av| 亚洲精选在线观看| 亚洲欧美日韩精品久久亚洲区| 亚洲第一福利网站| 尤物九九久久国产精品的分类| 欧美国产日本高清在线| 综合国产在线观看| 亚洲另类图片色| 亚洲男人第一av网站| 久久久女人电视剧免费播放下载| 国产精品999999| 成人h猎奇视频网站| 亚洲综合在线中文字幕| 日韩激情片免费| 中文字幕精品—区二区| 欧美区在线播放| 伊人成人开心激情综合网| 狠狠久久五月精品中文字幕| 亚洲午夜av电影| 国产免费一区视频观看免费| 日韩欧美亚洲成人| 亚洲色图15p| 欧美午夜激情视频| 亚洲一区二区三区777| 亚洲第一二三四五区| 日韩中文在线观看| 欧美xxxx18性欧美| 8090成年在线看片午夜| 久久久精品电影| 亚洲男人的天堂网站| 日韩在线观看免费av| 日韩福利在线播放| 久久精品亚洲一区| 色妞在线综合亚洲欧美| 国产亚洲精品久久久| 久久久精品中文字幕| 久久精品一偷一偷国产| 68精品久久久久久欧美| 亚洲成人免费网站| 精品日韩中文字幕| 欧美成人一区在线| 中文字幕欧美精品日韩中文字幕| 亚洲视频在线观看免费| 国产日韩欧美在线播放| 亚洲最大成人免费视频| 亚洲欧美日韩久久久久久| 奇门遁甲1982国语版免费观看高清| 精品伊人久久97| 久久亚洲一区二区三区四区五区高|