vertica 如何實現儲存過程?
JAVA 等通用語言缺乏結構化計算類庫,即使最簡單的結構化演算法,比如查詢、排序、聚合,也要從零開始硬編碼。對於很常用的演算法,比如分組彙總、關聯查詢,則要編寫大篇幅的程式碼。對於複雜些的演算法,甚至要設計多個類才能勉強實現。
只要多花時間,JAVA 總是可以實現演算法的,但高耦合性的缺點卻無法避免。儲存過程本應獨立於 JAVA 程式碼,修改儲存過程本不該影響 JAVA 程式碼。但 JAVA 開發的儲存過程會和其他 JAVA 程式碼緊密耦合,只要修改儲存過程,就必然重新編譯打包整個專案,專案的維護成本必然升高。
如果使用集算器,實現 vertica 儲存過程就會容易很多。
集算器具有豐富的結構化類庫,無論查詢、排序、聚合還是分組彙總、關聯查詢,都可以用內建函式直接實現。集算器也提供了針對結構化資料的分支判斷、迴圈語句、動態語法,複雜業務邏輯也可輕鬆實現。集算器還提供了標準的 JDBC 介面,供 JAVA 程式碼呼叫,實際的儲存過程則以指令碼檔案的形式存在,修改儲存過程不影響 JAVA 程式碼。
例如:vertica 中 sales 表儲存銷售員的訂單信。
邏輯演算法:對每一位銷售,找到他金額最大和最小的 3 筆訂單,分別打上 "top3" 和 "bottom3" 的標記,考慮到訂單數太少沒意義,特規定某銷售的訂單數小於 3 時,則不計算 top3,訂單數小於 6 時,則不計算 bottom3。計算結果應當如下:
集算器程式碼如下:
|
A | B | C | D |
1 | =connect@l("verticaDB") |
|
|
|
2 | =A1.cursor@x("select * from sales order by sellerid,amount")
| |||
3 | for A2;sellerid |
|
|
/for each seller |
4 |
|
if A3.len()>=3 | =A3.m(to(-1,-3)) | =C4.derive("top3":orderType) |
5 |
|
if A3.len()>=6 | =A3.m(to(3)) | =C5.derive("bottom3":orderType) |
6 |
|
=@|D4|D5 |
|
/merge top+bottom for every seller |
7 | return B6 |
|
|
|
關於集算器 JDBC 介面,可以參考
關於集算器安裝使用、獲得免費授權和相關技術資料,可以參
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2693476/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hive 如何方便地實現儲存過程?Hive儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- SQLSERVER儲存過程SQLServer儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- Oracle儲存過程Oracle儲存過程
- MySQL儲存過程中如何使用ROLLBACKMySql儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- 造數儲存過程儲存過程
- 儲存過程——遊標儲存過程
- 儲存過程 傳 datatable儲存過程
- JAVA儲存過程(轉)Java儲存過程
- MySQL之儲存過程MySql儲存過程
- oracle的儲存過程Oracle儲存過程
- MySQL---------儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- Winform呼叫儲存過程ORM儲存過程
- mysql儲存過程整理MySql儲存過程
- Oracle儲存過程-1Oracle儲存過程
- 使用JavaScript和Python實現Oracle資料庫的儲存過程?JavaScriptPythonOracle資料庫儲存過程
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- mongo 儲存過程詳解Go儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- SQL 分頁儲存過程SQL儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- jsp中呼叫儲存過程JS儲存過程
- 資料庫儲存過程資料庫儲存過程
- mybatis儲存過程返回listMyBatis儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- mysql儲存過程及日期函式實踐MySql儲存過程函式
- MYSQL學習與實驗(八)——儲存過程實驗MySql儲存過程
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式