資料倉儲之開發規範詳解

2021-10-07 17:24:57 字數 3450 閱讀 9374

目 錄

0 引 言

1 分層的目的

2 分層規範

2.1 分層規範

2.2 分層呼叫原則

3.表規範

3.1 命名

3.2 注釋

3.3 儲存格式

3.4 字符集

3.5 約定

4 字段規範

4.1 命名

4.2 注釋

4.3 型別

5 指令碼命名規範

5.1 命名規範

5.2 具體例項

6 **規範

6.1 sql編碼

6.2 shell指令碼

為了避免底層業務變動對上層需求影響過大,遮蔽底層複雜的業務邏輯,盡可能簡單、完整的在介面層呈現業務資料,建設高內聚松耦合的資料組織,使資料從業務角度可分割,顯得尤為重要。從整個集團業務條線出發,形成資料倉儲總體概念框架,並對整個系統所需要的功能模組進行劃分,明確各模組技術細節,建設一套完整的開發規範。

ods(原始資料層):ods層是資料倉儲準備區,為dwd層提供基礎原始資料。

dwd(明細資料層):和ods粒度一致的明細資料,對資料進行去重,髒資料過濾,空處理,建立資料對映關係,資料脫敏,預設值補值等操作,主要的職責就是保證資料質量。

dws(服務資料層)輕度彙總資料建寬表(按主題)存放資料,或稱為資料彙總層,有的叫dwa層。

ads(應用資料層):存放應用類表資料,為各種統計報表提供資料。

(1)禁止逆向呼叫

(2)避免同層呼叫

(3)優先使用公共層

(4)避免跨層呼叫

表命名解釋:

具體如下圖所示:

注釋要結合表的英文名,要求注釋簡潔明瞭,體現出表的業務出處、主題和用途。

所謂的儲存格式就是在hive建表的時候指定的將表中的資料按照什麼樣子的儲存方式,如果指定了方式,那麼在向表中插入資料的時候,將會使用該方式向hdfs中新增相應的資料型別。在數倉中建表預設用的都是parquet儲存格式,相關語句如下所示:

stored as inputformat

『org.apache.hadoop.hive.ql.io.parquet.mapredparquetinputformat』

outputformat

『org.apache.hadoop.hive.ql.io.parquet.mapredparquetoutputformat』

hadoop和hive 都是用utf-8編碼的,在建表時可能涉及到中文亂碼問題,所以匯入的檔案的字元編碼統一為utf-8格式。

理論上在數倉落地的表不應該出現null未知型別,對於可能出現null的字段,如果為字元型統一為空字串,如果是數值則給0。

舉例如下:

命名規範示例如下:

語義

翻譯

縮寫

報警

alarm

alarm

油壓

oilpress

oilpress

扳動

pull

pull

震動

shock

shock

環境

environment

env

缺口

gap

gap

year

yy

month

mm

day

dd

week

ww

hour

hh

注釋本著簡潔、詳實、完整的原則,對於有業務含義的字段,在注釋中需要列舉並解釋其業務含義,如ods_loan_apidata_order_info.order_status 訂單狀態:1待支付,2支付不成功,3支付成功;

日期時間等格式統一用string型別,字串也是用string,數值的話,會根據字段定義來確定,對於有小數點要求的,比如某些金額、利率,需要用到decimal型別,無小數點要求的用浮點型別double和整數型別(int,bigint)。

我們對如下的指令碼進行命名:

dws_jttl_pull_month_tmp_

exp.sh

,其中exp

表示向外匯出用於標識方向

dws_jttl_pull_month.sh

dws_phm_switchshock_min_hh_mm.sh

該指令碼檔案描述了按分鐘、小時、月份轉轍機振動的監控資料。說明了該指令碼有三張表

一張按分鐘統計的表,一張按小時統計的表、一張按月份統計的表。

dws_jttl_pull_day

排程指令碼主要是通過跑shell指令碼,shell指令碼的注意點:

資料倉儲建設規範

版本編號 v1.0 發布日期 2017 07 19 作 者 發布範圍 產研大資料團隊 目 錄1 資料架構概述 2 1.1 原始資料層 ods 3 1.2 資料倉儲層 dw 3 1.3 資料集市層 dm 4 2 資料庫命名規範 4 3 表命名規範 5 3.1 整體原則 5 3.2 原始資料層表命名規範...

系統開發 資料倉儲ETL流程規範

專案組希望我出乙個etl的規範,憑著自己的感覺和經驗總結了一些步驟,我還會不斷改進。本etl流程規範試圖建立乙個通用的etl流程開發規範,針對不同專案組的實際情況,可自行進行逐步的完善和修改。本流程應該是在需求分析階段結束後實施。etl 流程 可以把etl分為五個階段,按照開發的順序分 1 準備階段...

資料倉儲 四 之ETL開發

概述 etl是資料倉儲的後台,主要包含抽取 清洗 規範化 提交四個步驟,傳統資料倉儲一般分為四層模型。分層的作用 stg層 在維度建模階段已經確定了源系統,而且對源系統進行了資料評估。stg層是根據cdc策略把各個源系統的資料抽取到資料倉儲中。stg層主要是面向批處理的形式,如果是根據日誌資訊實時同...