問(wèn)題的提出
多維分析(BI)系統(tǒng)后臺(tái)數(shù)據(jù)源通常有三種選擇儡蔓。一郭蕉、普通數(shù)據(jù)庫(kù);二喂江、專(zhuān)業(yè)數(shù)據(jù)倉(cāng)庫(kù)召锈;三、BI 系統(tǒng)自帶的數(shù)據(jù)源获询。
但是涨岁,這三種選擇都有各自的問(wèn)題。普通數(shù)據(jù)庫(kù)一般都是行式存儲(chǔ)吉嚣,很難獲得多維分析希望的高性能梢薪,只適用較小數(shù)據(jù)量。專(zhuān)業(yè)數(shù)據(jù)倉(cāng)庫(kù)有不少是列式存儲(chǔ)的尝哆,性能問(wèn)題不大秉撇,但是價(jià)格都比較昂貴,建設(shè)较解、擴(kuò)展和維護(hù)成本也都非常高畜疾。BI 系統(tǒng)自帶的數(shù)據(jù)源都比較封閉,只能為自家的 BI 前端提供支持印衔,無(wú)法為多個(gè)不同廠家的前端提供數(shù)據(jù)服務(wù)。
解決思路與過(guò)程
集算器可以獨(dú)立承擔(dān)輕量級(jí)多維分析后臺(tái)的作用姥敛,相當(dāng)于中小型數(shù)據(jù)倉(cāng)庫(kù)或者數(shù)據(jù)集市奸焙。結(jié)構(gòu)圖如下:
?
集算器可以將多維分析的數(shù)據(jù)事先以列存形式存儲(chǔ)到二進(jìn)制文件中,稱(chēng)為組表彤敛。多維分析前端應(yīng)用拖拽生成 SQL与帆,通過(guò)集算器 JDBC 提交。集算器對(duì)組表執(zhí)行 SQL 查詢墨榄,將結(jié)果返回給多維分析前端玄糟。組表文件也可由集算器從各種異構(gòu)數(shù)據(jù)源采集數(shù)據(jù)并計(jì)算而來(lái)。
和普通數(shù)據(jù)庫(kù)方案相比袄秩,集算器列存的二進(jìn)制文件能夠直接提升性能阵翎。而對(duì)于昂貴的專(zhuān)業(yè)數(shù)據(jù)庫(kù)和相對(duì)封閉的 BI 自帶數(shù)據(jù)源,集算器可以提供更加經(jīng)濟(jì)之剧、簡(jiǎn)便的解決方案郭卫,并能夠從各種異構(gòu)數(shù)據(jù)源采集數(shù)據(jù)。
集算器有三種部署方式:1背稼、集成在前端應(yīng)用中贰军;2、獨(dú)立服務(wù)器蟹肘;3词疼、集群熱備俯树。下面介紹具體方法。
案例場(chǎng)景說(shuō)明
在下面的案例中贰盗,多維分析系統(tǒng)要針對(duì)訂單數(shù)據(jù)做自助分析许饿。為了簡(jiǎn)化起見(jiàn),多維分析系統(tǒng)前臺(tái)用 tomcat 服務(wù)器中的 jdbc.jsp 來(lái)模擬童太。Tomcat 安裝在 windows 操作系統(tǒng)的 C:\tomcat6米辐。
集算器 JDBC 集成在多維分析應(yīng)用中。jdbc.jsp 模仿多維分析應(yīng)用系統(tǒng)书释,產(chǎn)生符合集算器規(guī)范的 SQL翘贮,通過(guò)集算器 JDBC 提交給集算器 SPL 腳本處理。
多維分析系統(tǒng)的數(shù)據(jù)來(lái)自于生產(chǎn)數(shù)據(jù)庫(kù) demo 中的 ORDERS 表爆惧,生產(chǎn)庫(kù)是 ORACLE 數(shù)據(jù)庫(kù)狸页。多維分析系統(tǒng)不能直接連 demo 數(shù)據(jù)庫(kù)實(shí)現(xiàn)分析,以免給生產(chǎn)數(shù)據(jù)庫(kù)帶來(lái)過(guò)多的壓力扯再。ORDERS 訂單表是全量數(shù)據(jù)芍耘,集算器 ETL 每天將當(dāng)天的最新數(shù)據(jù)同步到組表文件中。日期以訂購(gòu)日期 ORDERDATE 為準(zhǔn)熄阻,假設(shè)當(dāng)前的日期是 2015-07-18斋竞。
后臺(tái)數(shù)據(jù)初始化
用下面的 ordersAll.sql 文件在 ORACLE 數(shù)據(jù)庫(kù)中完成 ORDERS 表的建表和數(shù)據(jù)初始化。
ordersAll
數(shù)據(jù)截止到 2017 年 7 月 17 日秃殉。
多維分析系統(tǒng)后臺(tái)上線初始化的時(shí)候坝初,要將 ORDERS 表中的歷史數(shù)據(jù)同步到集算器的二進(jìn)制文件中。這是上線前一次性執(zhí)行的準(zhǔn)備工作钾军,上線運(yùn)行后就不需要執(zhí)行了鳄袍。
在集算器中,新建一個(gè)數(shù)據(jù)源 orcl吏恭,連接 ORACLE 數(shù)據(jù)庫(kù)拗小。用 SPL 語(yǔ)言腳本 etlAll.dfx 將全部數(shù)據(jù)讀取到集算器組表文件 orders.ctx 中。SPL 腳本如下:
Orders.ctx 是組表文件樱哼,默認(rèn)是采用列式存儲(chǔ)的哀九,支持任意分段的并行計(jì)算,可以有效提升查詢速度。生成組表的時(shí)候,要注意數(shù)據(jù)預(yù)先排序和合理定義維字段饱苟。本例中谜酒,按照經(jīng)常過(guò)濾、分組的字段诵叁,將維字段確定為:ORDERDATE,CUSTOMERID,EMPLOYEEID, ORDERID。
從 ORACLE 中取得數(shù)據(jù)的時(shí)候常遂,要按照維字段排序克胳。因?yàn)?ORDERDATE,CUSTOMERID,EMPLOYEEID 對(duì)應(yīng)的重復(fù)數(shù)據(jù)多漠另,所以放在前面排序笆搓;ORDERID 對(duì)應(yīng)的重復(fù)數(shù)據(jù)少满败,所以放在后面排序算墨。
B1 單元格中數(shù)據(jù)庫(kù)游標(biāo)的 @d 選項(xiàng)汁雷,表示從 ORACLE 數(shù)據(jù)庫(kù)中取數(shù)的時(shí)候?qū)?numeric 型數(shù)據(jù)轉(zhuǎn)換成 double 型摔竿,精度對(duì)于金額這樣的常見(jiàn)數(shù)值完全足夠了继低。如果沒(méi)有這個(gè)選項(xiàng)就會(huì)默認(rèn)轉(zhuǎn)換成 big decimal 型數(shù)據(jù),計(jì)算性能會(huì)受到較大影響婿脸。
ETL 過(guò)程
多維分析系統(tǒng)上線之后狐树,要每天晚上定時(shí)同步當(dāng)天最新的數(shù)據(jù)。我們假設(shè)當(dāng)天日期是 2015-07-18。用下面的 ordersUpdate.sql 文件在 ORACLE 數(shù)據(jù)庫(kù)給 ORDERS 表增加當(dāng)天的數(shù)據(jù)拨黔,模擬數(shù)據(jù)的增量篱蝇。
ordersUpdate
用 SPL 語(yǔ)言腳本 etlUpdate1.dfx 將當(dāng)天數(shù)據(jù)增量補(bǔ)充到集算器組表文件 orders.ctx 中零截。SPL 腳本如下:
etlUpdate.dfx 的輸入?yún)?shù)是 etlDate瞻润,也就是需要新增的當(dāng)天日期绍撞。
B4 單元格直接將新數(shù)據(jù)追加到組表文件中得院。因?yàn)榈谝粋€(gè)排序字段是 orderdate祥绞,所以追加新數(shù)據(jù)不會(huì)影響排序。如果第一個(gè)排序字段不是 orderdate两踏,就要重新排序梦染。
C4 中的 rollback 是回滾函數(shù)帕识,若 B4 執(zhí)行 append 過(guò)程中,出現(xiàn)錯(cuò)誤伪货,那么將執(zhí)行回滾操作超歌,恢復(fù)到 append 操作之前的組表狀態(tài)巍举。正常執(zhí)行完畢懊悯,則不會(huì)回滾桃焕。
etlUpdate1.dfx 腳本可以用 windows 或者 linux 命令行的方式執(zhí)行捧毛,結(jié)合定時(shí)任務(wù)呀忧,可以定時(shí)執(zhí)行胰坟。也可以用 ETL 工具來(lái)定時(shí)調(diào)用咐吼。
windows 命令行的調(diào)用方式是:
C:\\Program Files\\raqsoft\\esProc\\bin>esprocx.exe C: \\etlUpdate1.dfx
linux 命令是:
/raqsoft/esProc/bin/esprocx.sh /esproc/ etlUpdate1.dfx
應(yīng)用結(jié)構(gòu)一:應(yīng)用集成計(jì)算
集算器 JDBC 集成在多維分析的應(yīng)用中,接收到 SQL 后查本地文件 orders.ctx 返回結(jié)果。
1礁叔、下面壓縮文件中的 DW 目錄復(fù)制到 tomcat 的應(yīng)用目錄牍颈。
DW
目錄結(jié)構(gòu)如下圖:
?
配置文件在 classes 中,在官網(wǎng)上獲取的授權(quán)文件也要放在 classes 目錄中琅关。集算器的 Jar 包要放在 lib 目錄中(需要哪些 jar 請(qǐng)參照集算器教程)煮岁。
修改 raqsoftConfig.xml 中的主目錄配置:
<mainPath>C:\\tomcat6\\webapps\\DW\\WEB-INF\\data</mainPath>
配置好主目錄后讥蔽,orders.ctx 就可以不寫(xiě)全路徑名,直接寫(xiě) from orders.ctx 即可画机。
2冶伞、編輯 DW 目錄中的 jdbc.jsp,模擬前臺(tái)界面提交 sql 展現(xiàn)結(jié)果步氏。
<%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%>
<%@ page import=”java.sql.*” %>
<body>
<%
String driver = “com.esproc.jdbc.InternalDriver”;
String url = “jdbc:esproc:local://”;
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url);
Statement statement = conn.createStatement();
String sql =”select top 10 ORDERID,CUSTOMERID,EMPLOYEEID,ORDERDATE,AMOUNT from ORDERS.ctx where ORDERDATE=date(‘2015-07-18’) and AMOUNT>100″;
out.println(“Test page v1<br><br><br><pre>”);
out.println(“訂單ID”+”\\t”+”客戶ID”+”\\t”+”雇員ID”+”\\t”+”訂購(gòu)日期”+”\\t”+”訂單金額”+”<br>”);
ResultSet rs = statement.executeQuery(sql);
int f1,f6;
String f2,f3,f4;
float f5;
while (rs.next()) {
f1 = rs.getInt(“ORDERID”);
f2 = rs.getString(“CUSTOMERID”);
f3 = rs.getString(“EMPLOYEEID”);
f4 = rs.getString(“ORDERDATE”);
f5 = rs.getFloat(“AMOUNT”);
out.println(f1+”\\t”+f2+”\\t”+f3+”\\t”+f4+”\\t”+f5+”\\t”+”<br>”);
}
out.println(“</pre>”);
rs.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println(“Sorry,can`t find the Driver!”);
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
可以看到响禽,jsp 中先連接集算器的 JDBC,然后提交執(zhí)行 SQL荚醒。步驟和一般的數(shù)據(jù)庫(kù)完全一樣芋类,具有很高的兼容性和通用性。對(duì)于多維分析工具來(lái)說(shuō)界阁,雖然是界面操作來(lái)連接 JDBC 和提交 SQL侯繁,但是基本原理和 jsp 完全一樣。
3泡躯、啟動(dòng) tomcat贮竟,在瀏覽器中訪問(wèn) http://localhost:8080/DW/jdbc.jsp,查看結(jié)果较剃。
?
還可以繼續(xù)測(cè)試如下情況:
1咕别、分組匯總
sql ="select CUSTOMERID,EMPLOYEEID,sum(AMOUNT) 訂單總額,count(1) 訂單數(shù)量 from ORDERS.ctx where ORDERDATE=date(‘2015-07-18’) group by CUSTOMERID,EMPLOYEEID";
2、并行查詢
sql="select /*+ parallel (4) */
top 10 ORDERID,CUSTOMERID,EMPLOYEEID,ORDERDATE,AMOUNT from ORDERS.ctx where ORDERDATE=date('2015-07-18') and AMOUNT>100"
和 ORACLE 類(lèi)似重付,集算器簡(jiǎn)單 SQL 也支持 /*+ parallel (4) */ 這樣的并行查詢顷级。
應(yīng)用結(jié)構(gòu)二:獨(dú)立服務(wù)器
第一種解決辦法是利用應(yīng)用服務(wù)器的資源。在并發(fā)量很大确垫,或者數(shù)據(jù)量很大的情況下弓颈,應(yīng)用服務(wù)器會(huì)出現(xiàn)較大壓力。這種情況下删掀,推薦用獨(dú)立的節(jié)點(diǎn)服務(wù)器進(jìn)行數(shù)據(jù)計(jì)算翔冀。
集算器 JDBC 接收到 SQL 后,轉(zhuǎn)給 DW.dfx 程序處理披泪。DW.dfx 調(diào)用節(jié)點(diǎn)服務(wù)器上的 DWServer.dfx 進(jìn)行計(jì)算纤子。DWServer.dfx 把表名換成文件名,查本地文件 orders.ctx 返回結(jié)果款票。
下面的 DWServer 目錄復(fù)制到需要的目錄控硼。集算器的節(jié)點(diǎn)服務(wù)器具備跨平臺(tái)的特性,可以運(yùn)行在任何支持 Java 的操作系統(tǒng)上艾少,部署方法參見(jiàn)集算器教程卡乾。這里假設(shè)放到 windows 操作系統(tǒng)的 C 盤(pán)根目錄。
DWServer
1缚够、系統(tǒng)上線之前執(zhí)行初始化 dfx幔妨,將 orders.ctx 文件放到 C:/DWServer/data 目錄中鹦赎。測(cè)試的時(shí)候可以直接將已經(jīng)生成好的 orders.ctx 復(fù)制過(guò)去。
2误堡、修改前面的 dfx古话,將 A1 改為 =file(“C:/DWServer/data/orders.ctx”),另存為 etlUpdate2.dfx锁施。修改好的 etlUpdate2.dfx 在 c:\DWServer 目錄陪踩。
3、打開(kāi)應(yīng)用服務(wù)器中的 C:\\tomcat6\\webapps\\DW\\WEB-INF\\dfx\\DW.dfx沾谜,觀察理解 SPL 代碼膊毁。參數(shù) sql 是傳入的 SQL 語(yǔ)句。
A1:調(diào)用節(jié)點(diǎn)機(jī)上的 DWServer.dfx基跑。參數(shù)是 [sql]婚温,中括號(hào)表示序列,此時(shí)是只有一個(gè)成員的序列媳否。[“127.0.0.1:8281”] 是節(jié)點(diǎn)機(jī)的序列栅螟,采用 IP: 端口號(hào)的方式。
A2:返回 A1 調(diào)用的結(jié)果篱竭。因?yàn)檎{(diào)用結(jié)果是序列力图,所以要用 ifn 函數(shù)找到序列中第一個(gè)不為空的成員,就是 SQL 對(duì)應(yīng)的返回結(jié)果掺逼。
修改 C:\\tomcat6\\webapps\\DW\\WEB-INF\\classes\\raqsoftConfig.xml 中的如下配置:
<mainPath>C:\\tomcat6\\webapps\\DW\\WEB-INF\\dfx</mainPath>
<JDBC>
<load>Runtime,Server</load>
<gateway>DW.dfx</gateway>
</JDBC>
這里標(biāo)簽的內(nèi)容就是 JDBC 網(wǎng)關(guān) dfx 文件吃媒。在 BI 系統(tǒng)中調(diào)用集算器 JDBC 時(shí),所執(zhí)行的 SQL 都將交由網(wǎng)關(guān)文件處理吕喘。如果不配置這個(gè)標(biāo)簽赘那,JDBC 提交的語(yǔ)句會(huì)被集算器當(dāng)作腳本直接解析運(yùn)算。
4氯质、啟動(dòng)節(jié)點(diǎn)服務(wù)器募舟。
運(yùn)行 esprocs.exe, 如下圖:
?
?
點(diǎn)擊配置按鈕,配置相關(guān)參數(shù):
?
點(diǎn)擊確定后闻察,返回主界面拱礁,點(diǎn)擊啟動(dòng)按鈕。
5辕漂、打開(kāi) C:\DWServer\dfx\DWServer.dfx呢灶,觀察理解 SPL 代碼。
A1:定義集算器集文件的絕對(duì)路徑钉嘹。
A2:將文件名替換為絕對(duì)路徑填抬。
A3-C3:連接文件系統(tǒng)。執(zhí)行 SQL 得到游標(biāo)并返回隧期。
服務(wù)器方式也可以和“應(yīng)用結(jié)構(gòu)一”中一樣配置主目錄飒责,A2 就不用寫(xiě)絕對(duì)路徑了。路徑寫(xiě)在這里的 SPL 中仆潮,好處是同一個(gè)服務(wù)器可以給多套數(shù)據(jù)表(文件)提供服務(wù)宏蛉。如果很多文件都在主目錄下,會(huì)不方便管理性置。
6拾并、重啟 tomcat,在瀏覽器中訪問(wèn) http://localhost:8080/DW/jdbc.jsp鹏浅,查看結(jié)果嗅义。
應(yīng)用結(jié)構(gòu)三:集群熱備
在并發(fā)量不斷增大,或者數(shù)據(jù)量不斷增加的情況下隐砸,節(jié)點(diǎn)服務(wù)器可以進(jìn)行橫向擴(kuò)展之碗,應(yīng)對(duì)大并發(fā)或大數(shù)據(jù)量計(jì)算的壓力。
1季希、在另一臺(tái) window 的機(jī)器上再部署一套集算器節(jié)點(diǎn)褪那,部署方法和解決方法二略有不同,需要配置一下數(shù)據(jù)分區(qū)式塌。兩臺(tái)服務(wù)器的 IP 地址是 168.0.122 和 192.168.0.176博敬。方法二中的 c:\\DWServer 目錄也要復(fù)制到另一臺(tái)服務(wù)器上。
圖中數(shù)據(jù)分區(qū)名稱(chēng)配置為 0峰尝,路徑是 c:/DWServer/data偏窝。注意,兩個(gè)服務(wù)器都要配置武学。
2祭往、改寫(xiě) 168.0.122 上的 c:/DWServer/dfx/etlUpdate2.dfx,另存為 etlUpdate3.dfx劳淆。
A6 單元格是將更新之后的 orders.ctx 同步到 192.168.0.176 的 0 分區(qū)链沼,也就是 C:/ DWServer/data 目錄。[“192.168.0.176:8281”] 是指需要同步的節(jié)點(diǎn)機(jī)列表沛鸵,如果有更多的節(jié)點(diǎn)機(jī)需要同步括勺,可以寫(xiě)作:[“IP1:PORT1″,”IP2:PORT2″,”IP3:PORT3”]。
因?yàn)檫@里有同步的代碼曲掰,所以只需要在 192.168.0.122 上執(zhí)行定時(shí)任務(wù) etlUpdate3.dfx 就可以了疾捍。
3、打開(kāi)應(yīng)用服務(wù)器中的 C:\tomcat6\webapps\DW\WEB-INF\dfx\DW.dfx栏妖,修改如下:
A1:調(diào)用節(jié)點(diǎn)機(jī)上的 DWServer.dfx乱豆。參數(shù)是 [sql],中括號(hào)表示序列吊趾,此時(shí)是只有一個(gè)成員的序列宛裕。因?yàn)楣?jié)點(diǎn)機(jī)是集群瑟啃,所以有兩個(gè) IP 地址。在多并發(fā)時(shí) callx 會(huì)隨機(jī)訪問(wèn)兩個(gè)節(jié)點(diǎn)揩尸。
4蛹屿、重啟 tomcat,在瀏覽器中訪問(wèn) http://localhost:8080/DW/jdbc.jsp岩榆,查看結(jié)果错负。
集算器優(yōu)勢(shì)總結(jié)
開(kāi)放的輕量級(jí)數(shù)據(jù)倉(cāng)庫(kù) / 數(shù)據(jù)集市
集算器是專(zhuān)業(yè)的數(shù)據(jù)計(jì)算中間件(DCM),具備獨(dú)立計(jì)算的能力勇边,可以脫離數(shù)據(jù)庫(kù)犹撒、數(shù)據(jù)倉(cāng)庫(kù)為多維分析系統(tǒng)前端提供數(shù)據(jù)源服務(wù)。
集算器采用列存數(shù)據(jù)粒褒,具備專(zhuān)業(yè)數(shù)據(jù)倉(cāng)庫(kù)的查詢性能识颊,千萬(wàn)級(jí)別的數(shù)據(jù)量,可以達(dá)到秒級(jí)的明細(xì)查詢速度怀浆。普通數(shù)據(jù)庫(kù)一般都是行存谊囚,無(wú)法達(dá)到多維分析的性能要求。同時(shí)执赡,和專(zhuān)業(yè)數(shù)據(jù)倉(cāng)庫(kù)不同镰踏,集算器價(jià)格都較低,建設(shè)沙合、擴(kuò)展和維護(hù)成本都比較小奠伪。
集算器是開(kāi)放的,對(duì)多維分析系統(tǒng)前端提供標(biāo)準(zhǔn)的 JDBC 服務(wù)首懈“砺剩可以形成平臺(tái)式的后臺(tái)數(shù)據(jù)源,為多個(gè)不同廠家的前端同時(shí)提供數(shù)據(jù)服務(wù)究履。
組表列存 / 有序壓縮存儲(chǔ)
先進(jìn)的數(shù)據(jù)存儲(chǔ)方式滤否,是數(shù)據(jù)計(jì)算中間件(DCM)成功實(shí)施的重要保障。
集算器組表采用列存方式存儲(chǔ)數(shù)據(jù)最仑,對(duì)于字段特別多的寬表查詢藐俺,性能提升特別明顯。組表采用的列存機(jī)制和常規(guī)列存是不同的泥彤。常規(guī)列存(比如 parquet 格式)欲芹,只能分塊之后,再在塊內(nèi)列存吟吝,在做并行計(jì)算的時(shí)候是受限的菱父。組表的可并行壓縮列存機(jī)制,采用倍增分段技術(shù),允許任意分段的并行計(jì)算浙宜,可以利用多 CPU 核的計(jì)算能力把硬盤(pán)的 IO 發(fā)揮到極致官辽。
組表生成的時(shí)候,要指定維字段粟瞬,數(shù)據(jù)本身是按照維字段有序存放的野崇,常用的條件過(guò)濾計(jì)算不依賴索引也能保證高性能。文件采用壓縮存儲(chǔ)亩钟,減小在硬盤(pán)上占用的空間,讀取更快鳖轰。由于采用了合適的壓縮比清酥,解壓縮占用的 CPU 時(shí)間可以忽略不計(jì)。
組表也可以采取行存和全內(nèi)存存儲(chǔ)數(shù)據(jù)蕴侣,支持內(nèi)存數(shù)據(jù)庫(kù)方式運(yùn)行焰轻。
集群功能
敏捷的集群能力可以保證數(shù)據(jù)計(jì)算中間件(DCM)的高性能和高可用性。
集算器節(jié)點(diǎn)服務(wù)器是獨(dú)立進(jìn)程昆雀,可以接受集算器 JDBC 的計(jì)算請(qǐng)求并返回結(jié)果辱志。對(duì)于并發(fā)訪問(wèn)的情況,可以發(fā)給多個(gè)服務(wù)器同時(shí)計(jì)算狞膘,提高并發(fā)容量揩懒。對(duì)于單個(gè)大計(jì)算任務(wù)的情況,可以分成多個(gè)小任務(wù)挽封,發(fā)給多個(gè)服務(wù)器同時(shí)計(jì)算已球,起到大數(shù)據(jù)并行計(jì)算的作用。
集算器集群計(jì)算方案辅愿,具備敏捷的橫向擴(kuò)展能力智亮,并發(fā)量或者數(shù)據(jù)量大時(shí)可以通過(guò)快速增加節(jié)點(diǎn)來(lái)解決。集算器集群也具備容錯(cuò)能力点待,即有個(gè)別節(jié)點(diǎn)失效時(shí)還能確保整個(gè)集群能工作阔蛉,計(jì)算任務(wù)能繼續(xù)執(zhí)行完畢,起到多機(jī)熱備和保證高可用性的作用癞埠。
應(yīng)用推廣
作為數(shù)據(jù)計(jì)算中間件(DCM)状原,集算器提供的后臺(tái)數(shù)據(jù)源可以支持各種前端應(yīng)用,不僅僅限于前端是多維分析的情況燕差。例如:大屏展示遭笋、管理駕駛艙、實(shí)時(shí)報(bào)表徒探、大數(shù)據(jù)量清單報(bào)表瓦呼、報(bào)表批量訂閱等等。
集算器形成的后臺(tái)數(shù)據(jù)源也可以和數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)配合使用央串。集算器實(shí)現(xiàn)的數(shù)據(jù)計(jì)算網(wǎng)關(guān)和路由磨澡,可以在集算器緩存數(shù)據(jù)和數(shù)據(jù)倉(cāng)庫(kù)之間智能切換,解決數(shù)據(jù)倉(cāng)庫(kù)無(wú)法滿足性能要求的問(wèn)題质和。例如:冷熱數(shù)據(jù)分開(kāi)計(jì)算的場(chǎng)景稳摄。具體做法參見(jiàn)《用計(jì)算路由的方法優(yōu)化BI后臺(tái)性能》。