先丟擲幾個問題
儲存是不是基石?
假如儲存不掛,資料真的準確嗎?
儲存掛了,資料還準確嗎?
如何校驗是否正確?如何讓其正確?機制是不是必須有?
注:sqoop抽資料,無error丟資料的概率很小
資料質量校驗:資料量校驗 count相同嗎?count相同內容相同嗎?
資料量相同–>資料量不同 重刷機制 補or刪 spark 95%–>資料內容不同? 抽樣 5%
模擬資料:
上游表a1
id name age
1.00 pxj1 21.00
2.00 pxj2 22.00
3.00 pxj3 23.00
下游表:b1
id name age
1.00 pxj1 21.00
2.00 pxj2 22.00
4.00 pxj4 24.00
資料重刷機制:用count校驗上下游的資料不準確
引入重刷機制:通過對上下游的兩個表求full outer join來對比欄位的null值
select * from a1
full join b1
on a1.id=b1.id
id name age id name age
1.00 pxj1 21.00 1.00 pxj1 21.00
2.00 pxj2 22.00 2.00 pxj2 22.00
4.00 pxj4 24.00
3.00 pxj3 23.00
已a1表為基準:
select b1.id from a1
left join b1
on a1.id=b1.id
where a1.id is null
delete from b1 where id in (
select b1.id from a1
left join b1
on a1.id=b1.id
where a1.id is null
)insert into b1 value(
select a1.id ,a1.name,a1.age from b1
right join a1
on a1.id=b1.id
where b1.id is null
)b1表資料
id name age
1.00 pxj1 21.00
2.00 pxj2 22.00
3.00 pxj3 23.00
深度思考:
full outer join 其實就是先 left join 和後 right join 的兩個結果,為 null 的剛好是缺少的或者多的,而交集是上下游都有的資料,需要做的是 left join 為 null 做 insert 或者 delete,還是 right join 為 null 做 insert 或者 delete。
數倉過程建模 數倉入門基礎 1 漫談數倉
資料倉儲,英文名稱為data warehouse,可簡寫為dw或dwh。資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個資料儲存,出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業務流程改進 監視時間 成本 質量以及控制。資料倉儲的特徵在於面向主...
數倉知識08 數倉設計步驟和使用
提供相關資訊進行分析和效能估計,提高行業競爭優勢 提高企業生產力。可以快速收集準確描述組織機構的資訊 有利於客戶聯絡管理,因為他跨越所有商務 所有部門和市場 可以降低成本。通過可靠的方式進行長期趨勢跟蹤,發現異常。建立數倉前需要分析商務需求,搭建商務分析框架。b.資料來源檢視 被操作的資料庫庫細通收...
數倉建模的edw 數倉結構幾層,作用
資料倉儲,英文名稱為data warehouse,可簡寫為dw或dwh。資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個資料儲存,出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業務流程改進 監視時間 成本 質量以及控制。資料倉儲,並不是資料的最...