色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開(kāi)源SPL的出現(xiàn),將使報(bào)表數(shù)據(jù)準(zhǔn)備的困難得到巨大的改觀(guān)

數(shù)據(jù)分析與開(kāi)發(fā) ? 來(lái)源:數(shù)據(jù)分析與開(kāi)發(fā) ? 作者:數(shù)據(jù)分析與開(kāi)發(fā) ? 2022-06-16 11:03 ? 次閱讀
現(xiàn)在應(yīng)用中的報(bào)表大都使用報(bào)表工具開(kāi)發(fā),成熟的報(bào)表工具提供了豐富的顯示設(shè)置、圖表類(lèi)型、導(dǎo)出打印等功能可以簡(jiǎn)化報(bào)表開(kāi)發(fā),非常方便。但是,實(shí)際報(bào)表開(kāi)發(fā)中還是經(jīng)常碰到一些非常棘手的深層次問(wèn)題,即使是已經(jīng)熟練使用報(bào)表工具的開(kāi)發(fā)老手也會(huì)很撓頭。為什么有了報(bào)表工具還會(huì)出現(xiàn)這些問(wèn)題呢?報(bào)表開(kāi)發(fā),看起來(lái)就是將數(shù)據(jù)按照指定格式的表格或圖形呈現(xiàn)出來(lái),這也是報(bào)表工具一直很擅長(zhǎng)的環(huán)節(jié)。但是,原始數(shù)據(jù)經(jīng)常并不適合直接呈現(xiàn),需要先做一些復(fù)雜的處理,這就是數(shù)據(jù)準(zhǔn)備環(huán)節(jié)。從報(bào)表工具的眼光上看,數(shù)據(jù)準(zhǔn)備屬于報(bào)表之外的事情,可以堂而皇之地拒絕處理。但是,拒絕不等于不存在,這個(gè)工作總還要做。沒(méi)有好的工具,目前報(bào)表的數(shù)據(jù)準(zhǔn)備還處于比較原始的硬編碼階段,幾百上千行的 SQL、幾十上百 K 的存儲(chǔ)過(guò)程和大量的 JAVA 代碼充斥在報(bào)表之后。落后的工具必然導(dǎo)致低下的生產(chǎn)效率,會(huì)嚴(yán)重拖累整個(gè)報(bào)表開(kāi)發(fā)的進(jìn)程,也就出現(xiàn)了前述的“撓頭”現(xiàn)象。再由于大多數(shù)報(bào)表工具的不重視,這個(gè)問(wèn)題遲遲還沒(méi)有被解決的跡象。報(bào)表數(shù)據(jù)準(zhǔn)備之于報(bào)表有如樹(shù)根之于大樹(shù),如果根本得不到解決,在枝葉上花多少精力都是白費(fèi)。開(kāi)源 SPL 的出現(xiàn),將使報(bào)表數(shù)據(jù)準(zhǔn)備的困難得到巨大的改觀(guān)。SPL(Structured Process Language)是專(zhuān)業(yè)的開(kāi)源結(jié)構(gòu)化數(shù)據(jù)計(jì)算引擎,提供了豐富的計(jì)算類(lèi)庫(kù),支持過(guò)程計(jì)算,擅長(zhǎng)完成各類(lèi)復(fù)雜計(jì)算。同時(shí)開(kāi)放計(jì)算體系支持多數(shù)據(jù)源混合計(jì)算,支持熱切換,提供標(biāo)準(zhǔn) JDBC 接口可與報(bào)表工具無(wú)縫集成。

降低報(bào)表的開(kāi)發(fā)工作量

報(bào)表開(kāi)發(fā)主要分兩個(gè)階段:第一階段是為報(bào)表準(zhǔn)備數(shù)據(jù),也就是把原始數(shù)據(jù)通過(guò) SQL/ 存儲(chǔ)過(guò)程 /Java 加工成報(bào)表可用的數(shù)據(jù)集;第二階段是使用已準(zhǔn)備的數(shù)據(jù)編寫(xiě)表達(dá)式進(jìn)行報(bào)表呈現(xiàn)。數(shù)據(jù)呈現(xiàn)使用報(bào)表工具可以簡(jiǎn)單地完成,尤其近些年前端可視化技術(shù)的進(jìn)步,越來(lái)越多報(bào)表都以圖形的方式呈現(xiàn),這更降低了報(bào)表呈現(xiàn)階段的難度。然而,數(shù)據(jù)準(zhǔn)備并沒(méi)有工具化。粗略統(tǒng)計(jì),在報(bào)表工具支持下,數(shù)據(jù)呈現(xiàn)在當(dāng)前報(bào)表開(kāi)發(fā)的工作量占比能降到 20%,剩下80% 都是數(shù)據(jù)準(zhǔn)備,甚至更高。這時(shí)候,如果要優(yōu)化報(bào)表開(kāi)發(fā)、提升報(bào)表開(kāi)發(fā)效率也要從報(bào)表數(shù)據(jù)準(zhǔn)備方面入手。當(dāng)前數(shù)據(jù)準(zhǔn)備的主要方式是 SQL(包括存儲(chǔ)過(guò)程)和 Java。后者要比前者麻煩得多,主要是因?yàn)?Java 缺少結(jié)構(gòu)化計(jì)算類(lèi)庫(kù),并非專(zhuān)門(mén)的集合計(jì)算語(yǔ)言。但 SQL 缺乏分步機(jī)制實(shí)現(xiàn)復(fù)雜計(jì)算時(shí)也非常繁瑣,加上只能基于數(shù)據(jù)庫(kù),當(dāng)碰到其他類(lèi)型的數(shù)據(jù)源時(shí)就只能依靠 Java 了。另外,目前的一些前后端分離、微服務(wù)架構(gòu)要求只能在應(yīng)用端用 Java 硬編碼。這些因素都增加了報(bào)表數(shù)據(jù)準(zhǔn)備的工作量,導(dǎo)致報(bào)表開(kāi)發(fā)效率不高。使用開(kāi)源 SPL 可以輔助 / 替代原有的報(bào)表數(shù)據(jù)準(zhǔn)備方式,借助 SPL 簡(jiǎn)潔的語(yǔ)法和豐富的類(lèi)庫(kù)可以快速完成報(bào)表數(shù)據(jù)準(zhǔn)備任務(wù),從而減少報(bào)表開(kāi)發(fā)的工作量。豐富的計(jì)算類(lèi)庫(kù):55117732-ed00-11ec-ba43-dac502259ad0.png與 SQL 不同,SPL 提倡分步計(jì)算,算法可以按照自然思維一步步實(shí)現(xiàn),這樣就可以避免編寫(xiě)過(guò)于復(fù)雜的 SQL(復(fù)雜 SQL 不僅難寫(xiě),維護(hù)也不方便)。552ad844-ed00-11ec-ba43-dac502259ad0.png這里拿 SPL 和 SQL 做個(gè)對(duì)比(Java 計(jì)算要復(fù)雜得多,不太具備可比性)。查詢(xún)目標(biāo):根據(jù)股票記錄表查詢(xún)股價(jià)連續(xù)上漲超過(guò) 5 天的股票及上漲天數(shù)(股價(jià)相等記為上漲)SQL 實(shí)現(xiàn)要嵌套 3 層子查詢(xún)才能完成:
select code,max(risenum)-1 maxRiseDays from (  select code,count(1) risenum from  (    select code,changeSign,sum(changeSign) over(partition by code order by ddate) unRiseDays from    (        select               code,              ddate,              case when price>=lag(price) over(partition by code order by ddate)              then 0 else 1 end changeSign        from stock_record     )  )  group by code,unRiseDays)group by codehavingmax(risenum)>5

而同樣的計(jì)算用 SPL 則要簡(jiǎn)單很多:

A
1 =connect@l("orcl").query@x("select * from stock_record order by ddate")
2 =A1.group(code)
3 =A2.new(code,~.group@i(price 計(jì)算每只股票的連續(xù)上漲天數(shù)
4 =A3.select(maxrisedays>=5) 選出符合條件的記錄

SPL 還提供了簡(jiǎn)潔易用的開(kāi)發(fā)環(huán)境,單步執(zhí)行、設(shè)置斷點(diǎn),所見(jiàn)即所得的結(jié)果預(yù)覽窗口…

5545d1da-ed00-11ec-ba43-dac502259ad0.png每步計(jì)算的結(jié)果都可以實(shí)時(shí)查看,相比 SQL 和存儲(chǔ)過(guò)程不好調(diào)試要方便高效得多。SPL 可以與報(bào)表工具集成嵌入使用,SPL 提供了標(biāo)準(zhǔn) JDBC 接口供報(bào)表工具調(diào)用,這樣就可以無(wú)縫取代原來(lái)實(shí)現(xiàn)報(bào)表數(shù)據(jù)準(zhǔn)備的硬編碼方式,甚至可以與原有方式共存。

改善存儲(chǔ)過(guò)程和 JAVA 做數(shù)據(jù)準(zhǔn)備的缺點(diǎn)

在報(bào)表開(kāi)發(fā)中為了應(yīng)對(duì)復(fù)雜的數(shù)據(jù)準(zhǔn)備邏輯而使用存儲(chǔ)過(guò)程和 Java 處理數(shù)據(jù)的情況并不少見(jiàn),在獲得非常有限的開(kāi)發(fā)便利時(shí),卻帶來(lái)了巨大的麻煩。存儲(chǔ)過(guò)程編輯調(diào)試?yán)щy,沒(méi)有移植性更難以擴(kuò)展,會(huì)造成報(bào)表與數(shù)據(jù)庫(kù)的高度耦合,創(chuàng)建修改存儲(chǔ)過(guò)程需要較高的數(shù)據(jù)庫(kù)權(quán)限會(huì)帶來(lái)安全隱患,存儲(chǔ)過(guò)程往往需要專(zhuān)門(mén)的 DBA 維持,也推高了報(bào)表開(kāi)發(fā)成本。不僅如此,同一個(gè)存儲(chǔ)過(guò)程還可能被不同模塊甚至不同應(yīng)用共用,這就造成了應(yīng)用間的緊耦合,牽存儲(chǔ)過(guò)程一發(fā)而動(dòng)應(yīng)用全身。SPL 提供了不依賴(lài)數(shù)據(jù)庫(kù)的計(jì)算能力,從存儲(chǔ)過(guò)程的角度看 SPL 類(lèi)似一種“庫(kù)外存儲(chǔ)過(guò)程”。這樣可以充分解耦報(bào)表和數(shù)據(jù)庫(kù)、應(yīng)用與應(yīng)用,不再存在安全問(wèn)題,移植性也大大增強(qiáng),再借助 SPL 開(kāi)放的多樣數(shù)據(jù)源支持,數(shù)據(jù)庫(kù)擴(kuò)展或更改時(shí)只需要修改數(shù)據(jù)源連接,無(wú)需更改計(jì)算邏輯,可以很好實(shí)現(xiàn)平滑移植。Java 由于缺少結(jié)構(gòu)化計(jì)算類(lèi)庫(kù),實(shí)現(xiàn)報(bào)表數(shù)據(jù)準(zhǔn)備代碼編寫(xiě)難度大,同樣存在依賴(lài)專(zhuān)業(yè)程序員推高報(bào)表開(kāi)發(fā)成本的問(wèn)題。Java 實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)備還會(huì)造成報(bào)表模塊和應(yīng)用其他模塊的緊耦合,不利于將查詢(xún)壓力大的報(bào)表模塊單獨(dú)維護(hù)。作為編譯型語(yǔ)言,Java 缺乏有效的熱切換機(jī)制,對(duì)頻繁多變的報(bào)表業(yè)務(wù)十分不利。SPL 的語(yǔ)法更為簡(jiǎn)潔,實(shí)現(xiàn)同樣的計(jì)算代碼更短,報(bào)表開(kāi)發(fā)人員就可以學(xué)習(xí)使用,人力成本更低。SPL 可以與報(bào)表模塊集成,獨(dú)立于應(yīng)用其他模塊,單獨(dú)運(yùn)行維護(hù),降低應(yīng)用間的耦合性。同時(shí),SPL 解釋執(zhí)行支持熱切換,可以更好適應(yīng)多變的報(bào)表業(yè)務(wù)。

減少數(shù)據(jù)庫(kù)中的中間表

為了簡(jiǎn)化 SQL 運(yùn)算難度或提高查詢(xún)性能,或應(yīng)對(duì)多源情況,經(jīng)常會(huì)進(jìn)行數(shù)據(jù)預(yù)處理,事先加工出一部分中間結(jié)果存在數(shù)據(jù)庫(kù)中形成數(shù)據(jù)庫(kù)中間表。報(bào)表開(kāi)發(fā)時(shí)數(shù)據(jù)準(zhǔn)備基于這些中間表完成,通常可以一定程度簡(jiǎn)化開(kāi)發(fā)難度并獲得較高的查詢(xún)性能。但中間表是一把雙刃劍,提供便利的同時(shí)缺點(diǎn)也很多。大多數(shù)情況下的中間表一旦建立幾乎就無(wú)法刪除(因?yàn)閿?shù)據(jù)庫(kù)表的管理機(jī)制是線(xiàn)性的,很難分類(lèi)以確定中間表的歸屬,不敢輕易刪除),這就會(huì)導(dǎo)致中間表越來(lái)越多,有時(shí)竟然高達(dá)數(shù)萬(wàn)。中間表要占用數(shù)據(jù)庫(kù)空間,導(dǎo)致數(shù)據(jù)庫(kù)容量不夠;而加工中間表則需要數(shù)據(jù)庫(kù)計(jì)算資源,導(dǎo)致數(shù)據(jù)庫(kù)性能下降,中間表過(guò)多會(huì)導(dǎo)致數(shù)據(jù)庫(kù)面臨擴(kuò)容壓力。SPL 提供了不依賴(lài)數(shù)據(jù)庫(kù)的計(jì)算能力,可以將中間表存儲(chǔ)到庫(kù)外文件中(開(kāi)放數(shù)據(jù)文件格式或 SPL 存儲(chǔ)格式),SPL 基于文件進(jìn)行數(shù)據(jù)處理為報(bào)表輸出計(jì)算結(jié)果,完成數(shù)據(jù)準(zhǔn)備。將大量中間表外置到文件系統(tǒng)可以大幅減輕數(shù)據(jù)庫(kù)的壓力,既不用占用數(shù)據(jù)庫(kù)的寶貴空間,更不需要犧牲數(shù)據(jù)庫(kù)計(jì)算資源來(lái)加工中間表可謂一舉兩得。不僅如此,“庫(kù)外中間表”可以使用文件系統(tǒng)的樹(shù)狀結(jié)構(gòu)進(jìn)行管理,不同目錄的中間數(shù)據(jù)對(duì)應(yīng)不同業(yè)務(wù)的報(bào)表,不僅方便管理,還能進(jìn)一步降低報(bào)表模塊間的耦合性。

實(shí)現(xiàn)報(bào)表的熱切換

熱切換(Hot Swap)是指在系統(tǒng)不停機(jī)的情況下更換系統(tǒng)部件,在報(bào)表業(yè)務(wù)中則是指在不重啟報(bào)表及相關(guān)應(yīng)用的情況下完成對(duì)報(bào)表的維護(hù)(新增、修改、刪除),實(shí)時(shí)修改,實(shí)時(shí)生效。目前大部分報(bào)表工具開(kāi)發(fā)的呈現(xiàn)模板都能熱切換,不過(guò)作為報(bào)表一部分的數(shù)據(jù)準(zhǔn)備情況卻有所不同。使用數(shù)據(jù)庫(kù) SQL 完成數(shù)據(jù)準(zhǔn)備可以直接做到熱切換,但編譯型的 Java 不行。而現(xiàn)在隨著更先進(jìn)架構(gòu)(如微服務(wù))的應(yīng)用,使用 Java 完成報(bào)表數(shù)據(jù)準(zhǔn)備的情況非常常見(jiàn)。為了解決報(bào)表熱切換的問(wèn)題,可以使用 SPL 替代 Java 完成諸如微服務(wù)架構(gòu)中的報(bào)表數(shù)據(jù)準(zhǔn)備工作。SPL 解釋執(zhí)行,天然支持熱切換,同時(shí)具備完善的計(jì)算體系以及敏捷語(yǔ)法可以很方便地實(shí)現(xiàn)數(shù)據(jù)處理任務(wù)。

解決多樣性數(shù)據(jù)源

當(dāng)前報(bào)表的數(shù)據(jù)來(lái)源十分豐富,RDB、NoSQL、CSV、Excel、HDFS、Restful/Webservice、Kafka…都可以成為報(bào)表數(shù)據(jù)源,多樣性數(shù)據(jù)源會(huì)帶來(lái)兩個(gè)問(wèn)題,如何連接這些數(shù)據(jù)源?連接后如何關(guān)聯(lián)計(jì)算?而在前后端分離、微服務(wù)等架構(gòu)下,幾乎所有報(bào)表都不會(huì)直接基于數(shù)據(jù)庫(kù)開(kāi)發(fā),多樣數(shù)據(jù)源問(wèn)題就更加嚴(yán)重。以往解決報(bào)表多樣源問(wèn)題的方式有三種:一是借助報(bào)表工具的能力。有些報(bào)表工具提供了多種數(shù)據(jù)源連接支持,分別取數(shù)后在報(bào)表呈現(xiàn)模板中完成關(guān)聯(lián)等計(jì)算。不過(guò),報(bào)表工具的計(jì)算能力很弱,只能實(shí)現(xiàn)很有限的多源混合計(jì)算。二是將多源數(shù)據(jù) ETL 到一個(gè) RDB 中,將多源轉(zhuǎn)化成單源再借助 SQL 能力完成計(jì)算。這種方式不僅很繁瑣,數(shù)據(jù)也不實(shí)時(shí),數(shù)據(jù)量大或計(jì)算復(fù)雜時(shí)還會(huì)引發(fā)數(shù)據(jù)庫(kù)性能問(wèn)題。而且這也嚴(yán)重有悖于微服務(wù)架構(gòu)的原則。三是使用 Java 硬編碼。Java 的問(wèn)題我們已經(jīng)說(shuō)過(guò)多次,不僅編碼難度高,而且也不支持熱切換。開(kāi)源 SPL 目前提供了幾十種數(shù)據(jù)源支持,可以快速連接這些數(shù)據(jù)源完成取數(shù)計(jì)算。不僅是連接取數(shù),SPL 提供豐富的計(jì)算類(lèi)庫(kù)可以很方便進(jìn)行異構(gòu)源混合計(jì)算,實(shí)現(xiàn)多源關(guān)聯(lián)等復(fù)雜計(jì)算。 SPL 實(shí)時(shí)基于多源完成計(jì)算,將計(jì)算后結(jié)果直接輸出報(bào)表進(jìn)行呈現(xiàn),不僅解決了數(shù)據(jù)實(shí)時(shí)性問(wèn)題,也改善了報(bào)表工具計(jì)算能力不足、Java 編碼難熱切換難的困境,是報(bào)表多樣源問(wèn)題的有效解決方式。

提升報(bào)表性能

報(bào)表性能是總也避不開(kāi)的話(huà)題,報(bào)表作為 OLAP 中的最主要應(yīng)用場(chǎng)景,涉及的數(shù)據(jù)可能很多,大數(shù)據(jù)量、計(jì)算邏輯復(fù)雜經(jīng)常會(huì)引發(fā)報(bào)表性能問(wèn)題。而報(bào)表是面向業(yè)務(wù)用戶(hù)呈現(xiàn)的,性能差就會(huì)帶來(lái)很惡劣的用戶(hù)體驗(yàn)。報(bào)表性能問(wèn)題表象上是報(bào)表查詢(xún)慢,但其實(shí)絕大多數(shù)都是數(shù)據(jù)準(zhǔn)備引起的,一旦數(shù)據(jù)準(zhǔn)備好,呈現(xiàn)效率往往很高。報(bào)表數(shù)據(jù)準(zhǔn)備是將原始數(shù)據(jù)加工成報(bào)表需要的數(shù)據(jù)集,報(bào)表要呈現(xiàn)的通常是聚合后的匯總結(jié)果數(shù)據(jù)量并不大,但原始數(shù)據(jù)卻可能非常大,不僅數(shù)據(jù)量大,數(shù)據(jù)處理邏輯也可能很復(fù)雜,這些都會(huì)造成低性能。解決辦法除了常見(jiàn)的優(yōu)化 SQL 以外,還可以使用 SPL 提速。SQL 執(zhí)行效率依賴(lài)數(shù)據(jù)庫(kù)的優(yōu)化能力,而對(duì)復(fù)雜 SQL 數(shù)據(jù)庫(kù)優(yōu)化引擎經(jīng)常失效,導(dǎo)致執(zhí)行效率不高。這時(shí)可以將計(jì)算邏輯使用 SPL 實(shí)現(xiàn),借助 SPL 的高性能算法達(dá)到提速的目的。如果因?yàn)閿?shù)據(jù)庫(kù)過(guò)于繁忙(壓力過(guò)大)導(dǎo)致查詢(xún)慢,優(yōu)化 SQL 也無(wú)能為力;甚至根本無(wú) SQL 可用(非 RDB 源)時(shí),使用不依賴(lài)數(shù)據(jù)庫(kù)能力的 SPL 就比較有效了。特別說(shuō)明的是,對(duì)于計(jì)算密集型任務(wù),使用 SPL 優(yōu)化時(shí)經(jīng)常需要將數(shù)據(jù)事先外置到文件系統(tǒng)再進(jìn)行,目的是減少 RDB 到 SPL 的 IO 時(shí)間,如果從數(shù)據(jù)庫(kù)實(shí)時(shí)取數(shù)計(jì)算,IO 時(shí)間可能比計(jì)算時(shí)間還要長(zhǎng)。另外,SPL 存儲(chǔ)在數(shù)據(jù)組織方式上有很大優(yōu)勢(shì),基于 SPL 存儲(chǔ)計(jì)算可以獲得更高性能。除了數(shù)據(jù)準(zhǔn)備外,數(shù)據(jù)傳輸也是另一個(gè)瓶頸。報(bào)表通過(guò) JDBC 接口訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)讀取所需數(shù)據(jù)時(shí),如果數(shù)據(jù)量比較大或者數(shù)據(jù)庫(kù) JDBC 性能較差(各種數(shù)據(jù)庫(kù)的 JDBC 效率是不同的)會(huì)導(dǎo)致數(shù)據(jù)傳輸時(shí)間過(guò)長(zhǎng),導(dǎo)致報(bào)表變慢。對(duì)于數(shù)據(jù)密集型的報(bào)表,可以通過(guò) SPL并行取數(shù)來(lái)提速。在 SPL 中建立多個(gè)數(shù)據(jù)庫(kù)連接(這時(shí)要求數(shù)據(jù)庫(kù)相對(duì)空閑),采用多線(xiàn)程的方式同時(shí)讀取報(bào)表所需數(shù)據(jù),可以是同一個(gè)表,也可以是多個(gè)表關(guān)聯(lián)計(jì)算后的結(jié)果,這樣數(shù)據(jù)傳輸?shù)臅r(shí)間理論上就會(huì)縮短到原來(lái)的 1/n(n 是線(xiàn)程數(shù)),從而提升報(bào)表性能。此外,報(bào)表本身也可能發(fā)生計(jì)算較慢的問(wèn)題。比如報(bào)表工具完成多數(shù)據(jù)集的關(guān)聯(lián)是在報(bào)表單元格的表達(dá)式中完成的,類(lèi)似這樣 ds2.select(ID==ds1.ID),報(bào)表引擎在解析這個(gè)表達(dá)式時(shí)會(huì)按照順序遍歷的方式完成關(guān)聯(lián),即從 ds2(數(shù)據(jù)集 2) 中拿出一條記錄,到 ds1 (數(shù)據(jù)集 1)中遍歷,查找 ID 相同的記錄;然后再拿第二條再去遍歷查找;…
這個(gè)運(yùn)算復(fù)雜度是平方級(jí)的,數(shù)據(jù)量小的時(shí)候沒(méi)什么影響,數(shù)據(jù)量稍大時(shí)性能就會(huì)急劇下降。
解決辦法是將在報(bào)表端實(shí)現(xiàn)的多數(shù)據(jù)集關(guān)聯(lián)運(yùn)算轉(zhuǎn)移到數(shù)據(jù)準(zhǔn)備階段完成。如果是同一個(gè)數(shù)據(jù)庫(kù)可以使用 SQL,但如果 SQL 運(yùn)行效率不高,或者數(shù)據(jù)來(lái)自多源時(shí),可以使用 SPL 完成關(guān)聯(lián)計(jì)算。仍然是借助 SPL 的多源能力、高性能算法以及高性能存儲(chǔ)來(lái)達(dá)到提速的目的。

低成本應(yīng)對(duì)沒(méi)完沒(méi)了

報(bào)表不同于企業(yè)信息系統(tǒng)的其他部分,會(huì)伴隨系統(tǒng)生命周期一直不斷新增、修改。這是由于企業(yè)在生產(chǎn)經(jīng)營(yíng)過(guò)程中會(huì)不斷催生出新的報(bào)表需求,這就造成了沒(méi)完沒(méi)了的報(bào)表。沒(méi)完沒(méi)了的報(bào)表無(wú)法消除,只能適應(yīng),這就需要低成本的適應(yīng)方案。總體來(lái)講,想要高效率、低成本地應(yīng)對(duì)報(bào)表沒(méi)完沒(méi)了可以按照這樣幾步來(lái)走:第一步,引入報(bào)表工具解決報(bào)表呈現(xiàn)階段的人力。先把最容易解決的問(wèn)題解決掉,通過(guò)引入專(zhuān)業(yè)的報(bào)表工具解放報(bào)表數(shù)據(jù)呈現(xiàn)階段的人力,完成各類(lèi)圖表呈現(xiàn)。目前大部分用戶(hù)都會(huì)使用報(bào)表工具開(kāi)發(fā)報(bào)表,因此這一步已基本實(shí)現(xiàn)。第二步,引入計(jì)算工具解決報(bào)表數(shù)據(jù)準(zhǔn)備階段的人力。跟第一步類(lèi)似,要將報(bào)表數(shù)據(jù)準(zhǔn)備也工具化才能徹底解決以往報(bào)表數(shù)據(jù)準(zhǔn)備效率低下的問(wèn)題。前文我們討論的都是這個(gè)階段的問(wèn)題,利用開(kāi)源 SPL 編碼簡(jiǎn)潔、多源支持、熱切換等特性可以很好實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)備工具化。配合第一步,可以讓整個(gè)報(bào)表開(kāi)發(fā)工作全面工具化,從而獲得更高的開(kāi)發(fā)效率。第三步,獨(dú)立報(bào)表模塊優(yōu)化應(yīng)用結(jié)構(gòu)。報(bào)表開(kāi)發(fā)全面工具化后,就可以調(diào)整應(yīng)用結(jié)構(gòu),把報(bào)表模塊從業(yè)務(wù)系統(tǒng)中解耦出來(lái)。報(bào)表模塊僅僅共享業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源(數(shù)據(jù)庫(kù)或別的數(shù)據(jù)存儲(chǔ)介質(zhì)),而不再和業(yè)務(wù)系統(tǒng)緊密耦合。報(bào)表呈現(xiàn)和數(shù)據(jù)準(zhǔn)備都工具化之后,報(bào)表運(yùn)算可以被中間件解釋執(zhí)行,這樣,報(bào)表的頻繁修改增加也不需要讓業(yè)務(wù)系統(tǒng)都重新啟動(dòng),大幅降低運(yùn)維的復(fù)雜度。這個(gè)過(guò)程特別重要的是梳理數(shù)據(jù)源,把報(bào)表模塊需要的數(shù)據(jù)源單獨(dú)整理出來(lái),以后開(kāi)發(fā)報(bào)表只需要和這些數(shù)據(jù)源打交道。通過(guò)這樣三步將報(bào)表開(kāi)發(fā)全面工具化,提升了報(bào)表開(kāi)發(fā)效率,同時(shí)還優(yōu)化了應(yīng)用結(jié)構(gòu),獨(dú)立后的報(bào)表模塊單獨(dú)運(yùn)維,無(wú)論從技術(shù)架構(gòu)上還是人員架構(gòu)上都更為合理,有效應(yīng)對(duì)沒(méi)完沒(méi)了的報(bào)表。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7085

    瀏覽量

    89202
  • spl
    spl
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    16345
  • 開(kāi)源工具
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    4507

原文標(biāo)題:有了這個(gè)開(kāi)源工具,數(shù)據(jù)準(zhǔn)備太方便了!

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用ADS1256結(jié)合飛思卡爾的單片機(jī)設(shè)計(jì)一個(gè)數(shù)據(jù)采集系統(tǒng),為什么采用SPI通信時(shí)得到的總是一個(gè)固定的數(shù)?

    準(zhǔn)備用ADS1256結(jié)合飛思卡爾的單片機(jī)設(shè)計(jì)一個(gè)數(shù)據(jù)采集系統(tǒng),但是不知道為什么采用SPI通信時(shí),得到的總是一個(gè)固定的數(shù)。
    發(fā)表于 01-02 06:02

    自動(dòng)化報(bào)表生成:水庫(kù)水雨情監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)可視化功能

    在現(xiàn)代水庫(kù)管理中,水雨情監(jiān)測(cè)系統(tǒng)不僅承擔(dān)著實(shí)時(shí)監(jiān)測(cè)水情、降水、氣象等數(shù)據(jù)的任務(wù),同時(shí)還通過(guò)數(shù)據(jù)可視化功能將復(fù)雜的水文信息呈現(xiàn)為易于理解的圖表、報(bào)表等,極大提升了水庫(kù)管理的決策效率和準(zhǔn)確性。自動(dòng)化
    的頭像 發(fā)表于 12-25 15:52 ?156次閱讀
    自動(dòng)化<b class='flag-5'>報(bào)表</b>生成:水庫(kù)水雨情監(jiān)測(cè)系統(tǒng)的<b class='flag-5'>數(shù)據(jù)</b>可視化功能

    ADS1256設(shè)置不同的數(shù)據(jù)輸出速率的時(shí)候,得到的24bit的輸出數(shù)據(jù)不相同,為什么?

    在使用ADS1256采集數(shù)據(jù)時(shí)出現(xiàn)問(wèn)題描述如下:當(dāng)設(shè)置不同的數(shù)據(jù)輸出速率的時(shí)候,得到的24bit的輸出數(shù)據(jù)不相同。 采集系統(tǒng)硬件描述如下,
    發(fā)表于 12-13 06:34

    LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)準(zhǔn)備方法

    LSTM(Long Short-Term Memory,長(zhǎng)短期記憶)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)準(zhǔn)備方法是一個(gè)關(guān)鍵步驟,它直接影響到模型的性能和效果。以下是一些關(guān)于LSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)準(zhǔn)備
    的頭像 發(fā)表于 11-13 10:08 ?703次閱讀

    測(cè)徑儀控制軟件 趨勢(shì)圖報(bào)表一個(gè)不能少

    測(cè)徑儀控制軟件是工業(yè)領(lǐng)域中用于精確測(cè)量和監(jiān)控物體直徑的重要工具。為了確保數(shù)據(jù)的直觀(guān)展示和后續(xù)分析,趨勢(shì)圖報(bào)表的生成是不可或缺的功能。 以下是一些關(guān)于測(cè)徑儀控制軟件中如何確保趨勢(shì)圖報(bào)表功能完善的建議
    發(fā)表于 10-21 14:35

    商業(yè)水電抄表收費(fèi)困難怎么解決?

    一 、 商業(yè)水電收費(fèi)困難的原因 分戶(hù)計(jì)量不準(zhǔn)確:水電表可能存在精度問(wèn)題或故障,導(dǎo)致讀數(shù)不準(zhǔn)確,從而引發(fā)業(yè)主對(duì)水電費(fèi)的質(zhì)疑和糾紛; ? 水電費(fèi)明細(xì)無(wú)法實(shí)時(shí)查看:水電的使用量和項(xiàng)管費(fèi)用無(wú)法形成明細(xì)報(bào)表
    的頭像 發(fā)表于 10-14 10:38 ?442次閱讀
    商業(yè)水電抄表收費(fèi)<b class='flag-5'>困難</b>怎么解決?

    LABVIEW報(bào)表創(chuàng)建工具遇到的一個(gè)問(wèn)題,麻煩大佬幫忙看一下

    報(bào)表插入之后打開(kāi)EXCEL選定的保存位置會(huì)提示如下 此時(shí)無(wú)論點(diǎn)是或者否保存的數(shù)據(jù)都會(huì)消失,仔細(xì)觀(guān)察之后發(fā)現(xiàn)創(chuàng)建報(bào)表創(chuàng)建的EXCEL進(jìn)程,無(wú)法被處置報(bào)表VI關(guān)閉。此時(shí)手動(dòng)點(diǎn)擊EXCEL
    發(fā)表于 10-09 10:03

    使用.cmm閃存初始SW借助Trace32 SW腳本,數(shù)據(jù)無(wú)法從高速緩存內(nèi)存讀取特定扇區(qū)的數(shù)據(jù),為什么?

    1. 我們將使用 .cmm 閃存初始 SW 借助 Trace32 SW 腳本。 2.初始 SW 將使用 INIT SW 閃存驅(qū)動(dòng)器閃存 APP SW。 完成上述步驟后,我們需要讀取 APP 數(shù)據(jù)
    發(fā)表于 06-03 08:20

    阿里云與中興通訊達(dá)成開(kāi)源數(shù)據(jù)庫(kù)合作

    近日,阿里云與中興通訊宣布達(dá)成開(kāi)源數(shù)據(jù)庫(kù)領(lǐng)域的深度合作。中興通訊正式加入PolarDB開(kāi)源社區(qū),并榮任首屆理事會(huì)成員單位,這一舉措標(biāo)志著兩大科技巨頭在數(shù)據(jù)庫(kù)領(lǐng)域的合作邁向新的高度。
    的頭像 發(fā)表于 05-17 10:47 ?589次閱讀

    STM32-CLASSB-SPL與standard peripherals library一樣嗎?

    STM32-CLASSB-SPL與standard peripherals library一樣嗎,能同等使用嗎,迷惑啊,最近開(kāi)發(fā),看到這樣的兩個(gè)庫(kù)
    發(fā)表于 04-22 08:06

    STM32F0的SPL庫(kù)能在STM32G0上用嗎?

    原來(lái)用的STM32F0系列,使用的V3.5.0的標(biāo)準(zhǔn)外設(shè)庫(kù)。現(xiàn)在改用STM32G0系列,發(fā)現(xiàn)官網(wǎng)提供的固件庫(kù)是STM32CubeG0,里面是HAL和LL庫(kù)。為了節(jié)省開(kāi)發(fā)時(shí)間,想還是用SPL庫(kù),有對(duì)應(yīng)的SPL嗎?STM32F0的SPL
    發(fā)表于 04-08 08:29

    CLASSB-SPL移植到帶FreeRTOS的工程中,Timebase Source使用tim14會(huì)進(jìn)入錯(cuò)誤中斷的原因?

    功能安全,CLASSB-SPL 移植到 帶FreeRTOS的工程中,Timebase Source 使用tim14 而不是 sysytik,會(huì)進(jìn)入錯(cuò)誤中斷?求解
    發(fā)表于 03-22 07:53

    求助:labview報(bào)表excel出現(xiàn)閃屏

    我在LABVIEW程序里建了一個(gè)EXCEL報(bào)表程序,報(bào)表的窗口狀態(tài)是no change。如果我不打開(kāi)excel,就不會(huì)彈出所查的表;但是當(dāng)我打開(kāi)任意一個(gè)不相關(guān)的excel表格之后,查找的excel
    發(fā)表于 01-17 17:00

    工廠(chǎng)能源管理系統(tǒng)都監(jiān)測(cè)哪些數(shù)據(jù)呢?

    它能夠按照不同的時(shí)間維度和區(qū)域維度,精心準(zhǔn)備各種可視化數(shù)據(jù)報(bào)表和曲線(xiàn)圖。這些報(bào)表和圖像不僅展示了工廠(chǎng)各能耗數(shù)據(jù)在不同時(shí)間段的變化趨勢(shì),而且數(shù)據(jù)
    的頭像 發(fā)表于 01-17 16:02 ?847次閱讀

    關(guān)于LABVIEW的報(bào)表功能導(dǎo)致程序中止出現(xiàn)卡頓

    我在labview的while循環(huán)里面放入EXCEL報(bào)表功能(向EXCEL寫(xiě)入數(shù)據(jù)),每執(zhí)行一次循環(huán)就會(huì)往EXCEL寫(xiě)入數(shù)據(jù); 在程序執(zhí)行報(bào)表的時(shí)候,如果需要停止程序運(yùn)行,要反復(fù)多次點(diǎn)
    發(fā)表于 01-16 21:02
    主站蜘蛛池模板: 国产三级在线观看免费| 我们中文在线观看免费完整版| 青青草在现线免费观看| 亚洲欧洲免费三级网站| babesvideos欧美最新| 黑人BBCVIDEOS极品| 秋霞电影网午夜鲁丝片| 一个色综合久久| 国产成人精品自线拍| 男人和女人一起愁愁愁很痛| 亚洲高清国产拍精品5g| 成人午夜剧场| 蜜臀色欲AV无人A片一区| 亚洲 自拍 清纯 综合图区| 扒开女人下面使劲桶视频| 狂躁美女BBBBBB视频| 亚洲精品一区二区在线看片| 菲律宾毛片| 欧美高清vivoesosexo18| 在线亚洲中文精品第1页| 国产免费福利在线视频| 日韩内射美女人妻一区二区三区| 18 japanese宾馆直播| 饥渴的新婚女教师| 小柔的性放荡羞辱日记| 岛国精品在线观看| 捏揉舔水插按摩师| 与嫂子同居的日子在线观看| 国产在线观看香蕉视频| 色网址在线观看| 爱啪国产精品视频在线| 美女内射少妇一区二区四区| 一道精品视频一区二区| 国产亚洲视频精彩在线播放| 色综合久久久久久| 草莓视频免费看| 欧美AAAA片免费播放观看| 18未满不能进的福利社| 久久视频在线视频观品15 | 日本美女阴道| jizz69女士第一次|