विभिन्न स्रोतों से डाटा मिलाएँ
विभिन्न स्रोतों से डाटा मिलाएँ
डेटा विलय समग्र संस्थाओं और लगातार स्टोरफ्रंट में विषम प्रवाह (उत्पाद डेटाबेस, सीआरएम, भुगतान प्रदाताओं, घटना लॉग, तृतीय-पक्ष रजिस्ट्रियों) के संयोजन की प्रक्रिया है। लक्ष्य एनालिटिक्स, एमएल और परिचालन मामलों के लिए एक गोल्डन रिकॉर्ड और लगातार कटौती प्राप्त करना है।
1) विशिष्ट परिदृश्य और उद्देश्य
360 ° संक्षेप में: ग्राहक/खिलाड़ी, उपकरण, भुगतान साधन, व्यापारी।
लेनदेन समेकन: कई पीएसपी/नकद रजिस्टर - अनिवार्य पहचान के साथ एक लॉग।
घटना सामान्यीकरण: वेब/मोबाइल/बैकेंड लॉग - एकल घटना शब्दकोश।
संवर्धन: बाहरी निर्देशिका (भू, एफएक्स, एएमएल/प्रतिबंध, विपणन स्रोत)।
एकीकृत मैट्रिक्स: मुद्राओं/समय क्षेत्रों, योजनाओं और एन्कोडिंग का समन्वय।
2) स्रोत अनुबंध और योजनाएं
प्रत्येक स्रोत के लिए डाटा संविदा शुरू करने से पहले:- स्कीमा: क्षेत्र, प्रकार, शून्यता, कुंजी (ओं), मूल्य डोमेन।
- शब्दार्थ: प्रत्येक क्षेत्र (शब्दकोश) का क्या अर्थ है।
- SLA: ताजगी/आवृत्ति, अधिकतम विलंबता और आउट-ऑफ-ऑर्डर।
- विकास: योजना परिवर्तन नीति (पिछड़ा/आगे), अवसाद।
- गुणवत्ता: कुंजियों की विशिष्टता, स्वीकार्य सीमाएँ, संदर्भ अखंडता।
3) पहचान: कुंजी और मानचित्रण (रिकॉर्ड लिंकेज)
3. 1. हार्ड आईडी
प्राकृतिक कुंजियाँ: 'user _ id', 'लेनदेन _ id', 'युक्ति _ id', 'iban'.
प्रॉक्सी कुंजी: ई-मेल/फोन (सामान्यीकृत: केस, स्पेस, कंट्री कोड)।
सरोगेट्स: एक सार्वभौमिक कुंजी के अभाव में हब टेबल में 'सरोगेट _ आईडी'।
3. 2. नरम मिलान नियम
निर्धारक: सामान्यीकृत ई-मेल + डीआर का सटीक मिलान; "होम "/" मोबाइल "फोन → E.164।
प्रोबेबिलिस्टिक (फजी): त्वरण के लिए मोटे हैश/उपसर्ग द्वारा नाम/पते के लिए जारो-विंकलर/लेवेनशेटिन, TF-IDF/एम्बेडिंग, "ब्लॉकिंग" (अवरुद्ध)।
ग्राफ दृष्टिकोण: नोड्स के रूप में संस्थाएं, किनारों के रूप में संयोग; clustering कनेक्टिविटी घटक।
स्टेप-अप रणनीति: मैनुअल "सीमा पर" समीक्षा के साथ सख्त से नरम नियमों तक।
3. 3. समेकन नियम (अस्तित्व)
स्रोत की प्राथमिकता "केवाईसी रजिस्ट्री> सीआरएम> लॉग्स" है जब मानों का विरोध होता है।
ताजगी: नया टाइमस्टैम्प जीतता है (वैधता के लिए समायोजित)।
परिपूर्णता: गैर-NULL पसंद करें; संयोजन सेट द्वारा पते/टैग विलय।
ऑडिट: "समाधान निशान" रखें - क्या लिखा गया था और क्यों।
4) डीडुप्लिकेशन और एमडीएम
एमडीएम परत (मास्टर डेटा प्रबंधन): मास्टर इकाई तालिकाएं + istochnik→master संबंध।
गोल्डन रिकॉर्ड: 'आत्मविश्वास' क्षेत्र/सत्य के स्रोत के साथ एकत्र रिकॉर्ड।
इतिहास: समय-निर्भर विशेषताओं के लिए एससीडी टाइप 2 (पता, केवाईसी स्थिति)।
पहचान: "मर्ज "/" स्पिल "तिथियों के साथ मानचित्र तालिकाओं का विलय करें।
5) परिवर्तन प्रवाह: सीडीसी, लेटकोमर्स और डुप्लिकेट्स
सीडीसी (डाटा कैप्चर बदलें): события 'डालें/अद्यतन/हटाएँ' + 'source _ lsn '/ऑफसेट.
देर की घटनाएं: वॉटरमार्क और अनुग्रह अवधि, समायोजन के लिए देर से अपडेट संग्रहीत करना।
आउट-ऑफ-ऑर्डर: कुंजी और समय द्वारा छंटाई, अपडेट की क्षतिपूर्ति।
डुप्लिकेट: idempotent कुंजी ('event _ id', 'idempotency _ key'), विंडो में dedup.
बिल्कुल एक बार: लेन-देन एकल/स्टोर, नियतात्मक तर्क के साथ 'MERGE'।
6) टाइमज़ोन, मुद्राएँ और कैलेंडर
समय: UTC + स्थानीयकृत स्लाइस में स्टोर; स्पष्ट रूप से स्टोर 'at _ at' and 'event _ time'।
मुद्राएं: लेनदेन की तारीख पर दर के साथ "कच्ची मुद्रा" और सामान्यीकृत 'बेस _ ccy'।
कैलेंडर: उचित तुलना के लिए क्षेत्र द्वारा छुट्टी/कार्यदिवस तालिकाएं।
7) विलय के लिए छद्म-एसक्यूएल (अपसर्ट/मर्ज)
7. 1. लेन-देन (पहचान पत्रिका)
sql
MERGE INTO fact_transactions t
USING staging_transactions s
ON t. txn_id = s. txn_id
WHEN MATCHED AND s. updated_at > t. updated_at THEN
UPDATE SET amount = s. amount,
currency = s. currency,
status = s. status,
updated_at = s. updated_at
WHEN NOT MATCHED THEN
INSERT (txn_id, user_ext_id, amount, currency, status, event_time, updated_at)
VALUES (s. txn_id, s. user_ext_id, s. amount, s. currency, s. status, s. event_time, s. updated_at);
7. 2. उपयोगकर्ता "गोल्डन रिकॉर्ड" (स्रोत प्राथमिकता + ताजगी)
sql
WITH ranked AS (
SELECT s. ext_user_id,
s. norm_email,
s. phone_e164,
s. addr_struct,
s. source,
s. updated_at,
ROW_NUMBER() OVER (
PARTITION BY s. ext_user_id
ORDER BY
CASE s. source
WHEN 'KYC' THEN 1 WHEN 'CRM' THEN 2 ELSE 3 END,
s. updated_at DESC
) AS rn
FROM staging_users s
)
MERGE INTO dim_user_golden g
USING ranked r
ON g. ext_user_id = r. ext_user_id
WHEN MATCHED AND r. rn = 1 THEN
UPDATE SET email = COALESCE(r. norm_email, g. email),
phone = COALESCE(r. phone_e164, g. phone),
address = COALESCE(r. addr_struct, g. address),
source_of_truth = r. source,
updated_at = r. updated_at
WHEN NOT MATCHED AND r. rn = 1 THEN
INSERT (ext_user_id, email, phone, address, source_of_truth, updated_at)
VALUES (r. ext_user_id, r. norm_email, r. phone_e164, r. addr_struct, r. source, r. updated_at);
8) गुणवत्ता और परीक्षण
परीक्षण स्कीमा: आवश्यक क्षेत्र, प्रकार, डोमेन।
तर्क परीक्षण: कुंजी की विशिष्टता, डुप्लिकेट की अनुपस्थिति, कोई "समय में वापस" नहीं।
सामंजस्य: स्रोत बनाम अंतिम शोकेस द्वारा मात्रा; विसंगतियाँ - टिकट।
प्रोफाइलिंग: वितरण, अंश NULL, "लंबी पूंछ।"
मेट्रिक्स विलय करें: सटीक/रिकॉल मैपिंग,% रिकॉर्ड आत्मविश्वास के साथ - सीमा।
9) अवलोकन और एसएलओ
एसएलओ ताजगी: विंडो लैग ≤ एन मिनट/घंटे; देरी निगरानी और बैकलॉगिंग।
अलर्ट: डुप्लिकेट में वृद्धि, संघर्षों में वृद्धि, कवरेज कुंजी में गिरावट।
वंश लॉग: किस स्रोत से क्षेत्र लिया गया था, कब और किसके द्वारा इसे लिखा गया था।
रनीबुक: हादसा परिदृश्य (देर से बैच, सीडीसी तूफान, गलत एफएक्स)।
10) सुरक्षा, गोपनीयता, अनुपालन
PII: उपनाम, आईडी हैशिंग, BI में मास्किंग।
आरएलएस/सीएलएस: भूमिकाओं और पंक्तियों द्वारा पहुंच; निर्यात - टोकन और समाप्ति तिथि के साथ।
डेटा जीवनकाल: भंडारण कार्यक्रम; हटाने का अधिकार (DSAR) और "कानूनी पकड़"।
पुन: पहचान: संवेदनशील तालिकाओं के शामिल होने को कम करने के नियम।
11) मॉडल और डेटा संगठन
परतें: 'कच्चा' (जैसा कि है) → 'मंचन' (सफाई/सामान्यीकरण) → 'कोर' (मुख्य संस्थाएं, तथ्य/माप) → 'मार्ट्स' (एनालिटिक्स/एमएल के लिए शोकेस)।
SCD: विशेषताओं के लिए टाइप 2, त्रुटि सुधार के लिए टाइप 1; स्पष्ट 'valid _ fore/valid _ to'।
फ़ीचर स्टोर: परिवर्तन फ़ंक्शन ऑनलाइन/ऑफ़लाइन समान हैं; बिंदु-इन-टाइम शुद्धता।
12) कार्यान्वयन पैटर्न
शब्दार्थ परत के साथ ईएलटी: विलय तर्क को घोषणात्मक रूप से वर्णित किया गया है (नियम, प्राथमिकताएं, कुंजी)।
स्ट्रीम + माइक्रोबैच: पास-रियल-टाइम डिस्प्ले के लिए - वॉटरमार्क के साथ माइक्रोबैच 1-15 मिनट।
ग्राफ-लिंकेज: जटिल पहचान (उपकरणों, नक्शे, पते) के लिए एक अलग ग्राफ हब।
स्टेप-अप सत्यापन: छाया मोड में नए लिंकेज नियम शामिल करें, सटीकता मैट्रिक्स एकत्र करें।
13) प्री-मर्ज लूप रिलीज़ चेकलिस्ट
- स्रोत अनुबंध पर हस्ताक्षर किए स्कीमा और क्षेत्र शब्दकोश सुसंगत हैं
- लिंकेज कुंजी/नियम परिभाषित; एक deduplication रणनीति है
- जीवित रहने के नियम और स्रोत प्राथमिकताएं निर्धारित ऑडिट-लॉग सक्षम
- सीडीसी/पहचान/देर से डेटा प्रोसेसिंग कार्यान्वित
- मुद्राएँ/समय क्षेत्र/पंचांग सामान्यीकृत
- गुणवत्ता परीक्षण और सामंजस्य स्थापित किए जाते हैं; अवलोकन के डैशबोर्ड उपलब्ध हैं
- एसएलओ ताजगी और उपलब्धता तय है; अलर्ट और रनिबुक तैयार हैं
- पीआईआई/एक्सेस/स्टोरेज अनुपालन
- प्रलेखन: इकाई पासपोर्ट, वंश स्कीमा, नमूना अनुरोध
14) "स्वर्ण रिकॉर्ड" का पासपोर्ट (टेम्पलेट)
एंटिटी: 'USER _ GOLDEN'
कुंजी: 'user _ master _ id' (सरोगेट), मैपिंग 'source _ user _ id []'
क्षेत्र और नियम:- 'ईमेल': सामान्यीकरण + प्राथमिकता 'KYC> CRM> LOGS'
- 'फोन': E.164 सामान्यीकरण, सत्यापन विभाजन
- 'नाम': जारो-विंकलर ≥ 0। 92, फॉलबैक - केवाईसी स्रोत
- 'address': यौगिक वस्तु; संघ + ताजगी प्राथमिकता
- इतिहास: ('वैध _ for/valid _ to')
- वंश: दाता क्षेत्र संदर्भ सूची
- गुणवत्ता: coverage≥98%, dublikaty≤0। 3%
- SLO: ताजगी ≤ 1 घंटा, उपलब्धता ≥ 99। 9%
- मालिक: डेटा प्लेटफ़ॉर्म, KYC/AML
- जोखिम: नाम टकराव, "परिवार" फोन, साझा-उपकरण
15) सारांश और सिफारिशें
विलय न केवल एक "कुंजी द्वारा JINE" है, बल्कि एक रूपरेखा है: स्रोत अनुबंध - पहचान और डीडप प्राथमिकताएं और सीडीसी का "सुनहरा रिकॉर्ड" और देर से गुणवत्ता और अवलोकन सुरक्षा और इतिहास बदलना।
पारदर्शी रूप से नियम बनाएं, प्रत्येक समाधान का ऑडिट रखें, एससीडी और बिल्कुल एक बार समर्थन करें। इस तरह दर्जनों स्रोतों से डेटा उत्पाद, एनालिटिक्स और एमएल के लिए विश्वसनीय स्टोरफ्रंट और टिकाऊ मैट्रिक्स में बदल जाता है।