自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

第10期:報(bào)表的數(shù)據(jù)計(jì)算層

企業(yè)動(dòng)態(tài)
在計(jì)算層中要完成一些復(fù)雜的計(jì)算邏輯,好的方式是實(shí)現(xiàn)一個(gè)顯式的數(shù)據(jù)計(jì)算層,在其中提供可解釋執(zhí)行的腳本功能,把數(shù)據(jù)源計(jì)算獨(dú)立出來,下面,我們從四個(gè)方面來分析其優(yōu)勢(shì)。

我們?cè)?a href="http://www.scjtxx.cn/art/201706/542417.htm">上一期已經(jīng)解釋了報(bào)表應(yīng)用結(jié)構(gòu)中數(shù)據(jù)計(jì)算層的必要性,以及可以使用報(bào)表工具自定義數(shù)據(jù)源接口來實(shí)現(xiàn)計(jì)算層。在計(jì)算層中要完成一些復(fù)雜的計(jì)算邏輯,因此要有可編程的能力,而基于自定義接口可以采用報(bào)表工具的宿主語言(即用于開發(fā)報(bào)表工具的程序設(shè)計(jì)語言)進(jìn)行開發(fā),在功能方面沒有問題,不過,實(shí)際應(yīng)用中卻仍有不少缺陷。更好的方式是實(shí)現(xiàn)一個(gè)顯式的數(shù)據(jù)計(jì)算層,在其中提供可解釋執(zhí)行的腳本功能,把數(shù)據(jù)源計(jì)算獨(dú)立出來。

數(shù)據(jù)蔣堂第10期 

我們從四個(gè)方面來分析后者的優(yōu)勢(shì)。

代碼編寫

報(bào)表工具的宿主語言一般是Java、C#等高級(jí)語言,這類語言針對(duì)結(jié)構(gòu)化數(shù)據(jù)集的支持很有限,雖然都能做,但卻非常繁瑣,簡(jiǎn)單做個(gè)求和運(yùn)算都需要寫數(shù)行代碼的循環(huán)來實(shí)現(xiàn)。而報(bào)表數(shù)據(jù)源處理則大量涉及批量數(shù)據(jù)運(yùn)算,采用高級(jí)語言開發(fā)時(shí)會(huì)導(dǎo)致動(dòng)輒數(shù)百行的冗長(zhǎng)代碼,編寫和調(diào)試都很困難。

專門為數(shù)據(jù)計(jì)算設(shè)計(jì)的腳本則能夠提供豐富的結(jié)構(gòu)化數(shù)據(jù)集運(yùn)算功能,可以很方便地實(shí)現(xiàn)批量數(shù)據(jù)計(jì)算。代碼更短不僅是工作量更少、調(diào)試方便,而且還有利于整體了解和把握算法。如果語言設(shè)計(jì)得好,大多數(shù)報(bào)表的數(shù)據(jù)源準(zhǔn)備算法都可以在一屏內(nèi)實(shí)現(xiàn),整個(gè)算法過程一目了然。

應(yīng)用耦合

報(bào)表的呈現(xiàn)式樣是由報(bào)表工具繪制的模板來控制,報(bào)表模板一般以文件形式存放在文件系統(tǒng)中。如果數(shù)據(jù)準(zhǔn)備采用自定義數(shù)據(jù)源實(shí)現(xiàn),這部分代碼將作為應(yīng)用程序的一部分被一起編譯和打包。呈現(xiàn)模板和數(shù)據(jù)集算法作為同一個(gè)報(bào)表的兩個(gè)關(guān)鍵要素必須合理配合才能正常工作,但物理上卻會(huì)分存于兩處,甚至可能是不同人員開發(fā)的,這給修改維護(hù)報(bào)表帶來麻煩,需要刻意去保持兩處的一致性。

獨(dú)立計(jì)算層的計(jì)算腳本和報(bào)表模板一樣,都是解釋執(zhí)行的,腳本也可以文件形式與和報(bào)表模板放在一起,報(bào)表維護(hù)時(shí)很容易保證這兩部分一致,這方面不存在應(yīng)用耦合問題。

熱切換

報(bào)表的數(shù)據(jù)集算法如果使用自定義數(shù)據(jù)源實(shí)現(xiàn),那就會(huì)成為應(yīng)用程序的一部分,發(fā)生修改時(shí)就需要和整個(gè)應(yīng)用程序一起重新編譯打包,并且在大多數(shù)情況時(shí)需要將應(yīng)用停機(jī)后再重啟。而報(bào)表是個(gè)業(yè)務(wù)穩(wěn)定性相對(duì)較差的功能,經(jīng)常會(huì)增加和修改,這樣就會(huì)導(dǎo)致應(yīng)用程序頻繁重啟。雖然Java等開發(fā)機(jī)制也支持熱加載,但使用復(fù)雜,大多數(shù)應(yīng)用程序員難以掌握。而且一旦加載后的程序就不會(huì)被清除,即使不再有用也會(huì)一直占據(jù)內(nèi)存,熱加載技術(shù)并不很合適應(yīng)用于報(bào)表數(shù)據(jù)源。

類似地,熱切換對(duì)于使用獨(dú)立計(jì)算層的腳本也不再是問題,有報(bào)表修改只要修改呈現(xiàn)模板和相應(yīng)的計(jì)算腳本。因?yàn)槟_本是解釋執(zhí)行的,應(yīng)用程序本身并不需要改變,也就沒有必要停機(jī)重啟。被修改的報(bào)表在訪問時(shí)臨時(shí)計(jì)算即可。

開發(fā)人員

使用Java等高級(jí)語言實(shí)現(xiàn)報(bào)表數(shù)據(jù)集準(zhǔn)備時(shí),需要在代碼中引用數(shù)據(jù)庫(kù)連接、基礎(chǔ)類庫(kù)等各種環(huán)境信息,還要了解和遵循整個(gè)應(yīng)用程序的代碼規(guī)范以保持協(xié)調(diào),這常常是項(xiàng)目組中的專業(yè)程序員才能掌握的技能。而開發(fā)報(bào)表數(shù)據(jù)集只要了解數(shù)據(jù)結(jié)構(gòu)和運(yùn)算邏輯,其實(shí)用戶方有不少技術(shù)人員都擁有這個(gè)能力,但苦于難以理解開發(fā)環(huán)境而很難自由實(shí)現(xiàn)新的報(bào)表。

有獨(dú)立計(jì)算層時(shí),報(bào)表開發(fā)需要的各種環(huán)境信息可以事先在應(yīng)用程序中配置好,使用腳本編程時(shí)也不必關(guān)心整個(gè)應(yīng)用的代碼規(guī)范,報(bào)表開發(fā)人員只要關(guān)心數(shù)據(jù)結(jié)構(gòu)和運(yùn)算邏輯,可以用于開發(fā)報(bào)表的人員更多,以適應(yīng)報(bào)表頻繁修改的業(yè)務(wù)特性。

【本文為51CTO專欄機(jī)構(gòu)“數(shù)據(jù)蔣堂”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2017-06-12 13:18:51

數(shù)據(jù)報(bào)表計(jì)算

2017-05-21 22:32:39

報(bào)表性能優(yōu)化

2018-03-14 07:47:41

大數(shù)據(jù)語法SQL

2017-08-09 16:13:48

SQL大數(shù)據(jù)語法

2017-07-19 06:37:18

數(shù)據(jù)庫(kù)計(jì)算存儲(chǔ)

2017-07-12 07:27:11

數(shù)據(jù)庫(kù)中間表存儲(chǔ)

2018-03-08 11:13:28

AWSAI云服務(wù)

2018-01-18 20:47:18

CPU數(shù)據(jù)線程

2018-03-05 08:13:13

臨時(shí)性計(jì)算編程語言

2020-11-23 09:47:39

技術(shù)資訊

2016-03-17 15:24:12

大數(shù)據(jù)智造+V課堂

2020-10-16 16:23:28

Kubernetes開源

2017-03-02 18:15:28

云計(jì)算云計(jì)算半月刊

2020-10-19 11:41:32

技術(shù)資訊

2020-07-24 11:48:13

云計(jì)算

2018-02-06 23:30:07

文件存儲(chǔ)數(shù)據(jù)

2017-05-25 08:56:22

硬盤性能特征

2013-01-21 13:41:59

IBMdW

2018-09-14 14:22:17

SAP智慧企業(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)