偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

數(shù)據(jù)中臺(tái)為什么不好搞?

數(shù)據(jù)庫(kù) 新聞
數(shù)據(jù)中臺(tái)落地的關(guān)鍵在于計(jì)算引擎,而計(jì)算引擎需要具備獨(dú)立且完備的計(jì)算能力、應(yīng)對(duì)多樣性數(shù)據(jù)源的開(kāi)放性、開(kāi)發(fā)的高效性以應(yīng)對(duì)不停變化的前臺(tái)需求。

從 2015 年阿里提出“大中臺(tái)”的數(shù)據(jù)中臺(tái)戰(zhàn)略,到 2019 年大廠及中臺(tái)服務(wù)商“大興”數(shù)據(jù)中臺(tái),再到 2021 年大廠又開(kāi)始拆中臺(tái)。數(shù)據(jù)中臺(tái)從小甜甜變成牛夫人僅僅用了 2 年時(shí)間,為什么這么快數(shù)據(jù)中臺(tái)就不香了?(說(shuō)明:數(shù)據(jù)中臺(tái)的概念比較模糊,有些人說(shuō)是業(yè)務(wù)概念,有些人說(shuō)是技術(shù)概念,這里我們僅從技術(shù)的角度討論,即認(rèn)為數(shù)據(jù)中臺(tái)是技術(shù)概念)

數(shù)據(jù)中臺(tái)為什么難搞?

從技術(shù)上講,中臺(tái)的架構(gòu)挺合理的。在前臺(tái)和后臺(tái)之間夾一個(gè)中臺(tái),屏蔽后臺(tái)的數(shù)據(jù)存儲(chǔ),應(yīng)對(duì)前面沒(méi)完沒(méi)了的變化需求。前臺(tái)跟著界面走,天生就穩(wěn)定不了,總是有五花八門(mén)的數(shù)據(jù)請(qǐng)求,這是必然的事情。后臺(tái)應(yīng)該主要負(fù)責(zé)數(shù)據(jù)存儲(chǔ),把不同形式和規(guī)模的數(shù)據(jù)以合適的方式整理好,大數(shù)據(jù)倒騰起來(lái)動(dòng)靜太大,要求有一定的穩(wěn)定性。如果前臺(tái)的請(qǐng)求都要求后臺(tái)直接做,那后臺(tái)管的事就太多了。應(yīng)對(duì)靈活請(qǐng)求和規(guī)整數(shù)據(jù)存儲(chǔ)在一定程度上是兩個(gè)優(yōu)化目標(biāo)不同的需求,同一個(gè)團(tuán)隊(duì)在同一套硬件上同時(shí)對(duì)付這兩件事,容易發(fā)生精神分裂。而且,后臺(tái)是被許多前臺(tái)共享的,如果直接向前臺(tái)提供靈活數(shù)據(jù)服務(wù),還可能導(dǎo)致各個(gè)前臺(tái)之間的耦合程度太高,維護(hù)成本立即陡增。同樣的,把這些數(shù)據(jù)處理放在前臺(tái)也不合適,一方面不太安全,另一方面,前臺(tái)團(tuán)隊(duì)也是忙著讓界面如何更好看使用更流暢,沒(méi)太多工夫琢磨數(shù)據(jù)的事情。有了中臺(tái)就好很多了,后臺(tái)專(zhuān)心管存儲(chǔ),前面專(zhuān)心管界面,前后臺(tái)之間的差距由中臺(tái)負(fù)責(zé)抹平。分工明確,各司其職,效率自然提高。

既然架構(gòu)合理,那為啥搞不下去?

原因呢,說(shuō)啥的都有,不過(guò)大都沒(méi)說(shuō)到點(diǎn)子上。因?yàn)檎f(shuō)這些話(huà)的大都不寫(xiě)代碼,寫(xiě)代碼的又大都輪不到來(lái)說(shuō)話(huà)。技術(shù)上的根本原因在于,業(yè)界就沒(méi)有準(zhǔn)備好能讓數(shù)據(jù)中臺(tái)落地的技術(shù)!

中臺(tái)向前臺(tái)提供數(shù)據(jù)服務(wù)。啥是數(shù)據(jù)服務(wù)呢?就是收到請(qǐng)求后返回一些合適的數(shù)據(jù)回去,那咋弄出返回的數(shù)據(jù)呢?計(jì)算!就是把以前在后臺(tái)讓數(shù)據(jù)庫(kù)做的事搬到中臺(tái)完成。

那么,你打算讓我用什么技術(shù)來(lái)寫(xiě)這些計(jì)算代碼呢?

Java?開(kāi)玩笑呢?寫(xiě)個(gè)稍復(fù)雜些的分組匯總就可能好幾百行,你讓我怎么提高效率?還想迅速應(yīng)對(duì)前臺(tái)變化?這代碼我連寫(xiě)帶調(diào)得好幾天,下禮拜再見(jiàn)吧。

中臺(tái)要干的這些任務(wù),也是之前數(shù)據(jù)庫(kù)干的事,絕大多數(shù)都是結(jié)構(gòu)化數(shù)據(jù)相關(guān)的計(jì)算。而 Java 這些高級(jí)語(yǔ)言基本上沒(méi)什么好用的結(jié)構(gòu)化數(shù)據(jù)計(jì)算類(lèi)庫(kù),原先用 SQL 幾句幾十句話(huà)能搞定的事,現(xiàn)在用 Java 就得幾百甚至上千行代碼了。代碼長(zhǎng)了,不僅難寫(xiě),還容易錯(cuò)。而且,Java 程序員的成本也挺高啊,效率沒(méi)提高,錢(qián)倒花多了,那又何苦?

你可能會(huì)說(shuō),Java 支持 Stream 以后這些問(wèn)題就都能解決啊。Stream 看著挺好,但實(shí)際用起來(lái)完全不是那么回事。Stream 的中間計(jì)算結(jié)果和最終結(jié)果都要事先定義,而結(jié)構(gòu)的定義和賦值都很麻煩,如果不定義,閱讀和使用又不直觀。而且 Stream 雖然支持 lambda 語(yǔ)法,但接口規(guī)則比較復(fù)雜,代碼沒(méi)短多少閱讀障礙卻顯著增加。Stream 的結(jié)構(gòu)化對(duì)象如 record\entiry\Map 都不方便,根本原因還是在于 Java 缺乏專(zhuān)業(yè)的結(jié)構(gòu)化數(shù)據(jù)對(duì)象,缺少來(lái)自底層的有力支持。

與 Stream 類(lèi)似,Kotlin 計(jì)算能力不足也是由于缺乏專(zhuān)業(yè)的結(jié)構(gòu)化數(shù)據(jù)對(duì)象導(dǎo)致的。無(wú)法支持動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)、難以真正簡(jiǎn)化 Lambda 語(yǔ)法、無(wú)法直接引用字段等等。同時(shí) Kotlin 也缺乏一些重要的基本函數(shù),比如關(guān)聯(lián)計(jì)算,開(kāi)發(fā)者仍然要硬編碼完成計(jì)算,對(duì)于多個(gè)基本計(jì)算組合而成的業(yè)務(wù)算法,開(kāi)發(fā)過(guò)程仍然困難。

但是,貌似有些大廠的中臺(tái)架構(gòu)實(shí)施得不錯(cuò),這又咋解釋?zhuān)?/p>

可能是大廠人才多,Java 代碼積累豐富吧,搞起這些計(jì)算就容易一點(diǎn)了。而且,事實(shí)是這些互聯(lián)網(wǎng)大廠雖然大,業(yè)務(wù)復(fù)雜度卻遠(yuǎn)遠(yuǎn)趕不上傳統(tǒng)行業(yè),大廠能搞得通的事,你可未必能搞得通。更何況大廠又開(kāi)始拆中臺(tái)了不是?

不用 Java,那咱還繼續(xù)用 SQL 行不?

嗯,那得在中臺(tái)也放個(gè)數(shù)據(jù)庫(kù),把一堆數(shù)據(jù)從后臺(tái)搬出來(lái)再移到中臺(tái)來(lái)。搬多少數(shù)據(jù)呢?貌似所有的數(shù)據(jù)都有可能用于計(jì)算,那得把整個(gè)后臺(tái)的數(shù)據(jù)都搬過(guò)來(lái)。然則這玩意兒還能叫中臺(tái)?不就是把后臺(tái)挪了個(gè)位置而已,純粹吃飽了撐的嘛。

在沒(méi)有不依賴(lài)于數(shù)據(jù)庫(kù)的、可被集成嵌入的、支持多樣數(shù)據(jù)源、簡(jiǎn)單方便且豐富強(qiáng)大的結(jié)構(gòu)化數(shù)據(jù)計(jì)算能力之時(shí),數(shù)據(jù)中臺(tái)就是空想,架構(gòu)好看,但無(wú)法落地。強(qiáng)行上中臺(tái),除非你的業(yè)務(wù)足夠簡(jiǎn)單,否則就是只會(huì)讓開(kāi)發(fā)成本上升而效率下降,靈活性一點(diǎn)沒(méi)增加,麻煩事卻一大堆。

數(shù)據(jù)中臺(tái)受制于計(jì)算能力。必須要具有上述特征的計(jì)算引擎之后,才能讓數(shù)據(jù)中臺(tái)的合理架構(gòu)真正發(fā)揮作用,也才能讓數(shù)據(jù)中臺(tái)實(shí)打?qū)嵉芈涞?、開(kāi)花、結(jié)果。

開(kāi)源 SPL:數(shù)據(jù)中臺(tái)計(jì)算引擎

開(kāi)源計(jì)算引擎 SPL 具備數(shù)據(jù)中臺(tái)需要的所有特性,不僅提供了不依賴(lài)數(shù)據(jù)庫(kù)的完備計(jì)算能力,開(kāi)放的計(jì)算體系還可以直接基于多樣數(shù)據(jù)源進(jìn)行計(jì)算,同時(shí)豐富的計(jì)算類(lèi)庫(kù)和敏捷語(yǔ)法可以很方便完成復(fù)雜結(jié)構(gòu)化數(shù)據(jù)計(jì)算,SPL 優(yōu)秀的集成性確保了可以方便地被分布到數(shù)據(jù)中臺(tái)的各個(gè)環(huán)節(jié)以處理數(shù)據(jù),助力數(shù)據(jù)中臺(tái)發(fā)揮應(yīng)有的效力。

邏輯上 SPL 介于應(yīng)用和數(shù)據(jù)源之間實(shí)施數(shù)據(jù)處理,對(duì)上提供計(jì)算服務(wù),對(duì)下屏蔽多樣性數(shù)據(jù)源差異,完美貼合數(shù)據(jù)中臺(tái)的結(jié)構(gòu)。SPL 提供了標(biāo)準(zhǔn) JDBC/ODBC/RESTful 接口,可以像調(diào)用存儲(chǔ)過(guò)程一樣請(qǐng)求 SPL 計(jì)算結(jié)果。JDBC 調(diào)用 SPL 代碼示例:

Class.forName("com.esproc.jdbc.InternalDriver");
Connection conn =DriverManager.getConnection("jdbc:esproc:local://");
CallableStatement st = conn.prepareCall("{call splscript(?, ?)}");
st.setObject(1, 3000);
st.setObject(2, 5000);
ResultSet result=st.execute();

熱切換能力

SPL 采用解釋執(zhí)行機(jī)制,天然支持熱切換。這樣對(duì)于穩(wěn)定性差、經(jīng)常需要新增修改的中臺(tái)數(shù)據(jù)處理需求非常友好。SPL 服務(wù)腳本與 Java 程序獨(dú)立,外置在 Java 之外,修改和維護(hù)都可以獨(dú)立進(jìn)行,腳本修改上傳后就能實(shí)時(shí)生效,保證中臺(tái)可以不中斷地提供服務(wù)。

使用 SPL 實(shí)現(xiàn)中臺(tái)中的數(shù)據(jù)處理邏輯,可以有效地降低數(shù)據(jù)服務(wù)和框架之間的耦合性。整個(gè)中臺(tái)架構(gòu)也更為合理。

敏捷語(yǔ)法

作為專(zhuān)業(yè)的數(shù)據(jù)計(jì)算引擎,SPL 為結(jié)構(gòu)化數(shù)據(jù)處理設(shè)計(jì)了專(zhuān)門(mén)的敏捷計(jì)算語(yǔ)法,通過(guò) SPL 語(yǔ)法可以快速實(shí)現(xiàn)數(shù)據(jù)處理任務(wù),及時(shí)響應(yīng)前臺(tái)多變的數(shù)據(jù)請(qǐng)求。在敏捷語(yǔ)法與過(guò)程計(jì)算的支持下,即使原來(lái)使用 SQL 難以完成的復(fù)雜計(jì)算(更不用說(shuō) Java 了),用 SPL 也可以輕松實(shí)現(xiàn)。比如要根據(jù)股票記錄查詢(xún)某只股票最長(zhǎng)連續(xù)上漲天數(shù),SQL(oracle)的寫(xiě)法如下:

select max(continuousDays)-1
from (select count(*) continuousDays
from (select sum(changeSign) over(order by tradeDate) unRiseDays
from (select tradeDate,
case when price>lag(price) over(order by tradeDate) then 0 else 1 end changeSign from AAPL) )
group by unRiseDays)

可以嘗試一下讀懂這句 SQL,是不是很繞?這是由 SQL 的特性(缺乏離散性、集合化不徹底等)決定的。同樣的思路,SPL 寫(xiě)起來(lái)就簡(jiǎn)單多了,不用繞來(lái)繞去了:

數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出(數(shù)據(jù)源是什么都可以,下面會(huì)說(shuō)到 SPL 的開(kāi)放性),計(jì)算在計(jì)算引擎 SPL 中完成,符合數(shù)據(jù)中臺(tái)的目標(biāo)。

SPL 還提供了簡(jiǎn)潔易用的 IDE 環(huán)境,在 IDE 中不僅可以很方便編碼調(diào)試,過(guò)程計(jì)算的每步計(jì)算結(jié)果都可以實(shí)時(shí)查看,網(wǎng)格式編碼代碼天然整齊,通過(guò)格子名稱(chēng)引用中間計(jì)算結(jié)果無(wú)需定義變量,十分方便。

強(qiáng)計(jì)算

數(shù)據(jù)中臺(tái)的計(jì)算引擎需要獨(dú)立的計(jì)算能力。SPL 作為獨(dú)立的計(jì)算引擎,計(jì)算能力不依賴(lài)數(shù)據(jù)庫(kù),提供了十分豐富的結(jié)構(gòu)化計(jì)算類(lèi)庫(kù),擁有完備的計(jì)算能力。分組匯總、循環(huán)、過(guò)濾、集合運(yùn)算、有序計(jì)算等應(yīng)有盡有。

SPL 還提供了很多高性能算法來(lái)保證計(jì)算效率,內(nèi)外存計(jì)算、索引機(jī)制、遍歷復(fù)用等很多在業(yè)界內(nèi)首次使用的算法,同時(shí)支持并行計(jì)算進(jìn)一步提升計(jì)算性能。

開(kāi)放性

SPL 還具備非常開(kāi)放的計(jì)算能力,可以對(duì)接多種數(shù)據(jù)源,RDB、NoSQL、CSV、Excel、JSON/XML、Hadoop、RESTful、Webservice 都可以直接對(duì)接并進(jìn)行混合計(jì)算,不需要借助數(shù)據(jù)庫(kù),數(shù)據(jù)實(shí)時(shí)性和計(jì)算實(shí)時(shí)性都可以很好保障。

我們知道,不同數(shù)據(jù)源有各自的優(yōu)勢(shì),RDB 計(jì)算能力較強(qiáng),但 IO 吞吐能力弱;NoSQL 的 IO 效率高,但計(jì)算能力很弱;而文本等文件數(shù)據(jù)完全沒(méi)有計(jì)算能力,但使用非常靈活。SPL 不僅可以基于這些數(shù)據(jù)源混合計(jì)算,在實(shí)施計(jì)算時(shí)還可以充分保留原有數(shù)據(jù)源的優(yōu)勢(shì)。除了原生計(jì)算語(yǔ)法,SPL 也提供 SQL 支持(相當(dāng) SQL92 標(biāo)準(zhǔn)),可以使用 SQL 查詢(xún)文本、Excel、NoSQL 等非 RDB 數(shù)據(jù)源,這樣就極大方便了熟悉 SQL 的應(yīng)用開(kāi)發(fā)人員。

總結(jié)一下,數(shù)據(jù)中臺(tái)落地的關(guān)鍵在于計(jì)算引擎,而計(jì)算引擎需要具備獨(dú)立且完備的計(jì)算能力、應(yīng)對(duì)多樣性數(shù)據(jù)源的開(kāi)放性、開(kāi)發(fā)的高效性以應(yīng)對(duì)不停變化的前臺(tái)需求,還能支持熱切換以確保中臺(tái)持續(xù)提供服務(wù)。從這些方面來(lái)看,SPL 的確是數(shù)據(jù)中臺(tái)計(jì)算引擎的不二之選。

責(zé)任編輯:張燕妮 來(lái)源: 編程技術(shù)宇宙
相關(guān)推薦

2022-01-06 15:20:43

蘋(píng)果中臺(tái)架構(gòu)

2021-03-19 08:50:11

數(shù)據(jù)中臺(tái)業(yè)務(wù)中臺(tái)架構(gòu)

2012-02-17 16:37:20

云計(jì)算

2017-08-31 09:19:50

硬盤(pán)服務(wù)器云存儲(chǔ)

2023-12-08 10:59:49

2020-05-13 09:03:14

Python開(kāi)發(fā)代碼

2021-03-14 15:17:13

前端開(kāi)發(fā)架構(gòu)

2017-09-20 16:22:35

谷歌

2018-05-21 16:26:32

編程語(yǔ)言javapython

2014-10-20 10:53:13

ArubaWi-Fi無(wú)線(xiàn)網(wǎng)絡(luò)

2019-02-14 07:44:34

VoLTE5G網(wǎng)絡(luò)

2021-05-12 14:46:46

數(shù)字貨幣人民幣金融

2018-04-11 14:56:47

NFV虛擬化核心網(wǎng)

2023-10-24 08:01:38

String傳統(tǒng)

2018-09-10 09:10:49

管理崗技術(shù)崗技術(shù)

2019-05-28 23:00:45

數(shù)據(jù)中臺(tái)大數(shù)據(jù)開(kāi)源工具

2021-08-03 06:43:31

阿里中臺(tái)業(yè)務(wù)

2019-09-09 11:02:17

Nginx進(jìn)程模型

2019-01-29 10:16:38

Redis高可用集群

2020-06-16 13:26:03

新基建網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

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