pb利用datawindow查询符合条件的数据并且过滤掉其他数据_数据质量监测
1 Overview
1.1 數(shù)據(jù)質(zhì)量
在數(shù)據(jù)部門里,數(shù)據(jù)質(zhì)量問(wèn)題經(jīng)常是被動(dòng)發(fā)現(xiàn),所以數(shù)據(jù)質(zhì)量的問(wèn)題是大多數(shù)公司數(shù)據(jù)部門都不得不面對(duì)的問(wèn)題。數(shù)據(jù)質(zhì)量校驗(yàn)的目標(biāo)是監(jiān)控?cái)?shù)據(jù)管道中,生產(chǎn)者、處理階段以及消費(fèi)者的數(shù)據(jù)的正確性、一致性和及時(shí)性的一項(xiàng)系統(tǒng)工程。數(shù)據(jù)質(zhì)量需要對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),當(dāng)產(chǎn)生嚴(yán)重的數(shù)據(jù)污染等事件的時(shí)候需要告警和阻塞數(shù)據(jù)處理鏈路,最大限度的減少由于上下游數(shù)據(jù)質(zhì)量而產(chǎn)生的問(wèn)題。
1.2 一些術(shù)語(yǔ)
......(待補(bǔ)充)
2 監(jiān)控手段
監(jiān)控手段主要包括兩個(gè)方面,一是監(jiān),數(shù)據(jù)質(zhì)量校驗(yàn),二是控,告警和處理。
2.1 數(shù)據(jù)質(zhì)量校驗(yàn)
根據(jù)數(shù)據(jù)質(zhì)量校驗(yàn)的對(duì)象,可以分為兩種形式:
數(shù)據(jù)質(zhì)量監(jiān)控規(guī)則包括可以有多種形式:
根據(jù)校驗(yàn)范圍,還可以分成兩種形式:
2.2 告警和處理
告警和處理分為兩個(gè)階段,一是告警,當(dāng)數(shù)據(jù)質(zhì)量出現(xiàn)問(wèn)題的時(shí)候,需要及時(shí)通知責(zé)任人,二是處理,出現(xiàn)上游數(shù)據(jù)污染,根據(jù)規(guī)則級(jí)別,需要及時(shí)阻塞下游任務(wù),并處理上游任務(wù)。
3 實(shí)現(xiàn)方案的初想
3.1 離線檢測(cè)
關(guān)于離線檢查,最典型的場(chǎng)景應(yīng)該有兩個(gè),一是0行檢測(cè),二是閾值檢測(cè)。
0行檢測(cè)可以理解成一些表不應(yīng)該存在0行的情況,如果有,需要及時(shí)告警和排查原因,甚至是0行數(shù)據(jù)會(huì)影響下游任務(wù),需要考慮阻斷下游任務(wù)的繼續(xù)執(zhí)行,一方面減少下游任務(wù)異常的多余告警,二來(lái)節(jié)省下游任務(wù)執(zhí)行的資源。
對(duì)于 Hive 來(lái)說(shuō),Hive Metastore 的查詢,利用 HiveMetaStoreClient,定時(shí)獲取各表的行數(shù),可以作為離線監(jiān)測(cè)的基礎(chǔ),又或者是利用 Hive Hook 來(lái)收集行數(shù)等信息。檢查0行是相對(duì)簡(jiǎn)單的,只要一條 sql 就可以。這個(gè)可以作為一個(gè)定時(shí)的離線任務(wù),定時(shí)執(zhí)行,甚至是作為整個(gè)任務(wù)流 DAG 中的中間表任務(wù)生產(chǎn)后自動(dòng)觸發(fā)檢查。
select a.TBL_ID, a.TBL_NAME, b.PARAM_KEY, b.PARAM_VALUE from TBLS as a join TABLE_PARAMS as b where a.TBL_ID = b.TBL_ID and TBL_NAME="call_center" and PARAM_KEY="numRows";+--------+-------------+-----------+-------------+ | TBL_ID | TBL_NAME | PARAM_KEY | PARAM_VALUE | +--------+-------------+-----------+-------------+ | 134 | call_center | numRows | 60 | +--------+-------------+-----------+-------------+閾值檢查的實(shí)現(xiàn)也非常容易,如果有離線/實(shí)時(shí)計(jì)算的平臺(tái),可以提供一些類 sql 的語(yǔ)法,同樣是作為離線的定時(shí)任務(wù)來(lái)執(zhí)行檢查。當(dāng)然閾值檢查必須考慮檢查范圍的問(wèn)題,抽樣肯定要比全量更效率更高,但是全量肯定比抽樣更穩(wěn)妥,需要結(jié)合資源和業(yè)務(wù)來(lái)綜合衡量。
-- 設(shè)置檢查范圍 set checkMode = SAMPLING; -- 閾值檢查 select a from A where a > 100;3.2 實(shí)時(shí)檢查
數(shù)據(jù)采集結(jié)果數(shù)據(jù)接入之后,數(shù)據(jù)存在于 Kafka 中,如何實(shí)現(xiàn)動(dòng)態(tài)流式的數(shù)據(jù)質(zhì)量檢查呢?
需要明確一些具體的監(jiān)測(cè)指標(biāo),比如 Kafka 消息中包含了不符合業(yè)務(wù)方定義的消息 schema,具體來(lái)看就是 key,需要告警并且在處理的時(shí)候過(guò)濾掉對(duì)應(yīng)的 key;又或者是某些 key 的 value 小于預(yù)期的閾值,該條消息也需要屏蔽,以防止數(shù)據(jù)污染(屏蔽來(lái)不要緊,因?yàn)橄⑹怯袀浞莸?#xff0c;屏蔽只會(huì)影響下游程序)。
Flink 消費(fèi) Kafka 數(shù)據(jù)的時(shí)候,需要 FlinkKafkaConsumerxx,其中需要一個(gè)參數(shù)是針對(duì)接收到的每一條消息,key/value解序列化器,用于將字節(jié)數(shù)組形式的Kafka消息解序列化回對(duì)象,那么通過(guò)將規(guī)則實(shí)現(xiàn)在這里,并且通過(guò) filter 語(yǔ)義來(lái)過(guò)濾,是可以實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)質(zhì)量檢測(cè)的,一旦遇到不符合消息 schema 的 key,又或者是不符合閾值條件的 value,那么就需要對(duì)這條消息進(jìn)行處理。
可能存在的問(wèn)題:
4 一些想法
5 參考系統(tǒng)
6 Reference
總結(jié)
以上是生活随笔為你收集整理的pb利用datawindow查询符合条件的数据并且过滤掉其他数据_数据质量监测的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab解带参数的积分方程组,方程组
- 下一篇: fullgc频繁的原因_系统运行缓慢,C