最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一篇文章讀懂實(shí)時(shí)數(shù)倉(cāng)的過(guò)去、現(xiàn)在和未來(lái)

2022-09-26 09:39 作者:偶數(shù)實(shí)驗(yàn)室  | 我要投稿



1991年,比爾·恩門(Bill Inmon)出版了他的第一本關(guān)于數(shù)據(jù)倉(cāng)庫(kù)的書《Building the Data Warehouse》,標(biāo)志著數(shù)據(jù)倉(cāng)庫(kù)概念的確立。
我們所常說(shuō)的企業(yè)數(shù)據(jù)倉(cāng)庫(kù)Enterprise Data Warehouse (EDW) ,就是一個(gè)用于聚合不同來(lái)源的數(shù)據(jù)(比如事務(wù)系統(tǒng)、關(guān)系數(shù)據(jù)庫(kù)和操作數(shù)據(jù)庫(kù)),然后方便進(jìn)行數(shù)據(jù)訪問(wèn)、分析和報(bào)告的系統(tǒng)(例如銷售交易數(shù)據(jù)、移動(dòng)應(yīng)用數(shù)據(jù)和CRM數(shù)據(jù)),只要數(shù)據(jù)匯集到數(shù)倉(cāng)中,整個(gè)企業(yè)都訪問(wèn)和使用,從而方便大家來(lái)全面的了解業(yè)務(wù)。我們的數(shù)據(jù)工程師和業(yè)務(wù)分析師可以將這些不同來(lái)源的相關(guān)數(shù)據(jù)應(yīng)用于商業(yè)智能(BI)和人工智能(AI)等方面,以便帶來(lái)更好的預(yù)測(cè),并最終為我們作出更好的業(yè)務(wù)決策。




企業(yè)為什么需要實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)


傳統(tǒng)意義上的數(shù)據(jù)倉(cāng)庫(kù)主要處理T+1數(shù)據(jù),即今天產(chǎn)生的數(shù)據(jù)分析結(jié)果明天才能看到,T+1的概念來(lái)源于股票交易,是一種股票交易制度,即當(dāng)日買進(jìn)的股票要到下一個(gè)交易日才能賣出。
隨著互聯(lián)網(wǎng)以及很多行業(yè)線上業(yè)務(wù)的快速發(fā)展,讓數(shù)據(jù)體量以前所未有的速度增長(zhǎng),數(shù)據(jù)時(shí)效性在企業(yè)運(yùn)營(yíng)中的重要性日益凸現(xiàn),企業(yè)對(duì)海量數(shù)據(jù)的處理有了更高要求,如非結(jié)構(gòu)化數(shù)據(jù)處理、快速批處理、實(shí)時(shí)數(shù)據(jù)處理、全量數(shù)據(jù)挖掘等。由于傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)側(cè)重結(jié)構(gòu)化數(shù)據(jù),建模路徑較長(zhǎng),面對(duì)大規(guī)模數(shù)據(jù)處理能力有限,企業(yè)急需提升大數(shù)據(jù)處理時(shí)效,以更經(jīng)濟(jì)的方式發(fā)掘數(shù)據(jù)價(jià)值。
數(shù)據(jù)的實(shí)時(shí)處理能力也成為企業(yè)提升競(jìng)爭(zhēng)力的一大因素。




數(shù)據(jù)處理流程


在了解數(shù)倉(cāng)如何實(shí)時(shí)處理之前,我們先來(lái)了解數(shù)據(jù)的分層。每個(gè)企業(yè)根據(jù)自己的業(yè)務(wù)需求可以分成不同的層次,但是最基礎(chǔ)的分層思想,理論上數(shù)據(jù)分為三個(gè)層:貼源層(ODS)、數(shù)據(jù)倉(cāng)庫(kù)層(DW)、數(shù)據(jù)服務(wù)層(APP/DWA)?;谶@個(gè)基礎(chǔ)分層之上滿足不同的業(yè)務(wù)需求。
  • ODS:Operation Data Store,也稱為貼源層。數(shù)據(jù)倉(cāng)庫(kù)源頭系統(tǒng)的數(shù)據(jù)表通常會(huì)原封不動(dòng)的存儲(chǔ)一份,這稱為ODS層,是后續(xù)數(shù)據(jù)倉(cāng)庫(kù)加工數(shù)據(jù)的來(lái)源。
  • DW數(shù)據(jù)分層,由下到上一般分為DWD,DWB,DWS。
    • DWD:Data Warehouse Details 細(xì)節(jié)數(shù)據(jù)層,是業(yè)務(wù)層與數(shù)據(jù)倉(cāng)庫(kù)的隔離層。主要對(duì)ODS數(shù)據(jù)層做一些數(shù)據(jù)清洗(去除空值、臟數(shù)據(jù)、超過(guò)極限范)和規(guī)范化的操作。
    • DWB:Data Warehouse Base 數(shù)據(jù)基礎(chǔ)層,存儲(chǔ)的是客觀數(shù)據(jù),一般用作中間層,可以認(rèn)為是大量指標(biāo)的數(shù)據(jù)層。
    • DWS:Data Warehouse Service 數(shù)據(jù)服務(wù)層,基于DWB上的基礎(chǔ)數(shù)據(jù),主要是對(duì)用戶行為進(jìn)行輕度聚合,整合匯總成分析某一個(gè)主題域的服務(wù)數(shù)據(jù)層,一般是寬表。用于提供后續(xù)的業(yè)務(wù)查詢,OLAP分析,數(shù)據(jù)分發(fā)等。
  • 數(shù)據(jù)服務(wù)層/應(yīng)用層(APP/DWA):該層主要是提供數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析使用的數(shù)據(jù),我們通過(guò)說(shuō)的報(bào)表數(shù)據(jù),或者說(shuō)那種大寬表,一般就放在這里。




實(shí)時(shí)數(shù)倉(cāng)的常見方案


當(dāng)前,數(shù)據(jù)倉(cāng)庫(kù)被分為離線數(shù)倉(cāng)和實(shí)時(shí)數(shù)倉(cāng),離線數(shù)倉(cāng)一般是傳統(tǒng)的T+1型數(shù)據(jù)ETL方案,而實(shí)時(shí)數(shù)倉(cāng)一般是分鐘級(jí)甚至是秒級(jí)ETL方案。并且,離線數(shù)倉(cāng)和實(shí)時(shí)數(shù)倉(cāng)的底層架構(gòu)也不一樣,離線數(shù)倉(cāng)一般采用傳統(tǒng)大數(shù)據(jù)架構(gòu)模式搭建,而實(shí)時(shí)數(shù)倉(cāng)則采用Lambda、Kappa等架構(gòu)搭建。




LAMBDA & KAPPA 實(shí)時(shí)架構(gòu)


目前,實(shí)時(shí)處理有兩種典型的架構(gòu):Lambda 和 Kappa 架構(gòu)。出于歷史原因,這兩種架構(gòu)的產(chǎn)生和發(fā)展都具有一定局限性。
Lambda架構(gòu):在離線大數(shù)據(jù)架構(gòu)的基礎(chǔ)上增加新鏈路用于實(shí)時(shí)數(shù)據(jù)處理,需要維護(hù)離線處理和實(shí)時(shí)處理兩套代碼;
Lambda 架構(gòu)通過(guò)把數(shù)據(jù)分解為服務(wù)層(Serving Layer)、速度層(Speed Layer,亦即流處理層)、批處理層(Batch Layer)三層來(lái)解決不同數(shù)據(jù)集的數(shù)據(jù)需求。在批處理層主要對(duì)離線數(shù)據(jù)進(jìn)行處理,將接入的數(shù)據(jù)進(jìn)行預(yù)處理和存儲(chǔ),查詢直接在預(yù)處理結(jié)果上進(jìn)行,不需再進(jìn)行完整的計(jì)算,最后以批視圖的形式提供給業(yè)務(wù)應(yīng)用。
在實(shí)際生產(chǎn)環(huán)境中的部署通??梢詤⒁娤聢D,一般要通過(guò)一系列不同的存儲(chǔ)和計(jì)算引擎 (HBase、Druid、Hive、Presto、Redis 等) 復(fù)雜協(xié)同才能滿足業(yè)務(wù)的實(shí)時(shí)需求,此外多個(gè)存儲(chǔ)之間需要通過(guò)數(shù)據(jù)同步任務(wù)保持大致的同步。Lambda 架構(gòu)在實(shí)際落地過(guò)程中極其復(fù)雜,使整個(gè)業(yè)務(wù)的開發(fā)耗費(fèi)了大量的時(shí)間。



缺點(diǎn):
(1) 由多個(gè)引擎和系統(tǒng)組合而成,批處理 (Batch)、流處理 (Streaming) 以及合并查詢 (Merged Query) 的實(shí)現(xiàn)需要使用不同的開發(fā)語(yǔ)言,造成開發(fā)、維護(hù)和學(xué)習(xí)成本較高;(2) 數(shù)據(jù)在不同的視圖 (View) 中存儲(chǔ)多份,浪費(fèi)存儲(chǔ)空間,數(shù)據(jù)一致性的問(wèn)題難以解決。
Kappa架構(gòu):希望做到批流合一,離線處理和實(shí)時(shí)處理整合成一套代碼,減小運(yùn)維成本。Kappa 架構(gòu)在 Lambda 架構(gòu)的基礎(chǔ)上移除了批處理層,利用流計(jì)算的分布式特征,加大流數(shù)據(jù)的時(shí)間窗口,統(tǒng)一批處理和流處理,處理后的數(shù)據(jù)可以直接給到業(yè)務(wù)層使用。因?yàn)樵?Kappa 架構(gòu)下,作業(yè)處理的是所有歷史數(shù)據(jù)和當(dāng)前數(shù)據(jù),其產(chǎn)生的結(jié)果我們稱之為實(shí)時(shí)批視圖(Realtime_Batch_View)。
Kappa 架構(gòu)的流處理系統(tǒng)通常使用 Spark Streaming 或者 Flink 等實(shí)現(xiàn),服務(wù)層通常使用MySQL 或 HBase 等實(shí)現(xiàn)。


Kappa 架構(gòu)部署圖
缺點(diǎn):(1) 依賴 Kafka 等消息隊(duì)列來(lái)保存所有歷史,而Kafka 難以實(shí)現(xiàn)數(shù)據(jù)的更新和糾錯(cuò),發(fā)生故障或者升級(jí)時(shí)需要重做所有歷史,周期較長(zhǎng);(2) Kappa 依然是針對(duì)不可變更數(shù)據(jù),無(wú)法實(shí)時(shí)匯集多個(gè)可變數(shù)據(jù)源形成的數(shù)據(jù)集快照,不適合即席查詢。

因?yàn)樯鲜龅娜秉c(diǎn),Kappa架構(gòu)在現(xiàn)實(shí)中很少被應(yīng)用。




湖倉(cāng)一體能否解決實(shí)時(shí)問(wèn)題?


時(shí)下熱門的湖倉(cāng)一體能否解決實(shí)時(shí)問(wèn)題呢?湖倉(cāng)一體有何標(biāo)準(zhǔn)?Gartner 認(rèn)為湖倉(cāng)一體是將數(shù)據(jù)湖的靈活性和數(shù)倉(cāng)的易用性、規(guī)范性、高性能結(jié)合起來(lái)的融合架構(gòu),無(wú)數(shù)據(jù)孤島。
作為數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)的完美結(jié)合,新一代的湖倉(cāng)一體架構(gòu)重點(diǎn)關(guān)注和解決了近年來(lái)數(shù)字化轉(zhuǎn)型帶來(lái)的業(yè)務(wù)需求和技術(shù)難點(diǎn),具體包括如下以下方面:
  1. 實(shí)時(shí)性成為了提升企業(yè)競(jìng)爭(zhēng)力的核心手段。目前的湖、倉(cāng)、或者湖倉(cāng)分體都是基于 T+1 設(shè)計(jì)的,面對(duì) T+0 的實(shí)時(shí)按需分析,用戶的需求無(wú)法滿足。
  2. 所有用戶(BI 用戶、數(shù)據(jù)科學(xué)家等)可以共享同一份數(shù)據(jù),避免數(shù)據(jù)孤島。
  3. 超高并發(fā)能力,支持?jǐn)?shù)十萬(wàn)用戶使用復(fù)雜分析查詢并發(fā)訪問(wèn)同一份數(shù)據(jù)。
  4. 傳統(tǒng) Hadoop 在事務(wù)支持等方面的不足被大家詬病,在高速發(fā)展之后未能延續(xù)熱度,持續(xù)引領(lǐng)數(shù)據(jù)管理,因此事務(wù)支持在湖倉(cāng)一體架構(gòu)中應(yīng)得到改善和提升。
  5. 云原生數(shù)據(jù)庫(kù)已經(jīng)逐漸成熟,基于存算分離技術(shù),可以給用戶帶來(lái)多種價(jià)值:降低技術(shù)門檻、減少維護(hù)成本、提升用戶體驗(yàn)、節(jié)省資源費(fèi)用,已成為了湖倉(cāng)一體落地的重要法門。
  6. 為釋放數(shù)據(jù)價(jià)值提升企業(yè)智能化水平,數(shù)據(jù)科學(xué)家等用戶角色必須通過(guò)多種類型數(shù)據(jù)進(jìn)行全域數(shù)據(jù)挖掘,包括但不限于歷史的、實(shí)時(shí)的、在線的、離線的、內(nèi)部的、外部的、結(jié)構(gòu)化的、非結(jié)構(gòu)化數(shù)據(jù)。





云原生數(shù)據(jù)倉(cāng)庫(kù) + Omega實(shí)時(shí)架構(gòu) 實(shí)現(xiàn)實(shí)時(shí)湖倉(cāng)



云原生數(shù)據(jù)庫(kù)實(shí)現(xiàn)完全的存算分離


云原生數(shù)據(jù)庫(kù)如 OushuDB 和 Snowflake 突破了傳統(tǒng) MPP 和 Hadoop 的局限性,實(shí)現(xiàn)了存算完全分離,計(jì)算和存儲(chǔ)可部署在不同物理集群,并通過(guò)虛擬計(jì)算集群技術(shù)實(shí)現(xiàn)了高并發(fā),同時(shí)保障事務(wù)支持,成為湖倉(cāng)一體實(shí)現(xiàn)的關(guān)鍵技術(shù)。以 OushuDB 為例,實(shí)現(xiàn)了存算分離的云原生架構(gòu),并通過(guò)虛擬計(jì)算集群技術(shù)在數(shù)十萬(wàn)節(jié)點(diǎn)的超大規(guī)模集群上實(shí)現(xiàn)了高并發(fā),保障事務(wù)支持,提供實(shí)時(shí)能力,一份數(shù)據(jù)再無(wú)數(shù)據(jù)孤島。

基于Omega實(shí)時(shí)框架的湖倉(cāng)方案


我們前面提到,既然 Kappa 架構(gòu)實(shí)際落地困難,Lambda 架構(gòu)又很難保障數(shù)據(jù)的一致性,兩個(gè)架構(gòu)又都很難處理可變更數(shù)據(jù)(如關(guān)系數(shù)據(jù)庫(kù)中不停變化的實(shí)時(shí)數(shù)據(jù)),那么自然需要一種新的架構(gòu)滿足企業(yè)實(shí)時(shí)分析的全部需求,這就是 Omega 全實(shí)時(shí)架構(gòu),Omega 架構(gòu)由偶數(shù)科技根據(jù)其在各行業(yè)的實(shí)踐提出,同時(shí)滿足實(shí)時(shí)流處理、實(shí)時(shí)按需分析和離線分析。
Omega 架構(gòu)由流數(shù)據(jù)處理系統(tǒng)和實(shí)時(shí)數(shù)倉(cāng)構(gòu)成。相比 Lambda 和 Kappa,Omega 架構(gòu)新引入了實(shí)時(shí)數(shù)倉(cāng)和快照視圖 (Snapshot View) 的概念,快照視圖是歸集了可變更數(shù)據(jù)源和不可變更數(shù)據(jù)源后形成的 T+0 實(shí)時(shí)快照,可以理解為所有數(shù)據(jù)源在實(shí)時(shí)數(shù)倉(cāng)中的鏡像和歷史,隨著源庫(kù)的變化實(shí)時(shí)變化。
因此,實(shí)時(shí)查詢可以通過(guò)存儲(chǔ)于實(shí)時(shí)數(shù)倉(cāng)的快照視圖得以實(shí)現(xiàn)。實(shí)時(shí)快照提供的場(chǎng)景可以分為兩大類:一類是多個(gè)源庫(kù)匯集后的跨庫(kù)查詢,比如一個(gè)保險(xiǎn)用戶的權(quán)益視圖;另一類是任意時(shí)間粒度的分析查詢,比如最近 5 分鐘的交易量、最近 10 分鐘的信用卡開卡量等等。
另外,任意時(shí)間點(diǎn)的歷史數(shù)據(jù)都可以通過(guò) T+0 快照得到(為了節(jié)省存儲(chǔ),T+0 快照可以拉鏈形式存儲(chǔ)在實(shí)時(shí)數(shù)倉(cāng) ODS 中,所以快照視圖可以理解為實(shí)時(shí)拉鏈),這樣離線查詢可以在實(shí)時(shí)數(shù)倉(cāng)中完成,離線查詢結(jié)果可以包含最新的實(shí)時(shí)數(shù)據(jù),完全不再需要通過(guò)傳統(tǒng)MPP+Hadoop湖倉(cāng)分體組合來(lái)處理離線跑批及分析查詢。


Omega 架構(gòu)邏輯圖
流處理系統(tǒng)既可以實(shí)現(xiàn)實(shí)時(shí)連續(xù)的流處理,也可以實(shí)現(xiàn) Kappa 架構(gòu)中的批流一體,但與Kappa 架構(gòu)不同的是,OushuDB 實(shí)時(shí)數(shù)倉(cāng)存儲(chǔ)來(lái)自 Kafka 的全部歷史數(shù)據(jù)(詳見下圖),而在 Kappa 架構(gòu)中源端采集后通常存儲(chǔ)在 Kafka 中。


Omega 架構(gòu)部署圖
因此,當(dāng)需要流處理版本變更的時(shí)候,流處理引擎不再需要訪問(wèn) Kafka,而是訪問(wèn)實(shí)時(shí)數(shù)倉(cāng) OushuDB 獲得所有歷史數(shù)據(jù),規(guī)避了 Kafka 難以實(shí)現(xiàn)數(shù)據(jù)更新和糾錯(cuò)的問(wèn)題,大幅提高效率。此外,整個(gè)服務(wù)層也可以在實(shí)時(shí)數(shù)倉(cāng)中實(shí)現(xiàn),而無(wú)需額外引入 MySQL、HBase 等組件,極大簡(jiǎn)化了數(shù)據(jù)架構(gòu),實(shí)現(xiàn)了湖倉(cāng)市一體(數(shù)據(jù)湖、數(shù)倉(cāng)、集市一體)。實(shí)現(xiàn)了全實(shí)時(shí) Omega 架構(gòu)的湖倉(cāng)一體,我們也稱之為實(shí)時(shí)湖倉(cāng)一體。


Omega vs. Lambda vs. Kappa

結(jié)語(yǔ):


面對(duì)復(fù)雜多變的新業(yè)務(wù)場(chǎng)景,隨著數(shù)據(jù)技術(shù)不斷成熟,新的實(shí)時(shí)技術(shù)棧會(huì)出現(xiàn),數(shù)據(jù)技術(shù)也會(huì)經(jīng)歷分離與融合。目前,融合的趨勢(shì)比較明顯,如實(shí)時(shí)湖倉(cāng)一體,將實(shí)時(shí)處理能力融入數(shù)據(jù)倉(cāng)庫(kù)中。不論企業(yè)如何選型實(shí)時(shí)數(shù)倉(cāng),數(shù)據(jù)平臺(tái)技術(shù)棧的建設(shè)一般都應(yīng)該遵循三條基本原則:
  1. 架構(gòu)層面要保持靈活開放,支持多種技術(shù)兼容性并存。目前,企業(yè)已經(jīng)部署了多個(gè)系統(tǒng),有自己的一套架構(gòu)體系,技術(shù)融合落地時(shí)需要最大化利用企業(yè)原有IT資產(chǎn),保護(hù)客戶投資。
  2. 有效利用資源,降本增效。原來(lái)傳統(tǒng)的技術(shù)棧,所有資源參與計(jì)算,造成IT資源浪費(fèi)。比如,云原生資源池化,可以實(shí)現(xiàn)資源隔離與動(dòng)態(tài)管理,便于最大化利用資源。
  3. 滿足更高的用戶體驗(yàn)。從用戶角度來(lái)看,在技術(shù)條件具備的前提下,比如高性能、高并發(fā)、實(shí)時(shí)性更強(qiáng),便具備了更強(qiáng)的信息加工能力,能夠在很短的時(shí)間內(nèi)滿足用戶各種各樣的數(shù)據(jù)服務(wù)需求,提升用戶體驗(yàn)。

隨著實(shí)時(shí)分析場(chǎng)景日益增多,實(shí)時(shí)數(shù)倉(cāng)等具備實(shí)時(shí)處理能力的產(chǎn)品與解決方案將會(huì)得到更廣泛的應(yīng)用。


一篇文章讀懂實(shí)時(shí)數(shù)倉(cāng)的過(guò)去、現(xiàn)在和未來(lái)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
张家港市| 张家港市| 永州市| 湘潭县| 安平县| 镇远县| 沭阳县| 柏乡县| 康平县| 文山县| 泰来县| 安阳县| 左权县| 杂多县| 松江区| 祥云县| 新巴尔虎左旗| 高州市| 承德市| 南京市| 泗洪县| 积石山| 嘉鱼县| 崇礼县| 高雄市| 浏阳市| 六枝特区| 凤阳县| 班戈县| 青海省| 东乡| 西盟| 犍为县| 孝感市| 安庆市| 福贡县| 东乌| 景洪市| 安丘市| 康定县| 分宜县|