
譯者 | 李睿
審校 | 重樓
大數(shù)據(jù)只有在可靠的情況下才能發(fā)揮價值。使用Deequ和Great Expectations等工具,可以識別并修復(fù)模式漂移、異常值和靜默錯誤等信任問題。
雖然大數(shù)據(jù)系統(tǒng)的規(guī)模、速度和復(fù)雜性都在持續(xù)增長,但人們對它們的信任往往有所滯后。當工程師和分析師構(gòu)建管道來傳輸PB級的數(shù)據(jù)時,往往隱含著這樣一個假設(shè):數(shù)據(jù)是干凈、正確和完整的。不幸的是,這種假設(shè)在現(xiàn)實應(yīng)用中經(jīng)常失效。
從使用錯誤標簽訓(xùn)練的人工智能模型到顯示誤導(dǎo)性KPI的業(yè)務(wù)儀表板,不可信的數(shù)據(jù)會導(dǎo)致現(xiàn)實世界的失敗。在醫(yī)療保健領(lǐng)域,它可能會發(fā)出錯誤的關(guān)鍵警報。在電子商務(wù)領(lǐng)域,它會使需求預(yù)測出現(xiàn)偏差。在金融領(lǐng)域,它會引發(fā)錯誤的交易或不合規(guī)問題。因此,數(shù)據(jù)真實性(準確性和可靠性)不僅是后端問題,更是關(guān)乎業(yè)務(wù)生死存亡的關(guān)鍵問題。
本文將介紹在大規(guī)模醫(yī)療保健和行為分析管道中使用的實際策略,以檢測、衡量和修復(fù)數(shù)據(jù)真實性問題,還將探討實用的工具和示例,以及在錯誤數(shù)據(jù)造成更大損害之前從中吸取的一些教訓(xùn)。
為什么信任對于大數(shù)據(jù)至關(guān)重要
人們可能聽說過大數(shù)據(jù)的“5V”特征:體量(Volume)、速度(Velocity)、多樣性(Variety)、真實性(Veracity)和價值(Value)。雖然大多數(shù)項目關(guān)注的是前三個特征,但第四個特征(真實性)卻在無形中決定了第五個特征。換句話說,不可信的數(shù)據(jù)將會降低價值。
以下說明了數(shù)據(jù)真實性(Veracity)的重要性的一些場景:
- 醫(yī)療領(lǐng)域:在新冠病疫情高峰期,數(shù)據(jù)工程師為一家擁有1.3萬名員工的醫(yī)院構(gòu)建了接觸者追蹤系統(tǒng)。如果帶時間戳的調(diào)查數(shù)據(jù)延遲或不正確,受到病毒感染的員工可能會進入病房,從而帶來進一步傳播的風險。因此,即使錯過一個警報也可能造成嚴重后果。
- 訓(xùn)練人工智能模型:某公司訓(xùn)練了一個機器學(xué)習模型來使用行為數(shù)據(jù)檢測客戶流失。然而,由于記錄訂閱狀態(tài)的方式存在缺陷,輸入數(shù)據(jù)錯誤地標記了流失的客戶。其結(jié)果是什么?這種模式錯過了關(guān)鍵的流失預(yù)測因素,并向活躍用戶發(fā)送了不適當?shù)摹巴旎亍被顒?,損害了客戶的信任。
- 高管儀表板:一家金融科技公司的商業(yè)智能團隊曾發(fā)現(xiàn),該公司首席執(zhí)行官的月度儀表板顯示用戶參與度過高。那么問題何在?原來是事件標記系統(tǒng)發(fā)生了變化,導(dǎo)致點擊流事件重復(fù)。修復(fù)這一問題需要對3億多行的歷史數(shù)據(jù)進行重復(fù)數(shù)據(jù)刪除。
這些案例表明,數(shù)據(jù)信任不是奢侈品,而是基本要求。數(shù)據(jù)質(zhì)量差的代價不僅是技術(shù)性的,更是戰(zhàn)略性的。
常見的數(shù)據(jù)信任問題
以下是人們遇到的數(shù)據(jù)真實性一些問題:
1.模式漂移
像event_ts或user_status這樣的列被靜默地刪除或添加,導(dǎo)致下游作業(yè)失敗或行為不一致。例如,在電子商務(wù)流程中,缺少的discount_code列破壞了對主要活動的轉(zhuǎn)化跟蹤。
2.靜默錯誤
字段可能通過驗證,但包含邏輯錯誤值。例如,發(fā)現(xiàn)調(diào)查數(shù)據(jù)中login_time晚于logout_time,從而扭曲了會話時間指標。
3.重復(fù)事件或延遲事件
點擊流(Clickstream)會話中存在重復(fù)的行動號召(CTA)或由于重復(fù)數(shù)據(jù)刪除邏輯不佳而導(dǎo)致延遲的事件,從而導(dǎo)致參與度指標虛高。
4.離群值(Outliers)
用戶在頁面上停留時間為24小時,雖然這在技術(shù)上有效,但極不可能發(fā)生。這些異常值如果不加以標記,可能扭曲平均值并導(dǎo)致錯誤決策。
確保信任的實用技術(shù)
以下是在管道中使用的實用技術(shù):
1.數(shù)據(jù)分析
使用像AWS Deequ或Great Expectations這樣的工具來定義基線預(yù)期并及早發(fā)現(xiàn)異常。
1 from great_expectations.dataset import PandasDataset
2
3 df = PandasDataset(my_dataframe)
4 df.expect_column_values_to_not_be_null("user_id")
5 df.expect_column_values_to_be_between("age", 18, 99)這些工具允許定義類似于軟件中單元測試的測試??梢栽?/span>CI/CD管道或日常檢查中執(zhí)行這些測試。
2.模式驗證
使用Glue模式注冊表、Avro模式或JSON模式定義來強制執(zhí)行數(shù)據(jù)結(jié)構(gòu)。
1 from pyspark.sql.types import StructType, StructField, StringType, TimestampType
2
3 schema = StructType([
4 StructField("user_id", StringType(), True),
5 StructField("event_ts", TimestampType(), True)
6 ])
7
8 df = spark.read.schema(schema).json("s3://bucket/input/")這確保下游的消費者不會因為缺失或字段錯位而中斷。
3.時間窗口檢查
確保數(shù)據(jù)在預(yù)期的時間范圍內(nèi),避免處理舊數(shù)據(jù)或無效數(shù)據(jù)。
1 from datetime import datetime, timedelta
2
3 now = datetime.utcnow()
4 df = df.filter((df.event_ts > now - timedelta(hours=1)) & (df.event_ts <= now))4.自動異常檢測
除了規(guī)則之外,還可以利用統(tǒng)計檢查或輕量級機器學(xué)習模型來檢測模式變化。諸如Evidently AI、蒙特卡洛(Monte Carlo)等工具或使用z分數(shù)的自定義腳本可幫助發(fā)現(xiàn)分布隨時間漂移的情況。
5.契約執(zhí)行
如果在數(shù)據(jù)網(wǎng)格或微服務(wù)環(huán)境中工作,可以將數(shù)據(jù)模式視為API。使用Pact或OpenMetadata來建立生產(chǎn)者-消費者契約,并在部署前捕獲模式違規(guī)。
前后對比:實際影響
在一個醫(yī)療保健用例中,在接觸者追蹤數(shù)據(jù)攝入管道中實現(xiàn)了模式驗證和時間戳檢查。其結(jié)果如下: ?警報誤報率降低87%。
- 下游模型精度提高22%。
- 內(nèi)部數(shù)據(jù)質(zhì)量得分從68%上升到94%。
在另一個數(shù)字產(chǎn)品分析用例中,通過添加每日分析和重復(fù)數(shù)據(jù)刪除檢查:
- 檢測并修復(fù)了持續(xù)10天的指標虛高問題。
- 防止組織管理層發(fā)起誤導(dǎo)性的營銷活動。
這些變化帶來了更安全的工作場所訪問控制、更加精準的數(shù)據(jù)分析以及增強高管對儀表板的信心。
結(jié)論
對數(shù)據(jù)的信任并非與生俱來,而是需要精心設(shè)計和構(gòu)建。通過將數(shù)據(jù)分析、驗證、監(jiān)控和契約直接嵌入到管道中,可以幫助確保分析、指示板和模型反映現(xiàn)實世界。
以下是開始提升數(shù)據(jù)信任的簡單三步清單:
- 每日分析并驗證關(guān)鍵數(shù)據(jù)集。
- 在生產(chǎn)者和消費者之間強制執(zhí)行模式和契約。
- 持續(xù)監(jiān)測數(shù)據(jù)時效性、漂移和異常情況。
無論人們是在醫(yī)療保健、金融還是數(shù)字產(chǎn)品分析領(lǐng)域工作,值得信賴的數(shù)據(jù)都能讓一切變得更好。
原文標題:How Trustworthy Is Big Data? A Guide to Real-World Challenges and Solutions,作者:Vivek Venkatesan





























