1)功能性:軟體提供了使用者所需要的功能。二級特性包括:適合性、準確性、互用性、安全性。對資料而言,個人覺得重要的應該屬於準確性和安全性。
a.對於準確率,如果一句話概括就是,先資料要有,其次資料要全,後資料要準。對應的,就可以看到該大項下對應的小項:
資料要有->資料及時性:資料要按約定時間產出。
資料要全->資料完整性:資料不能少、不能缺。當然,也不能多。
資料要準->資料準確性:數值要準確。
這幾個二級特性,可能很多同學的文章中都寫過,也討論過。這裡只是從資料質量整體系統性上再將其闡述一遍。需要說明的一點是,很多文章中也寫到了資料一致性這個特性。資料一致性這個概念很廣,比如關係資料庫中的外來鍵一致性、CAP理論中的強弱一致性。個人認為,資料不一致終影響的還是資料的完整或者準確。如果業務上認為不一致性可以接受,那也不是問題。所以我更傾向於將資料一致性作為一種根因,而並不是質量模型的一個子項。
b.對於安全性,尤其是資料安全,命題也很大,這裡不再贅述。但需要提的一點是,資料安全涉及到隱私或者差分攻擊的預防,也可能是由業務同學考慮的範疇,所以在資料質量模型中不能忽視。
2)易用性:是指在指定條件下使用時,軟體產品被理解、學習、使用和吸引使用者的能力。對於資料來說,我認為資料的易用可以分為兩方面:是否被理解,是否被需要。它更多的是和日常溝通、產品需求及規劃相關。
是否被理解,意思是當前我們對資料的定義是否是行業認可的,是否存在團隊與團隊之間、使用者與開發者之間理解的不一致。
是否被需要,意思是當前我們提供的資料,是否真的能夠滿足使用者需要,資料的真正效果有沒有達到。比如,我們給使用者提供的是它自己品牌的資料,但使用者可能更需要的是行業下的資料來做進一步的市場規劃。
3)可靠性:在指定條件下使用時,軟體產品維持規定的效能水平的能力。比如上游資料無法定時給出,依賴關係的強弱配置不正確,可能影響的就是資料無法定時產出。可靠性是一種根因,終影響的還是功能性。
4)效率:是指在規定條件下,相對於所用資源的數量,軟體產品是否在規定時間內可提供適當的效能的能力。比如計算傾斜或者計算資源不足導致資料產不出來。效率也是一種根因,終影響的還是功能性。
5)可維護性:是指是在修改或者新增需求時,當前的開發架構是否足夠靈活的支援,是開發階段主要考慮的。比如在數倉開發中,當新上游到來時,如果從下到上全部採用煙囪式開發,那對新增的需求必定是不友好的。如果改為Hub或者集市模式,可能只需要開發接入資料的ETL程式碼,剩下的完全可以複用,就是提升可維護性的一種手段。
6)可移植性:是指軟體產品從一種環境遷移到另一種環境的能力,也是開發階段主要考慮的。服務或者網站的可移植性大家瞭解比較多,資料的可移植性是指什麼?我個人認為可移植性強調的更多是跨技術平臺的移植,而不是模組間的資料複用。在資料上可能就是資料直接從一個計算平臺遷移到另一個計算平臺,或者SQL程式碼從一個計算平臺遷移到另一個計算平臺。在可移植性方面,我還沒有遇到導致質量問題的有說服力的案例,如果大家有相關的例子可以溝通。
1)功能性:軟體提供了使用者所需要的功能。二級特性包括:適合性、準確性、互用性、安全性。對資料而言,個人覺得重要的應該屬於準確性和安全性。
a.對於準確率,如果一句話概括就是,先資料要有,其次資料要全,後資料要準。對應的,就可以看到該大項下對應的小項:
資料要有->資料及時性:資料要按約定時間產出。
資料要全->資料完整性:資料不能少、不能缺。當然,也不能多。
資料要準->資料準確性:數值要準確。
這幾個二級特性,可能很多同學的文章中都寫過,也討論過。這裡只是從資料質量整體系統性上再將其闡述一遍。需要說明的一點是,很多文章中也寫到了資料一致性這個特性。資料一致性這個概念很廣,比如關係資料庫中的外來鍵一致性、CAP理論中的強弱一致性。個人認為,資料不一致終影響的還是資料的完整或者準確。如果業務上認為不一致性可以接受,那也不是問題。所以我更傾向於將資料一致性作為一種根因,而並不是質量模型的一個子項。
b.對於安全性,尤其是資料安全,命題也很大,這裡不再贅述。但需要提的一點是,資料安全涉及到隱私或者差分攻擊的預防,也可能是由業務同學考慮的範疇,所以在資料質量模型中不能忽視。
2)易用性:是指在指定條件下使用時,軟體產品被理解、學習、使用和吸引使用者的能力。對於資料來說,我認為資料的易用可以分為兩方面:是否被理解,是否被需要。它更多的是和日常溝通、產品需求及規劃相關。
是否被理解,意思是當前我們對資料的定義是否是行業認可的,是否存在團隊與團隊之間、使用者與開發者之間理解的不一致。
是否被需要,意思是當前我們提供的資料,是否真的能夠滿足使用者需要,資料的真正效果有沒有達到。比如,我們給使用者提供的是它自己品牌的資料,但使用者可能更需要的是行業下的資料來做進一步的市場規劃。
3)可靠性:在指定條件下使用時,軟體產品維持規定的效能水平的能力。比如上游資料無法定時給出,依賴關係的強弱配置不正確,可能影響的就是資料無法定時產出。可靠性是一種根因,終影響的還是功能性。
4)效率:是指在規定條件下,相對於所用資源的數量,軟體產品是否在規定時間內可提供適當的效能的能力。比如計算傾斜或者計算資源不足導致資料產不出來。效率也是一種根因,終影響的還是功能性。
5)可維護性:是指是在修改或者新增需求時,當前的開發架構是否足夠靈活的支援,是開發階段主要考慮的。比如在數倉開發中,當新上游到來時,如果從下到上全部採用煙囪式開發,那對新增的需求必定是不友好的。如果改為Hub或者集市模式,可能只需要開發接入資料的ETL程式碼,剩下的完全可以複用,就是提升可維護性的一種手段。
6)可移植性:是指軟體產品從一種環境遷移到另一種環境的能力,也是開發階段主要考慮的。服務或者網站的可移植性大家瞭解比較多,資料的可移植性是指什麼?我個人認為可移植性強調的更多是跨技術平臺的移植,而不是模組間的資料複用。在資料上可能就是資料直接從一個計算平臺遷移到另一個計算平臺,或者SQL程式碼從一個計算平臺遷移到另一個計算平臺。在可移植性方面,我還沒有遇到導致質量問題的有說服力的案例,如果大家有相關的例子可以溝通。