不用 SQL 的開源數(shù)據(jù)倉庫

GitHub:https://github.com/SPLWare/esProc
為什么 esProc 不再使用 SQL 了呢?
能力完備
Orders.sort(Amount) // 排序Orders.select(Amount*Quantity>3000 && like(Client,"*S*")) // 過濾Orders.groups(Client; sum(Amount)) // 分組Orders.id(Client) // 去重join(Orders:o,SellerId ; Employees:e,EId) // 連接
有了過程化和序表的支持,SPL 就可以完成更加豐富的運(yùn)算。比如對有序運(yùn)算的支持 SPL 就更為直接和徹底。還有分組運(yùn)算,SPL 可以保留分組子集,即集合的集合,這樣可以很方便完成我們分組后對分組結(jié)果的進(jìn)一步操作。相比之下,SQL 沒有顯式的集合數(shù)據(jù)類型,無法返回集合的集合這類數(shù)據(jù),不能實(shí)現(xiàn)獨(dú)立的分組,就只能強(qiáng)迫分組和聚合作為一個(gè)整體來計(jì)算了。
體系開放
文件存儲
高性能
=file("orders.txt").cursor@t(area,amount).groups(area;sum(amount):amount)
=file("orders.txt").cursor@tm(area,amount;4).groups(area;sum(amount):amount)
除了游標(biāo)和并行計(jì)算外,SPL 還內(nèi)置了很多高性能算法。像 TOPN 運(yùn)算,SPL 把這種運(yùn)算和普通的聚合運(yùn)算同樣看待后,寫出來的取前 N 名的語句中就不會有排序動(dòng)作,執(zhí)行效率因此更高。
內(nèi)存計(jì)算類的二分法、序號定位、位置索引、哈希索引、多層序號定位、……
外存查找類的二分法、哈希索引、排序索引、帶值索引、全文檢索、……
遍歷計(jì)算類的延遲游標(biāo)、遍歷復(fù)用、多路并行游標(biāo)、有序分組匯總、序號分組、……
外鍵關(guān)聯(lián)類的外鍵地址化、外鍵序號化、索引復(fù)用、對位序列、單邊分堆、……
歸并與連接類的有序歸并、分段歸并、關(guān)聯(lián)定位、附表、……
多維分析類的部分預(yù)匯總、時(shí)間段預(yù)匯總、冗余排序、布爾維序列、標(biāo)簽位維度、……
-
集群計(jì)算類的集群復(fù)組表、復(fù)寫維表、分段維表、冗余與備胎容錯(cuò)、負(fù)載均衡、……
評論
圖片
表情
