資料倉儲分層

2021-09-23 10:27:18 字數 1201 閱讀 3961

資料倉儲更多代表的是一種對資料的管理和使用的方式,它是一整套包括了etl、排程、建模在內的完整的理論體系。現在所謂的大資料更多的是一種資料量級的增大和工具的上的更新。 兩者並無衝突,相反,而是一種更好的結合。資料倉儲在構建過程中通常都需要進行分層處理。業務不同,分層的技術處理手段也不同。

分層的主要原因是在管理資料的時候,能對資料有乙個更加清晰的掌控,詳細來講,主要有下面幾個原因:

理論上資料分為三個層,資料運營層、資料倉儲層和資料產品層。

dwdata warehouse,資料倉儲層。在這裡,從ods層中獲得的資料按照主題建立各種資料模型。例如以研究人的旅遊消費為主題的資料集中,便可以結合航空公司的登機出行資訊,以及銀聯系統的刷卡記錄,進行結合分析,產生資料集。在這裡,我們需要了解四個概念:維(dimension)、事實(fact)、指標(index)和粒度( granularity)。

該層主要是提供資料產品和資料分析使用的資料,一般會存放在es、mysql等系統中供線上系統使用,也可能會存在hive或者druid中供資料分析和資料探勘使用。 比如我們經常說的報表資料,或者說那種大寬表,一般就放在這裡。

4.1 常規匯入

以追加方式匯入資料,指定map並行度是1,字段分隔符為'001'。

4.2 並行匯入

注意,並行匯入時sqoop會先在主鍵欄位上執行max和min的操作,將所有記錄切割成指定的份數,然後再按照每個切片的資料範圍進行同時匯入。過程大致如下:

--查詢主鍵的極值 select max(id) as max, select min(id) as min from table [where 如果指定了where子句]; --按照極值確定各自的處理範圍 select * from table where 0 <= id < 250; select * from table where 250 <= id < 500; select * from table where 500 <= id < 750; select * from table where 750 <= id < 1000;
如果資料庫沒有主鍵,則需要指定乙個能夠切割的字段進行處理,並且該字段值具有比較明顯的切割線,即極值不能相等,否則無法進行切割。如下所示:

4.3 增量匯入

增量匯入有兩種方式,按照指定的值和時間戳。本質上就是按照字段型別是整型還是時間戳型別進行匯入。只匯入比指定的值還大的記錄數。增量匯入使用於字段值是自增型別或是時間戳自增型別。

按時間戳匯入:

參考:

資料倉儲分層

下面的內容是基於參考中的文件進行的二次讀書筆記。傳統行業的資料倉儲工程師,開始嘗試架構工程領域比較流行的er模型 維度模型方式,構建出乙個四層的模型架構 阿里在構建er時碰到了較大的挑戰,主要是業務快速發展,人員快速變化 業務知識功底的不夠全面,導致er模型產出困難。阿里得出了乙個結論 在不太成熟 ...

資料倉儲分層

資料倉儲分層的主要原因是在管理資料的時候,能對資料有乙個更加清晰的掌控,詳細來講,主要有下面幾個原因 為什麼最低要分三層呢?在實際的生產環境中,資料倉儲的資料一般會有多個 資料可能比較亂,有很多的髒資料,資料的單位可能會不一樣等原因,我們要對資料進行分析或者對資料進行聚合等操作顯然不那麼方便,這時候...

資料倉儲和資料倉儲分層

資料倉儲 data warehouse 可簡寫為dw或dwh。資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個資料儲存,出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業務流程改進 監視時間 成本 質量以及控制。1 問題簡單化,將乙個複雜的問題分...