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儲存過程
- PHP實現多儲存過程呼叫PHP儲存過程
- 實戰儲存過程排程過程儲存過程
- sqlserver儲存過程實現多表分頁SQLServer儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- 使用儲存過程實現分頁列印 (轉)儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- mysql 儲存過程,以及mybatis如何呼叫MySql儲存過程MyBatis
- (轉)如何oracle除錯儲存過程Oracle除錯儲存過程
- MySQL儲存過程中如何使用ROLLBACKMySql儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- Oracle儲存過程Oracle儲存過程
- 使用儲存過程儲存過程
- sybase儲存過程儲存過程
- java儲存過程Java儲存過程
- 管理儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- ETL通用解決方案---oracle+儲存過程 實現Oracle儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 如何刪除名稱相同的儲存過程儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- 把自編儲存過程設定為系統儲存過程儲存過程
- ASP.NET中利用儲存過程實現模糊查詢ASP.NET儲存過程
- 儲存過程 傳 datatable儲存過程
- 儲存過程——遊標儲存過程
- Oracle儲存過程-1Oracle儲存過程
- mysql儲存過程整理MySql儲存過程
- JAVA儲存過程(轉)Java儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- Winform呼叫儲存過程ORM儲存過程
- oracle的儲存過程Oracle儲存過程