數(shù)據(jù)倉(cāng)庫(kù)前置知識(shí)

數(shù)據(jù)倉(cāng)庫(kù)前置知識(shí)

數(shù)據(jù)倉(cāng)庫(kù)分層

使用數(shù)據(jù)分層目的,減少重復(fù)開(kāi)發(fā),隔離原始數(shù)據(jù),按照業(yè)務(wù)需求設(shè)計(jì)層次。較為常見(jiàn)的為早期的四層架構(gòu)(貼源層ods、明細(xì)層dwd、匯總層dws、集市層ads),如果是復(fù)雜數(shù)倉(cāng)使用傳統(tǒng)的四層架構(gòu)不能滿(mǎn)足需求,多采用五層架構(gòu)(技術(shù)緩沖層ITL、貼源模型層IOL、主題模型層IML、共性加工層ICL、應(yīng)用集市層IDL),針對(duì)每層功能在下面章節(jié)詳細(xì)介紹。

數(shù)據(jù)存儲(chǔ)策略

存儲(chǔ)策略分類(lèi)

數(shù)據(jù)存儲(chǔ)方式分為增量與全量?jī)纱箢?lèi)。

增量存儲(chǔ),即每天新增的,這類(lèi)數(shù)據(jù)存儲(chǔ)方式為每天只抽取增量部分,抽取新增的數(shù)據(jù)進(jìn)行存儲(chǔ),一般增量存儲(chǔ)都采用分片的方式進(jìn)行存儲(chǔ),即使用分區(qū)的方式進(jìn)行存儲(chǔ),每天一個(gè)分區(qū)。

全量存儲(chǔ),即每天存儲(chǔ)最新一天全量數(shù)據(jù),每天在源系統(tǒng)全量提取最新數(shù)據(jù),進(jìn)行存儲(chǔ),全量存儲(chǔ)又分為保存歷史與不保存歷史,保存歷史的通常叫做全量快照表,每天全量保存到一個(gè)分區(qū)中,另外一種不保存歷史的方式則為在數(shù)據(jù)倉(cāng)庫(kù)中只保存一份最新的表,沒(méi)有分區(qū),不能查詢(xún)歷史某個(gè)時(shí)間節(jié)點(diǎn)的數(shù)據(jù)。

file

如上,每天只從源系統(tǒng)抽取跑批日期當(dāng)天的數(shù)據(jù),插入到數(shù)倉(cāng)中跑批日期當(dāng)天的分區(qū)中。

file

如上,每天從源系統(tǒng)全量抽取,沒(méi)有where條件,然后插入到數(shù)倉(cāng)的快照表的指定跑批日期的分區(qū)中,每天保存一份。

file

如上,每天從源系統(tǒng)全量抽取數(shù)據(jù),覆蓋到數(shù)倉(cāng)中的全量表里,但是在覆蓋前一定要做數(shù)據(jù)備份,避免數(shù)據(jù)丟失,可以在數(shù)據(jù)插入完成之后,將備份表再刪除。

拉鏈表

拉鏈表概述

拉鏈表核心思想,像個(gè)拉鏈,有開(kāi)鏈與閉鏈,我們通常將最新的數(shù)據(jù)稱(chēng)為開(kāi)鏈數(shù)據(jù),歷史數(shù)據(jù)稱(chēng)為閉鏈數(shù)據(jù),拉鏈表支持歷史數(shù)據(jù)查詢(xún),且空間占用較小,但是數(shù)據(jù)加工處理較為繁瑣,屬于時(shí)間換空間的設(shè)計(jì)方式,拉鏈表一個(gè)時(shí)間維度中同一個(gè)用戶(hù)只保存一條用戶(hù)狀態(tài)。拉鏈表通常會(huì)增加三個(gè)技術(shù)字段“開(kāi)始日期startdate、結(jié)束日期enddate、狀態(tài)標(biāo)識(shí)mark”。

通過(guò)主鍵(PK)與歷史數(shù)據(jù)進(jìn)行對(duì)比,判斷拉鏈表中最新的數(shù)據(jù)與歷史數(shù)據(jù)是否一致,如果發(fā)生變化或者新增則進(jìn)行相應(yīng)的開(kāi)鏈、閉鏈操作。

開(kāi)鏈:是一個(gè)開(kāi)放的區(qū)間,一條數(shù)據(jù)從一個(gè)開(kāi)始時(shí)間(startdate)開(kāi)始一直持續(xù)到了現(xiàn)在仍然沒(méi)有變化,我們也不知道他在未來(lái)哪一天才會(huì)變化,所以我們通常將enddate設(shè)置成一個(gè)較大的時(shí)間29991231或者30000101。

閉鏈:是一個(gè)閉合的區(qū)間,指數(shù)據(jù)在一個(gè)時(shí)間區(qū)間內(nèi)的狀態(tài),有開(kāi)始時(shí)間與結(jié)束時(shí)間。

拉鏈表示例

file
file

拉鏈表查詢(xún)某個(gè)時(shí)間節(jié)點(diǎn)(2021年01月06日)最新?tīng)顟B(tài):

Select * from zip_table where startdate<=20210106 and enddate>20210106;

此時(shí)在拉鏈表中命中了一條數(shù)據(jù),即:{xxxname:xxx,gfname:002,startdate:20210105,enddate:20210201}

如上查詢(xún)方式通常叫做"卡拉鏈",startdate<=querydate and enddate>querydate

拉鏈表形態(tài)示例:

Xxxname Gfname Startdate Enddate
Xxx 001 20210101 20210105
Xxx 002 20210105 20210201
Xxx 003 20210201 29991231

如上示例拉鏈表供記錄了三個(gè)id的歷史變化情況,支持任何時(shí)間段歷史數(shù)據(jù)的查詢(xún)。

拉鏈表適用場(chǎng)景

有歷史某個(gè)時(shí)間節(jié)點(diǎn)查詢(xún)需求、數(shù)據(jù)量較大、變化比較緩慢的數(shù)據(jù)。

如用戶(hù)基本信息表,數(shù)據(jù)量非常龐大,手機(jī)號(hào)這類(lèi)基本字段不經(jīng)常變化,但是有變化的可能性,為了滿(mǎn)足支持歷史某個(gè)時(shí)間節(jié)點(diǎn)的狀態(tài)查詢(xún),有兩種實(shí)現(xiàn)方式,可以使用全量快照的方式進(jìn)行存儲(chǔ),但是由于數(shù)據(jù)量比較大,并且變化的數(shù)據(jù)較少,每天重復(fù)的保存了未變化的數(shù)據(jù),造成磁盤(pán)空間的嚴(yán)重浪費(fèi),第二種方式則為拉鏈表存儲(chǔ),在數(shù)倉(cāng)中只保存一份數(shù)據(jù),某個(gè)時(shí)間段內(nèi)只保存一份數(shù)據(jù),不重復(fù)存儲(chǔ),并且支持歷史查詢(xún)。

file

類(lèi)似應(yīng)用場(chǎng)景還有一些字典表、碼表、規(guī)則表等。

拉鏈表算法設(shè)計(jì)

設(shè)計(jì)思想,每天從上游抽取全量數(shù)據(jù),與拉鏈表中最新的數(shù)據(jù)進(jìn)行對(duì)比,針對(duì)不同情況處理方式如下:

*修改類(lèi):通過(guò)對(duì)比發(fā)現(xiàn)上游系統(tǒng)最新數(shù)據(jù)與拉鏈表中的數(shù)據(jù)不一致,在拉鏈表中閉鏈該條數(shù)據(jù),同時(shí)開(kāi)啟一條新的開(kāi)鏈數(shù)據(jù),狀態(tài)標(biāo)識(shí)為"I";

* 新增類(lèi):通過(guò)對(duì)比發(fā)現(xiàn)上游系統(tǒng)有,但是拉鏈表中沒(méi)有,在拉鏈表中新增一條新的開(kāi)鏈數(shù)據(jù),狀態(tài)標(biāo)識(shí)為"I";

* 刪除類(lèi):通過(guò)對(duì)比發(fā)現(xiàn)上游系統(tǒng)沒(méi)有,但是拉鏈表中有,在拉鏈表中閉鏈該條數(shù)據(jù),狀態(tài)標(biāo)識(shí)為"D";

* 未變化:通過(guò)對(duì)比發(fā)現(xiàn)上游系統(tǒng)數(shù)據(jù)與拉鏈表中的數(shù)據(jù)一致,則保持拉鏈表中現(xiàn)有狀態(tài)不變;

file
file

拉鏈表SQL分析

數(shù)據(jù)準(zhǔn)備

-- 拉鏈表建表語(yǔ)句
CREATE TABLE xinniu.zip_table(
   pk string,
   col1 string, 
   col2 string,
   starttime string, 
   endtime string, 
   mark string)
   ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
   STORED AS TEXTFILE
   ;

-- 拉鏈表初始化數(shù)據(jù)加載
load data local inpath '/tmp/xinniu/zipinitdata' into table zip_table;

-- 上游系統(tǒng)建表語(yǔ)句
CREATE TABLE xinniu.source_table(
   pk string,
   col1 string, 
   col2 string)
PARTITIONED BY (datatime string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
STORED AS TEXTFILE;

-- 上游系統(tǒng)數(shù)據(jù)加載
load data local inpath '/tmp/xinniu/sourcedata-20210107' into table xinniu.source_table partition (datatime='20210107');
  • step1:拆分開(kāi)鏈數(shù)據(jù)與閉鏈數(shù)據(jù)
  1. 創(chuàng)建開(kāi)鏈表zip_table_bk、閉鏈表zip_table_bf;
  2. 查詢(xún)拉鏈表中開(kāi)鏈數(shù)據(jù)與閉鏈數(shù)據(jù)分別插入開(kāi)鏈表與閉鏈表中,在插入數(shù)據(jù)前需要判斷備份表是否為空,如果不為空則不進(jìn)行插入,避免數(shù)據(jù)異常;
-- 創(chuàng)建開(kāi)鏈表
CREATE TABLE IF NOT EXISTS xinniu.zip_table_bk stored AS orc tblproperties ("orc.compress" = "SNAPPY") AS
SELECT
pk,
col1,
col2,
startTime ,
endTime ,
mark
FROM
    xinniu.zip_table
WHERE
    1 = 0 ;

-- 抽取開(kāi)鏈數(shù)據(jù)到開(kāi)鏈表
 INSERT
    INTO
    xinniu.zip_table_bk
SELECT
    pk,
    col1,
    col2,
    startTime ,
    endTime ,
    mark
FROM
    xinniu.zip_table 
    join (select count(1) cnt from xinniu.zip_table_bk limit 1) b
WHERE
    startTime < '${hiveconf:batch_date}'
    AND endTime >= '${hiveconf:batch_date}'
    AND b.cnt = 0
    ;

-- 創(chuàng)建閉鏈表
CREATE TABLE IF NOT EXISTS xinniu.zip_table_bf stored AS orc tblproperties ("orc.compress" = "SNAPPY") AS
SELECT
    pk,
    col1,
    col2,
    startTime ,
    endTime ,
    mark
FROM
    xinniu.zip_table
WHERE
    1 = 0 ;
    
--抽取閉鏈數(shù)據(jù)到閉鏈表
INSERT
    INTO
    xinniu.zip_table_bf
SELECT
    pk,
    col1,
    col2,
    startTime ,
    endTime ,
    mark
FROM
    xinniu.zip_table 
    join 
    (
    SELECT
        count(1) cnt
    FROM
        xinniu.zip_table_bf
    LIMIT 1) b
WHERE
    endTime < '${hiveconf:batch_date}'
    AND b.cnt = 0 ;
  • step2:開(kāi)鏈表與上游系統(tǒng)新數(shù)據(jù)關(guān)聯(lián),提取出發(fā)生變化(新增、修改、刪除)的數(shù)據(jù)插入到zip_table_nw變化表中。
-- 中間加工表清空
DROP TABLE IF EXISTS xinniu.zip_table_nw;

-- 創(chuàng)建中間表 新增變化修改中間表
CREATE TABLE IF NOT EXISTS xinniu.zip_table_nw stored AS orc tblproperties ("orc.compress" = "SNAPPY") AS
SELECT
    pk,
    col1,
    col2,
    startTime ,
    endTime ,
    mark
FROM
    xinniu.zip_table
WHERE
    0 = 1;

-- 與上游數(shù)據(jù)對(duì)比,將變化數(shù)據(jù)插入到變化表中
INSERT
    INTO
    TABLE xinniu.zip_table_nw
SELECT
    nvl(n.pk,o.pk),
    nvl(n.col1,o.col1) ,
    nvl(n.col2,o.col2) ,
    CASE
        WHEN n.pk IS NULL THEN o.startTime
        ELSE '${hiveconf:batch_date}'
    END AS startTime ,
    CASE
        WHEN n.pk IS NULL THEN '${hiveconf:batch_date}'
        ELSE '29991231'
    END AS endTime ,
    CASE
        WHEN ( n.pk is null ) THEN 'D'
        ELSE 'I'
    END AS mark
FROM
    (
    SELECT
      pk,  
      col1,
      col2
    FROM
        xinniu.source_table
    WHERE
        dataTime = '${hiveconf:batch_date}' ) n
FULL JOIN xinniu.zip_table_bk o ON o.pk = n.pk
WHERE
    (
        o.pk IS NULL )
    OR (
        n.pk IS NULL )
    OR (
        nvl( CAST(o.col1 AS string) , '' ) <> nvl( CAST(n.col1 AS string) , '' )
        OR nvl( CAST(o.col2 AS string) , '' ) <> nvl( CAST(n.col2 AS string) , '' )
       ) 
    ;
  • step3:開(kāi)鏈表與變化表關(guān)聯(lián)對(duì)比,生成未變化數(shù)據(jù),已變化數(shù)據(jù)閉鏈,插入到zip_table_od表。
-- 清空中間表
DROP TABLE IF EXISTS xinniu.zip_table_od;

-- 創(chuàng)建中間表 未變化中間表
CREATE TABLE IF NOT EXISTS xinniu.zip_table_od stored AS orc tblproperties ("orc.compress" = "SNAPPY") AS
SELECT
    pk,    
    col1,    
    col2,
    startTime ,
    endTime ,
    mark
FROM
    xinniu.zip_table
WHERE
    0 = 1;

-- 對(duì)比開(kāi)鏈表與變化表,閉環(huán)已變化數(shù)據(jù),生成未變化數(shù)據(jù),插入到zip_table_od表
INSERT
    INTO
    TABLE xinniu.zip_table_od
SELECT
    o.pk,
    o.col1,
    o.col2,
    o.startTime ,
    CASE
        WHEN n.startTime IS NOT NULL THEN '${hiveconf:batch_date}'
        WHEN o.endTime >= '${hiveconf:batch_date}' THEN '29991231' ELSE o.endTime
    END AS endTime ,
    'I' AS mark
FROM
    xinniu.zip_table_bk o
LEFT JOIN xinniu.zip_table_nw n ON o.pk = n.pk
WHERE
    nvl(n.endTime,'29991231') <> '${hiveconf:batch_date}'
    ;

step4:清空拉鏈表,合并變化表nw、閉鏈表bf、未變化與已變化閉鏈表od。

-- 清空拉鏈表
TRUNCATE TABLE xinniu.zip_table;

-- 插入數(shù)據(jù)到拉鏈表
 INSERT
    INTO
    TABLE xinniu.zip_table
SELECT
    *
FROM
    xinniu.zip_table_nw
UNION ALL
SELECT
    *
FROM
    xinniu.zip_table_od
UNION ALL
SELECT
    *
FROM
    xinniu.zip_table_bf ;
  • 最后清空所有臨時(shí)表
DROP TABLE xinniu.zip_table_bk;
DROP TABLE xinniu.zip_table_bf;
DROP TABLE xinniu.zip_table_nw;
DROP TABLE xinniu.zip_table_od;

可以將上面的所有步驟分裝到一個(gè)文件中,使用hive -f的方式調(diào)用sql文件,使用-hiveconf的方式傳入跑批日期,實(shí)現(xiàn)調(diào)度系統(tǒng)自動(dòng)調(diào)用。

數(shù)據(jù)架構(gòu)設(shè)計(jì)

本次課程采用五層的架構(gòu)模式,即技術(shù)緩沖層ITL、貼源模型層IOL、主題模型層IML、共性加工層ICL、應(yīng)用集市層IDL,如下圖

file

通俗理解數(shù)倉(cāng)

file

技術(shù)緩沖層

技術(shù)緩沖層概述

技術(shù)緩沖層(ITL),貼源抽取,只增加需要的技術(shù)字段(ETL date),其他字段保持與源系統(tǒng)一致,該層數(shù)據(jù)用于給貼源模型層供數(shù),增加緩沖層的目的是為了實(shí)現(xiàn)貼源模型層數(shù)據(jù)處理緩沖,避免計(jì)算過(guò)程積壓在ETL過(guò)程。

file

如上圖,如果沒(méi)有增加緩沖層,貼源模型層如果做拉鏈表,那么就只能在ETL階段實(shí)現(xiàn),這樣對(duì)ETL步驟壓力較大,因?yàn)镋TL服務(wù)器性能遠(yuǎn)不如大數(shù)據(jù)集群,甚至有些ETL服務(wù)器還是單點(diǎn)部署。如果采用了技術(shù)緩沖層,那么ETL階段只需要直抽上游數(shù)據(jù)到大數(shù)據(jù)平臺(tái)即可,不需要在ETL階段做復(fù)雜計(jì)算,向貼源模型層的裝數(shù)動(dòng)作在大數(shù)據(jù)平臺(tái)完成。

同時(shí)技術(shù)緩沖層可以避免數(shù)據(jù)加載錯(cuò)誤,在數(shù)據(jù)抽取有誤時(shí),在技術(shù)緩沖層及時(shí)檢核發(fā)現(xiàn),進(jìn)行數(shù)據(jù)重新抽取,避免數(shù)據(jù)直接接入貼源層。

本層特點(diǎn)

數(shù)據(jù)完全貼源抽取,中間不做邏輯計(jì)算,只增加技術(shù)字段;

在本層需要嚴(yán)格把控?cái)?shù)據(jù)檢核;

數(shù)據(jù)保存周期一般為一周,采用分區(qū)方式保存;

貼源模型層

貼源模型層概述

貼源模型層(IOL),采用貼源建模的方式加載,數(shù)據(jù)加工場(chǎng)景通常適合于數(shù)據(jù)整合度低、時(shí)效性要求較高且需要進(jìn)行加工但又無(wú)法直接通過(guò)文件加工獲得的應(yīng)用,可以以開(kāi)放數(shù)據(jù)庫(kù)直連的方式對(duì)外提供服務(wù),也可以導(dǎo)出數(shù)據(jù)文件給下游系統(tǒng)的方式對(duì)外供數(shù)。就應(yīng)用而言,貼源模型層主要是滿(mǎn)足數(shù)據(jù)的快速接入,建設(shè)時(shí)效性要求比較高、跨系統(tǒng)的數(shù)據(jù)分析,從而減輕業(yè)務(wù)系統(tǒng)的壓力,同時(shí)支持?jǐn)?shù)據(jù)檢查和監(jiān)管類(lèi)的應(yīng)用。數(shù)據(jù)保存周期一般為永久保留,提供多部門(mén)任意歷史數(shù)據(jù)查詢(xún)。

file

針對(duì)多種源系統(tǒng)數(shù)據(jù),通過(guò)技術(shù)緩沖層將數(shù)據(jù)進(jìn)行表級(jí)關(guān)聯(lián)或歷史拉鏈等算法,將數(shù)據(jù)存入貼源模型層中,本層中主題設(shè)計(jì)不會(huì)設(shè)計(jì)特別多,只是針對(duì)下游系統(tǒng)對(duì)時(shí)效性要求較高的場(chǎng)景進(jìn)行建設(shè),當(dāng)下游系統(tǒng)有簡(jiǎn)單模型劃分時(shí)在本層劃分主題,否則交由主題模型層進(jìn)行主題詳細(xì)劃分。

本層特點(diǎn)

整合度低且不能通過(guò)文件加工獲得,對(duì)建設(shè)時(shí)效性要求較高,則通過(guò)簡(jiǎn)單處理及模型拆分的方式對(duì)下供數(shù);

跨系統(tǒng)數(shù)據(jù)分析需求,則關(guān)聯(lián)后,使用寬表落地,否則數(shù)據(jù)保留在技術(shù)緩沖層;

數(shù)據(jù)存儲(chǔ)周期一般為永久存儲(chǔ);

主題模型層

主題模型層概述

主題模型層(IML),作為數(shù)據(jù)倉(cāng)庫(kù)中最重要的基礎(chǔ)存儲(chǔ)區(qū),此數(shù)據(jù)區(qū)將按照分析型業(yè)務(wù)的特點(diǎn)對(duì)所有進(jìn)入大數(shù)據(jù)平臺(tái)的源數(shù)據(jù)按照主題進(jìn)行分類(lèi)存儲(chǔ),主題的劃分是對(duì)分析型應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)需求的分類(lèi)歸納,如金融行業(yè)較為權(quán)威的九大主題模型,主題模型層數(shù)據(jù)來(lái)源于技術(shù)緩沖層和貼源模型層,主題模型層采用弱三范式進(jìn)行數(shù)據(jù)組織。

主題模型層會(huì)對(duì)歷史數(shù)據(jù)進(jìn)行累積和保存,與技術(shù)緩沖層和貼源模型層相比,主題模型層的數(shù)據(jù)涉及范圍更廣、存儲(chǔ)周期更長(zhǎng)。

主題模型層表類(lèi)型分為以下幾類(lèi):

  1. 第一類(lèi)、帶有時(shí)間戳且不會(huì)更新的事件表或者幾乎每天都會(huì)發(fā)生變化的流水表;

  2. 第二類(lèi)、會(huì)增刪改的狀態(tài)表,數(shù)據(jù)體量大但是變化頻率低,即緩慢變化維SCD(Slowly Changing Dimensions);

對(duì)于第一類(lèi)表,需要從技術(shù)緩沖層獲取增量信息,并根據(jù)數(shù)據(jù)映射加載到主題模型層的目標(biāo)表中,而對(duì)于第二類(lèi)表,在從技術(shù)緩沖層獲取到數(shù)據(jù)后,需要使用時(shí)間拉鏈算法進(jìn)行數(shù)據(jù)加載和轉(zhuǎn)換,在目標(biāo)表中以開(kāi)始日期和結(jié)束日期以及標(biāo)識(shí)狀態(tài)來(lái)保留歷史數(shù)據(jù)。

file

本層特點(diǎn)

偏重于歷史和整合;

建設(shè)周期較長(zhǎng);

適合實(shí)現(xiàn)較長(zhǎng)歷史周期的數(shù)據(jù)需求;

適合實(shí)現(xiàn)一些站在全局角度的高端分析應(yīng)用及隨機(jī)查詢(xún)需求;

實(shí)現(xiàn)多種業(yè)務(wù)整合的應(yīng)用需求;

金融主題模型示例

file

共性加工層

共性加工層概述

共性加工層(ICL),是從業(yè)務(wù)視角出發(fā),提煉出對(duì)數(shù)據(jù)平臺(tái)具有共性的數(shù)據(jù)訪問(wèn)和統(tǒng)計(jì)需求,從而構(gòu)建一個(gè)面向支持應(yīng)用的、提供共享的數(shù)據(jù)訪問(wèn)服務(wù)的公共數(shù)據(jù)。

共性加工層的數(shù)據(jù)來(lái)源于貼源模型層或主題模型層,數(shù)據(jù)組織形式采用逆三范式的方式,所以該層的表都是一些較大的寬表,涉及維度較多,這樣才能從應(yīng)用的角度出發(fā)設(shè)計(jì),基于這種設(shè)計(jì)初衷,針對(duì)多種應(yīng)用系統(tǒng)進(jìn)行業(yè)務(wù)調(diào)研,設(shè)計(jì)出共性部分以及匯總部分,構(gòu)建共性加工層。

共性加工層的構(gòu)建主要完成對(duì)基礎(chǔ)數(shù)據(jù)的預(yù)連接、預(yù)計(jì)算、預(yù)匯總,主要實(shí)現(xiàn)目標(biāo)如下:

  • 同時(shí)服務(wù)于多個(gè)不同應(yīng)用,實(shí)現(xiàn)數(shù)據(jù)加工結(jié)果的共享,減少系統(tǒng)重復(fù)加工的開(kāi)銷(xiāo);

  • 提高用數(shù)查詢(xún)效率;

  • 降低應(yīng)用開(kāi)發(fā)和數(shù)據(jù)查詢(xún)的復(fù)雜程度;

  • 實(shí)現(xiàn)對(duì)常用業(yè)務(wù)統(tǒng)計(jì)口徑的定義和維護(hù),避免不同的應(yīng)用系統(tǒng)加工出來(lái)不同口徑的結(jié)果,如碼表、計(jì)算規(guī)則、營(yíng)銷(xiāo)策略等;

file

由于不同業(yè)務(wù)各有特點(diǎn),所以不同業(yè)務(wù)的維度和指標(biāo)將不盡相同,所以共性加工層也需要按照業(yè)務(wù)適當(dāng)?shù)膭澐殖刹煌黝}域,如金融領(lǐng)域可劃分為:合約級(jí)、客戶(hù)級(jí)、產(chǎn)品級(jí)、機(jī)構(gòu)級(jí),列舉主題域如下:

  • 合約級(jí):合約級(jí)是銀行賬戶(hù)、合同、借據(jù)、行用卡等數(shù)據(jù)的分類(lèi)匯總,銀行賬戶(hù)包括存款賬戶(hù)、貸款賬戶(hù)、內(nèi)部賬戶(hù)、信用卡賬戶(hù)等,合同包括個(gè)人貸款合同、對(duì)公貸款合同等,借據(jù)包括貸款借據(jù)、貼現(xiàn)借據(jù)等。

  • 客戶(hù)級(jí):客戶(hù)級(jí)數(shù)據(jù)匯總主要是針對(duì)客戶(hù)賬務(wù)數(shù)據(jù)和基本信息匯總 ,以及客戶(hù)整合、客戶(hù)貢獻(xiàn)的方案等,一般客戶(hù)級(jí)可以劃分為個(gè)人客戶(hù)匯總、個(gè)人客戶(hù)存款匯總、個(gè)人客戶(hù)貸款匯總、個(gè)人客戶(hù)額度匯總、個(gè)人客戶(hù)理財(cái)匯總、個(gè)人客戶(hù)其他資產(chǎn)匯總、對(duì)公客戶(hù)匯總、對(duì)公客戶(hù)存款匯總、對(duì)公客戶(hù)貸款匯總、對(duì)公客戶(hù)貼現(xiàn)匯總。

  • 產(chǎn)品級(jí):產(chǎn)品級(jí)數(shù)據(jù)匯總主要是按照不同業(yè)務(wù)產(chǎn)品口徑進(jìn)行的匯總,如貸款業(yè)務(wù)條線余額統(tǒng)計(jì)、中間業(yè)務(wù)產(chǎn)品收益統(tǒng)計(jì)。

  • 機(jī)構(gòu)級(jí):機(jī)構(gòu)級(jí)主要是對(duì)存貸款賬戶(hù)、信用卡、客戶(hù)主題數(shù)據(jù)按機(jī)構(gòu)屬性的匯總,機(jī)構(gòu)級(jí)數(shù)據(jù)匯總可以由合約級(jí)匯總得到,按照機(jī)構(gòu)維度劃分,如內(nèi)部機(jī)構(gòu)信息表、機(jī)構(gòu)對(duì)公貸款匯總、機(jī)構(gòu)個(gè)人存款匯總、機(jī)構(gòu)對(duì)公存款匯總、機(jī)構(gòu)拆借匯總、機(jī)構(gòu)內(nèi)部賬戶(hù)匯總、機(jī)構(gòu)授信匯總、機(jī)構(gòu)貼現(xiàn)匯總。

應(yīng)用集市層

應(yīng)用集市層(IDL),用于支持各種分析型的應(yīng)用,除了高級(jí)分析人員可以對(duì)大數(shù)據(jù)平臺(tái)進(jìn)行靈活查詢(xún)以外,大數(shù)據(jù)大數(shù)據(jù)平臺(tái)上的應(yīng)用均以數(shù)據(jù)集市的方式對(duì)外提供數(shù)據(jù)服務(wù),應(yīng)用集市層不同于共性加工層,其數(shù)據(jù)僅面向于特定的應(yīng)用,在應(yīng)用間不做數(shù)據(jù)共享,如果應(yīng)用間使用存在數(shù)據(jù)共享需求,那么在共性加工層實(shí)現(xiàn)共性加工,應(yīng)用集市層可以構(gòu)建在大數(shù)據(jù)平臺(tái)內(nèi),也可以構(gòu)建在大數(shù)據(jù)平臺(tái)以外(應(yīng)用子系統(tǒng)平臺(tái)內(nèi)),其數(shù)據(jù)組織形式?jīng)]有固定限制,按照實(shí)際應(yīng)用子系統(tǒng)決定數(shù)據(jù)組織形式,其數(shù)據(jù)來(lái)源于上層基礎(chǔ)數(shù)據(jù)區(qū)與共性加工層。

各種應(yīng)用集市的建設(shè)都依賴(lài)于業(yè)務(wù)實(shí)現(xiàn)的需求,所以設(shè)計(jì)側(cè)重點(diǎn)和設(shè)計(jì)方法都不同。

轉(zhuǎn)載自海汼部落,原文鏈接:http://hainiubl.com/topics/75543

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)倉(cāng)庫(kù)作為全行或全公司的數(shù)據(jù)中心和總線,匯集了全行各系統(tǒng)以及外部數(shù)據(jù),通過(guò)良好的系統(tǒng)架構(gòu)可以保證系統(tǒng)穩(wěn)定性和處理...
    acumen_leo閱讀 3,022評(píng)論 0 14
  • MaxCompute數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建的整體流程。 數(shù)據(jù)明細(xì)層:DWD(Data Warehouse Detail) 數(shù)...
    c88c424c7f3d閱讀 10,294評(píng)論 0 1
  • 1.數(shù)倉(cāng)概述 數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)是一個(gè)過(guò)程,而不是一個(gè)項(xiàng)目。在這個(gè)過(guò)程中我們需要形成自己的規(guī)范,以方便管理和維護(hù)。在數(shù)...
    高廣超閱讀 2,995評(píng)論 0 13
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂(yōu)愁,有人驚喜有人失落,有的覺(jué)得收獲滿(mǎn)滿(mǎn)有...
    陌忘宇閱讀 8,814評(píng)論 28 54
  • 信任包括信任自己和信任他人 很多時(shí)候,很多事情,失敗、遺憾、錯(cuò)過(guò),源于不自信,不信任他人 覺(jué)得自己做不成,別人做不...
    吳氵晃閱讀 6,355評(píng)論 4 8

友情鏈接更多精彩內(nèi)容