使用者畫像之資料質量管理

2021-08-27 23:45:51 字數 2855 閱讀 2002

資料質量管理這項工作的重要性不言而喻,所謂「garbage in,garbage out」,基礎資料的質量性如果無法得到良好保障,後續的推薦、資料分析工作將會變得徒勞。

在建好使用者畫像模型後,該資料模型成為了乙個個落在資料倉儲的表,資料倉儲的開發人員通過通過排程任務,每天定時從各業務資料表和日誌資料表抽取使用者行為資料加工到使用者畫像相關表中。各種型別的標籤每天加工的資料成百上千萬條,資料分析人員不會每天對這些資料的質量進行核查,去發現每類標籤的數量是否有異常情況,但是當應用的過程中使用異常資料將會導致分析結論的誤差,那麼如何高速、有效地對使用者畫像資料的質量進行管理?

資料運營人員可以通過設定畫像各業務表資料監控範圍,當每天跑etl出現異常變動時,通過統計每類標籤的總量變動較大時,傳送郵件讓資料運營的人員接收,然後查詢原因進行定位。

下面分享一下某個對使用者畫像資料管理的python指令碼:

# -*- coding: utf-8 -*- impala_01 = ''' 刪除臨時表語句''' impala_02 = ''' 建立臨時表,檢查昨日執行產生的各類使用者標籤數量是否在合理範圍內 '''   # 建表語句 impala_03 = '''查詢impala_02語句建立的臨時表中的資料量''' import smtplib import os import datetime from impala.dbapi import connect from email.mime.multipart import mimemultipart from email.mime.text import mimetext from email.header import header from email.mime.image import mimeimage import pyhs2 impala_conn = pyhs2.connect(host='10.21.190.220', port=10086, authmechanism="plain", user='zhaoht',  password='yourpassword',  database='wedw_dw') impala_cur = impala_conn.cursor() impala_cur.execute(impala_01)   # 執行刪除臨時表的sql impala_cur.execute(impala_02)   # 執行建立臨時表的sql try:    impala_cur.execute(impala_03)      result_1 = impala_cur.fetchall()    data_1 = list(result_1[0])        # 將元組資料列表化    data_1 = int(data_1.pop())       # 將列表資料轉化為整數   except exception:    data_1 = 1 impala_cur.close() impala_conn.close() sumdata = data_1   # 各標籤加總為0正常 if sumdata == 0 :       # 如果各標籤的資料量正常 則不用傳送郵件    pass else:           # 當標籤資料量出現異常時 自動傳送郵件    pwd = 'yourpassword'    sender_mail = '[email protected]'    receiver = '[email protected]'    mail_content = '''  使用者畫像維護人員你好,gdw.persona_user_tag_relation_public表中昨日資料發生異常,各類標籤資料統計如下:a類標籤[3000000-3500000]:{} '''.format(data_1)    mail_title = '使用者個性化標籤表異常資料預警郵件'    date_str = datetime.datetime.strftime(datetime.date.today()-datetime.timedelta(days=1),'%m%d')    msgroot = mimemultipart('mixed')   #例項化乙個類    msgroot['subject'] = header(mail_title, 'utf-8')    msgroot['from'] = sender_mail    msgroot['to'] = receiver    msgroot["accept-language"]="zh-cn"    msgroot["accept-charset"]="iso-8859-1,utf-8"    content = mimetext(mail_content,'plain','utf-8')    msgroot.attach(content)    smtp = smtplib.smtp()    smtp.set_debuglevel(1)    smtp.connect('mail.guahao.com')    smtp.login(sender_mail, pwd)   #登入發件人郵箱    smtp.sendmail(sender_mail, receiver, msgroot.as_string())    smtp.quit()

上面的python指令碼通過執行hql語句建立臨時表統計前一日某類使用者畫像標籤所產生的資料,通過統計每一類標籤資料量與其正常的合理範圍做比對,當發現異常情況時,傳送預警郵件到資料管理人員的郵箱,當其數值在合理範圍內時,則不傳送郵件。在完成上面的python預警指令碼後,還需要將該指令碼部署到伺服器上,通過crontab定時排程命令,每天定時檢索昨日運營產生的使用者畫像標籤數量,當發生異常情況時及時收到預警郵件(如下圖),資料管理人員可在第一時間對問題原因進行排查和定位。

使用者畫像不「生產」資料,它只是各業務資料、日誌資料、埋點資料的「搬運工」。通常當使用者畫像相關表中出現了髒資料、異常數量級的資料時,一般是其從上游抽取資料的依賴表中出現了異常。上圖中可以看到,當使用者標籤表在2023年11月11日執行產生的資料量不在合理範圍內時,畫像管理人員的郵件在11月12日的9:53分收到了一封異常資料的預警郵件(資料倉儲隔日加工前一天的資料)。管理人員可以根據異常數量的標籤對應型別,進一步查詢其上游依賴表定位問題原因。

資料質量管理

常見的資料質量問題包括 通過資料分析 資料評估 資料清洗 資料監控 錯誤預警等內容,解決資料質量問題,使資料的質量得以改善,使其滿足資料需求方對資料質量的規則要求。包括但不止以下6個方面 要素分別為 基礎模型 資料質量定義模型 資料質量控制模型 資料質量評價模型 資料質量輔助模型。1.基礎模型。其他...

資料質量管理

資料質量管理 下列要素是進行資料質量管理的基礎 1.資料質量的好壞是由使用者以及資料使用價值所決定的。2.資料質量的好壞代表著資料在資料知識應用中 資料所存在的系統中以及資料使用過程中被應用或者有價值的程度。3.只有當資料被下游過程 系統或使用者 所接收並使用時,資料質量問題的研討才有意義。4.資料...

資料質量管理(二)

談資料質量管理,我們首先要繞開類似bi或mdm系統,首先看下對標準的資料質量管理的一下闡述。資料質量管理 data quality management 是指對資料從計畫 獲取 儲存 共享 維護 應用 消亡生命週期的每個階段裡可能引發的各類資料質量問題,進行識別 度量 監控 預警等一系列管理活動,並...