GH GambleHub

डेटा पाइपलाइनों का परीक्षण

1) डेटा पाइपलाइनों का परीक्षण क्यों करें

डेटा पाइपलाइन (इनगेस्ट → ट्रांसफॉर्म → सर्व) - रिपोर्टिंग, एमएल और परिचालन समाधानों के लिए एक महत्वपूर्ण बुनियादी ढांचा। त्रुटियां गलत मैट्रिक्स, धोखाधड़ी संकेतों और मौद्रिक नुकसान में बदल जाती हैं। परीक्षण प्रदान करता है:
  • शुद्धता और लचीलापन।
  • पूर्वानुमानित परिवर्तन (स्कीमा/तर्क विकास)।
  • ताजगी, पूर्णता, विलंबता के संदर्भ में एसएलओ का अनुपालन।
  • स्वचालित सत्यापन के कारण तेजी से रिलीज (रिलीज गति)।

2) डेटा परीक्षण पिरामिड

नीचे: बहुत सारे त्वरित स्थानीय परीक्षण - कम एकीकरण - थोड़ा अंत से अंत तक।

1. परिवर्तनों की इकाई परीक्षण (कार्य, यूडीएफ, एसक्यूएल-दृश्य, डीबीटी-मॉडल)।

2. डेटा गुणवत्ता परीक्षण (ताजगी/पूर्णता/विशिष्टता/सीमा नियम)।

3. अनुबंध और योजनाएं (स्कीमा/अनुबंध परीक्षण, विकास)।

4. पाइपलाइन एकीकरण परीक्षण (DAG: ingest भंडारण transform marts)।

5. E2E अधिकार (आरएलएस/सीएलएस) और निर्यात सहित परीक्षण (स्टोरफ्रंट/एपीआई का स्रोत)।

6. लोड/क्षमता (वॉल्यूम, स्पीड, कॉस्ट-टू-सर्व)।

7. डेटा अराजकता परीक्षण (देरी, डुप्लिकेट, आउट-ऑफ-ऑर्डर, अनुपलब्धता)।

3) परीक्षणों के प्रकार: हम वास्तव में क्या जांच कर

3. 1 इकाई तर्क परीक्षण

शुद्ध परिवर्तन कार्य; संपत्ति-आधारित (अपरिवर्तनीय: पहचान, एकरसता)।

SQL/DBT: मानक (गोल्डन सेट), 'SELECT' निषेध के साथ परिणाम की तुलना, समय के साथ फ़िल्टर की जाँच।

3. 2 डेटा गुणवत्ता परीक्षण (DQ)

ताजगी: विंडो देरी ≤ लक्ष्य दहलीज।

पूर्णता: अपेक्षित मात्रा/अधिभोग का प्रतिशत।

विशिष्टता: बिना डुप्लिकेट के कुंजी।

डोमेन नियम: रेंज, रेफरेंशियल इंटीग्रिटी, बिजनेस इनवेरिएंट्स।

विसंगतियाँ: आउटलेयर, डुप्लिकेट्स के फटने, समय अंतराल।

3. 3 संविदाएं और योजनाएं

संगतता बदलें (SemVer: MAGER/MINTER/PATCH)।

अनिवार्य स्तंभों, प्रकारों, प्रतिबंधों की उपलब्धता।

फिक्स्ड केपीआई शब्दार्थ: सूत्र और एकत्रीकरण विंडो।

3. 4 एकीकरण और E2E

DAG अखंडता: ट्रिगर, निर्भरता, अज्ञात दोहराव।

पूर्ण पथ: स्रोत → कच्चा → क्यूरेटेड → मार्ट → बीआई/एपीआई; आरएलएस/सीएलएस।

3. 5 प्रदर्शन और लागत

p95/p99 नौकरी विलंबता, थ्रूपुट (पंक्तियों/एस), वॉल्यूम/मान।

प्रदर्शन प्रतिगमन परीक्षण और स्कैन सीमा।

3. 6 सुरक्षा और गोपनीयता

पीआईआई/पीसीआई मास्किंग (नियतात्मक टोकन)।

RLS/CLS जाँच - उपयोगकर्ता केवल अपने स्वयं के देखते हैं।

निर्यात/स्नैपशॉट: कोई "कच्चा" व्यक्तिगत क्षेत्र नहीं।

4) स्ट्रीमिंग की बारीकियां (काफ्का/फ्लिंक/स्पार्क संरचित स्ट्रीमिंग)

वॉटरमार्क और विलंबता: देर से होने वाली घटनाओं (T +) के साथ खिड़कियों के परीक्षण, सही पुनर्गणना।

बिल्कुल एक बार अर्थ में: 'event _ id', idempotent entry (upsert/merge) द्वारा dedup।

आउट-ऑफ-ऑर्डर: 'इवेंट _ टाइम' द्वारा समुच्चय के लिए अपरिवर्तनीय; 'ingested _ at' को ठीक करें।

हानि/पुनरावृत्ति: पार्टियों की एक बूंद/खेल का अनुकरण करें, शोकेस की शुद्धता की जांच करें।

5) आदर्शवाद और निर्धारणवाद (क्या और कैसे परीक्षण करना है)

एक चरण को पुनः प्रारंभ करने से वही परिणाम मिलता है (उसी विंडो पैरामीटर के साथ)।

रिकॉर्डिंग - मंचन और परमाणु स्वैप के माध्यम से।

SCD1/SCD2 के साथ तर्क विलय अंतिम-लेखन-जीत, स्रोत प्राथमिकता द्वारा कवर किया गया है।

UDF/कुल निर्धारण: समान इनपुट - समान आउटपुट।

6) परीक्षण डेटा प्रबंधन

गोल्डन डेटासेट: मैनुअल सत्यापन के साथ छोटे मानक।

सिंथेटिक्स + डेटा फैक्ट्रियां: डोमेन किनारों (nulls, चरम मान, यूनिकोड, TZ) को कवर करना।

डी-पहचाने गए प्रॉड नमूने: गोपनीयता मैच।

स्तरित काल्पनिक: कच्ची घटनाएं, मध्यवर्ती परतें, अंतिम शोकेस।

7) डेटा अनुबंध - उदाहरण और नियम

YAML अनुबंध (सरलीकृत):
yaml dataset: orders schema:
- name: order_id; type: string; unique: true
- name: user_id; type: string; not_null: true
- name: amount; type: decimal(18,2); min: 0
- name: event_time; type: timestamp; tz: UTC freshness_sla: 10m dq_rules:
- "pct_null(user_id) < 0. 1%"
- "duplicates(order_id) = 0"
- "sum(amount) >= 0"
evolution:
allowed_minor_additions: true breaking_changes_require: approval: 'data-governance'
actions_on_violation:
- quarantine_partition
- replay_last_60m

8) अवलोकन और एसएलओ परीक्षण

निर्यात मेट्रिक्स: ताजगी, पूर्णता, विशिष्टता, ग्राफाना/प्रोमेथियस के लिए विलंबता।

एसएलओ प्रोड (सिंथेटिक्स) में "लाल" इकाई परीक्षण के रूप में अलर्ट करता है।

प्रतिगमन रिपोर्ट: "X p95 की रिलीज़ के बाद 40%।"

9) सीआई/सीडी और मीडिया

सीआई: इकाई + डीक्यू + पीआर अनुबंध; स्कीमा-डिफ़; SQL स्थैतिक विश्लेषण (लिंटर)।

सैंडबॉक्स/मंचन: सुरक्षित डेटा के साथ एकीकरण और e2e, अराजकता परीक्षण चलाएं।

फ़ीचर-फ्लैग्स: कैनरी जैब्स/मॉडल/फ़ॉर्मूला।

कैटलॉगिंग: योजनाओं का संस्करण, केपीआई सूत्र, वंश; प्रलेखन का स्वचालित अद्य

10) अराजकता डेटा परीक्षण (अराजकता-डेटा)

डुप्लिकेट/चूक, देरी, आउट-ऑफ-ऑर्डर का इंजेक्शन।

ब्रोकर/पार्टी ड्रॉप, "टूटी हुई" फ़ाइलें, स्कीमा बहाव।

हम मान्य करते हैं: ऑटो-रिपेयर (रीप्ले/बैकफिल), संगरोध और अलर्ट, एमटीटीआर-डेटा।

11) लोड और लागत

p95 प्रोफाइल/चोटियों के साथ ट्रैफिक जनरेटर।

स्कैन/स्टेप पर सीमा (बाइट्स स्कैन, टाइम कैप)।

A/B मान प्रोफाइलर: "पुराना" बनाम "नया" मॉडल/क्वेरी।

12) उपकरण (नमूना वर्ग)

डीक्यू/कॉन्ट्रैक्ट: डीबीटी टेस्ट, ग्रेट एक्सपेक्टेशंस, डेक्यू, सोडा, कस्टम लिंटर्स।

ऑर्केस्ट्रेशन: एयरफ्लो/डागस्टर/आर्गो/प्रीफेक्ट (प्रत्येक चरण में परीक्षण के लिए ऑपरेटर)।

प्लेटफ़ॉर्म: BigQuery/Snowflake/Redshift/ClickHouse/Delta/Iceberg/Hudi।

स्ट्रीमिंग: काफ्का, फ्लिंक, स्पार्क स्ट्रीमिंग; स्थानीय वातावरण के लिए TestContainers।

अवलोकन: प्रोमेथियस/ग्राफाना/ओटेल; DataHub/Amundsen/Collibra निर्देशिका।

13) एंटीपैटर्न

"परीक्षण करने के लिए कुछ भी नहीं है - यह सिर्फ SQL है": कोई इकाई नहीं है और DQ metrics ब्रेक हैं।

केवल E2E: धीमी, अस्थिर, टूटने के कारण स्पष्ट नहीं हैं।

चयन: माइनर विकास के तहत टूटता है।

परीक्षणों में OLTP का लाइव रीडिंग: अस्थिरता और गुच्छे।

सुनहरे सेटों की कमी: परिणामों की तुलना करने के लिए कुछ भी नहीं।

कोई पहचान परीक्षण नहीं: पुनर्मिलन डेटा खराब करता है।

भूल गई स्ट्रीमिंग: परीक्षण नहीं किया गया विलंबता/आउट-ऑफ-ऑर्डर/पुनर्वितरण।

14) कार्यान्वयन रोडमैप

1. आधार: परिवर्तन की इकाई परीक्षण, सुनहरा सेट, एसक्यूएल लिंटर, शीर्ष -10 शोकेस डीक्यू नियम।

2. अनुबंध: CI, SemVer, स्वचालित संगतता जांच में स्कीमा-डिफ़।

3. एकीकरण: DAG परीक्षण, पहचान, महत्वपूर्ण धाराओं के लिए e2e।

4. स्ट्रीमिंग: वॉटरमार्क/लेटनेस, डेडअप/आइडेम्पोटेंट सिंक टेस्ट।

5. एसएलओ और अराजकता: बिक्री, अलर्ट, अराजकता परिदृश्य, एमटीटीआर लक्ष्यों में गुणवत्ता मैट्रिक्स।

6. अनुकूलन: पर्फ रिग्रेशन, बजट गार्ड, कैनरी रिलीज।

15) प्री-रिलीज़चेकलिस्ट

  • यूनिट परीक्षण प्रमुख परिवर्तनों और यूडीएफ को कवर करता है।
  • ताजगी/पूर्णता/विशिष्टता/रेंज पास के लिए डीक्यू नियम।
  • अनुबंध और स्कीमा-डिफ हरे रंग के हैं; अनुमोदन के बिना कोई ब्रेकिंग परिवर्तन नहीं हैं
  • पहचान परीक्षण; परमाणु सिंक/मर्ज काम करता है।
  • स्ट्रीमिंग: वॉटरमार्क/लेट डेटा/आउट-ऑफ-ऑर्डर कवर; जगह में dedup।
  • एसएलओ मैट्रिक्स उजागर होते हैं; अलर्ट कॉन्फ़िगर किए गए हैं; रनबुक हैं।
  • परीक्षण डेटा सुरक्षित है; पीआईआई नकाबपोश; RLS/CLS जाँच की गई।
  • कोई पर्फ रीग्रेशन नहीं; स्कैन/समय सीमा मिली।
  • बुनियादी परिदृश्यों के अराजकता परीक्षण पारित; MTTR-लक्ष्य प्राप्त करने योग्य।

16) मिनी टेम्पलेट उदाहरण

16. 1 SQL इकाई परीक्षण (छद्म-dbt):

sql
-- tests/assert_positive_amount. sql select count() as c from {{ ref('fct_payments') }}
where amount < 0 having c = 0

16. 2 महान उम्मीदें-शैली:

yaml expect_table_row_count_to_be_between:
min_value: 1000 mostly: 0. 99 expect_column_values_to_not_be_null:
column: user_id expect_column_values_to_be_unique:
column: txn_id

16. 3 स्ट्रीम में विलंबता की जाँच (छद्म कोड):

python emit(events_out_of_window <= threshold)
emit(reprocessed_events == late_events_detected)

16. 4 अनुबंध-परीक्षण (स्कीमा-डिफ सीआई):

bash schema-diff --current models/orders. yml --target prod_schema. yml --semver

17) नीचे की रेखा

परीक्षण डेटा पाइपलाइनें एक सिस्टम अनुशासन है, न कि टुकड़े टुकड़े चेक का संग्रह। परीक्षणों, अनुबंधों और अवलोकन के पिरामिड को पहचानने, सर्किट विकास और स्ट्रीमिंग आक्रमणकारियों की प्रथाओं के साथ मिलाएं। फिर रिलीज तेज हो जाएगी, घटनाएं दुर्लभ और छोटी हो जाएंगी, और डेटा में विश्वास टिकाऊ हो जाएगा।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।