क्या डिडुप्लिकेशन है?
स्क्रेपलेस एजेंट ब्राउज़र प्रबंधित ब्राउज़र सत्र प्रदान करता है ताकि जावास्क्रिप्ट- rendred सार्वजनिक पृष्ठ एकत्र किए जा सकें जो डिडुप्लिकेशन और एंटिटी-रिजॉल्यूशन वर्कफ़्लोज़ को पोषित कर सकें।
TL;DR
- डिडुप्लिकेशन पहचान को हल करता है, दृश्य समानता को नहीं। एक मिलान नियम को यह बताना चाहिए कि वास्तव में कौन सी वास्तविकता या घटना रिकॉर्ड्स का प्रतिनिधित्व करती है।
- सटीक कुंजी तब सबसे सुरक्षित होती हैं जब वे स्थिर होती हैं। एक स्रोत पहचानकर्ता या मानक URL टेक्स्ट समानता की विषमता से बच सकता है।
- धुंधला मिलान समीक्षा थ्रेशोल्ड की आवश्यकता होती है। समानता स्कोर यह प्रमाणित नहीं करते कि दो रिकॉर्ड एक समान हैं।
- सर्वाइवर्शिप नियम सूचना की सुरक्षा करते हैं। एक मर्ज को परिभाषित करना चाहिए कि कौन सी मूल्य जीते हैं और कौन सी उत्पत्ति बनाए रखी जाती है।
- गुणवत्ता लेबल वाले जोड़ों पर मापी जाती है। सटीकता और रिकॉल एक मिलान दर द्वारा छिपी अलग-अलग लागतों को दर्शाते हैं।
डिडुप्लिकेशन को बिना हाथ हिलाए परिभाषित किया गया
डिडुप्लिकेशन उस प्रक्रिया को कहा जाता है जिसमें उन रिकॉर्ड्स की पहचान की जाती है जो एक समान वास्तविक दुनिया की वस्तु, घटना, या एंटिटी का प्रतिनिधित्व करते हैं और फिर उन्हें रखने, लिंक करने, मर्ज करने, या त्यागने के लिए एक स्पष्ट नीति लागू की जाती है। नीति उतनी ही महत्वपूर्ण होती है जितनी कि मिलान विधि क्योंकि दो समान पंक्तियाँ स्वचालित रूप से विनिमेय नहीं होती हैं।
सटीक डिडुप्लिकेशन स्थिर मूल्य या फिंगरप्रिंट की तुलना करता है। कीड डिडुप्लिकेशन उपयोग करता है एक या अधिक क्षेत्रों का जो एंटिटी की पहचान करनी चाहिए। धुंधले तरीके नामों, पते, विवरणों, या अन्य असमान गुणों की तुलना करते हैं और एक स्कोर उत्पन्न करते हैं जिसे गलत मिलान की लागत के खिलाफ व्याख्या करना आवश्यक होता है। औपचारिक सीमा PostgreSQL विशिष्टता अनुबंधउन उत्पाद चर्चाओं में जब एक ही शब्द ढीले तौर पर उपयोग किया जाता है तब यह उपयोगी होता है।
डिडुप्लिकेशन का अर्थ यह नहीं है कि हर दोहराए गए मूल्य को हटाना है। दो वैध आदेश एक ग्राहक और कुल को साझा कर सकते हैं, दो पृष्ठ एक उत्पाद शीर्षक को दोहराते हैं, और दो घटनाओं में विभिन्न समय पर समान पेलोड हो सकते हैं। पहचान, अवलोकन समय, और व्यापार अनाज यह तय करते हैं कि क्या पुनरावृत्ति डुप्लिकेशन है। सीमा का नामकरण टीमों को इस अवधारणा से यह कहने से रोकता है कि वे उन गारंटी प्रदान करें जो संग्रहण, अनुसूची, सुरक्षा, या व्यापार नीति से संबंधित हैं।
कैसे डुप्लिकेट उम्मीदवार एक रिकॉर्ड बनते हैं
एक विश्वसनीय डिडुप्लिकेशन पथ उम्मीदवार निर्माण, तुलना, निर्णय, और सर्वाइवर्शिप को अलग करता है। उन चरणों को एक अपारदर्शी फ़ंक्शन में समेकित करना गलत मर्ज को निदान करने में कठिन बनाता है और समीक्षकों को यह देखने से रोकता है कि कौन से सबूत परिणाम को प्रेरित करते हैं।
- सिर्फ उन क्षेत्रों को सामान्यीकृत करें जो तुलना के लिए आवश्यक हैं जबकि मूल मूल्यों को बनाए रखते हैं। यह चरण अपने इनपुट, निर्णय, आउटपुट, और मालिक को उजागर करना चाहिए ताकि एक बाद की जांच स्रोत समस्या को प्रसंस्करण समस्या से अलग कर सके।
- ब्लॉकिंग कुंजी के साथ उम्मीदवार उत्पन्न करें ताकि असंबंधित रिकॉर्ड पूरी तरह से तुलना न करें। यह चरण अपने इनपुट, निर्णय, आउटपुट, और मालिक को उजागर करना चाहिए ताकि एक बाद की जांच स्रोत समस्या को प्रसंस्करण समस्या से अलग कर सके।
- प्रत्येक उम्मीदवार जोड़ी को सटीक, ध्वनिक, टोकन, दूरी, या डोमेन-विशिष्ट साक्ष्य के साथ स्कोर करें। यह चरण अपने इनपुट, निर्णय, आउटपुट, और मालिक को उजागर करना चाहिए ताकि एक बाद की जांच स्रोत समस्या को प्रसंस्करण समस्या से अलग कर सके।
- जोड़ी को मैच, गैर-मैच, या समीक्षा के रूप में वर्गीकृत करें जो प्रलेखित थ्रेशोल्ड के अनुसार हैं। यह चरण अपने इनपुट, निर्णय, आउटपुट, और मालिक को उजागर करना चाहिए ताकि एक बाद की जांच स्रोत समस्या को प्रसंस्करण समस्या से अलग कर सके।
- रखें, लिंक, या मर्ज नीति लागू करें और जीवित रिकॉर्ड के पीछे स्रोत वंश को बनाए रखें। यह चरण अपने इनपुट, निर्णय, आउटपुट, और मालिक को उजागर करना चाहिए ताकि एक बाद की जांच स्रोत समस्या को प्रसंस्करण समस्या से अलग कर सके।
डेटाबेस प्रतिबंध नए सटीक डुप्लिकेट को रोक सकते हैं, लेकिन वे ऐतिहासिक रिकॉर्ड, वर्तनी के परिवर्तन, बदलते पहचानकर्ता, या प्रणालियों के बीच विभाजित रिकॉर्ड को हल नहीं करते हैं। एंटिटी रिजॉल्यूशन उस अधिक व्यापक साक्ष्य को संभालता है जबकि एक अनोखा प्रतिबंध लेखन समय पर एक संकीर्ण अपरिवर्तन लागू करता है। एक दूसरी तकनीकी दृश्यता Apache Spark dropDuplicates API। वह संदर्भ एक ठोस मॉडल का वर्णन करता है बजाय इसके कि वे उपमा पर निर्भर करें।
सटीक, कीड, और धुंधला डिडुप्लिकेशन
| विधि | सर्वोत्तम फिट | प्रमुख जोखिम |
|---|---|---|
| सटीक पंक्ति हैश | बाइट-स्थिर दोहराए गए रिकॉर्ड | स्वरूपण परिवर्तनों से एक डुप्लिकेट छिपता है |
| संयुक्त व्यापार कुंजी | स्थिर फ़ील्ड संयोजन | कुंजी में परिवर्तन या पुन: उपयोग किया जाता है |
| मानक पहचानकर्ता | स्रोत आईडी या सामान्यीकृत यूआरएल | स्रोत पहचान अधूरा है |
| धुंधला समानता | नाम और वर्णनात्मक पाठ | समान संस्थाएँ मर्ज की जाती हैं |
| मानव समीक्षा बैंड | उच्च-लागत अस्पष्ट जोड़ियाँ | नीति के बिना समीक्षा कतार बढ़ती है |
सटीक विधियाँ समझाने में आसान होती हैं, जबकि धुंधली विधियाँ अधिक गंदे पहचान को कवर करती हैं। कई सिस्टम एक Cascade का उपयोग करते हैं: पहले निर्धारक पहचानकर्ता, दूसरे सटीक सामान्यीकृत कुंजी और केवल अनसुलझे उम्मीदवारों के लिए स्कोर की गई तुलना।
तुलना एक निर्णय सहायता है, परिपक्वता की सीढ़ी नहीं। एक छोटा या साधारण विकल्प सही हो सकता है जब इसका अनुबंध कार्यभार से मेल खाता है, जबकि एक अधिक जटिल विकल्प लागत पैदा करता है यदि टीम इसे संचालित या परीक्षण नहीं कर सकती।
जहां डुप्लिकेट नियंत्रण लाभ देता है
ग्राहक और खाता रिकॉर्ड
एक ही इकाई के लिए स्रोत रिकॉर्ड को लिंक करें बिना पते, सहमति स्थिति, या प्रणाली-विशिष्ट पहचानकर्ता मिटाए।
उत्पाद कैटलॉग
सूचियों को एकीकृत करें जो व्यापारी नामकरण के द्वारा भिन्न होती हैं जबकि पैकेज का आकार, विभिन्नता, और क्षेत्रीय भिन्नताओं को बनाए रखते हैं।
घटना इन्गेस्टेशन
एक ही घटना पहचानकर्ता को परिवर्तनीय से रोकें जब एक निर्माता इसे एक से अधिक बार प्रस्तुत करता है।
वेब मॉनिटरिंग
बदले हुए पृष्ठों या दोहराए जाने वाली सूचियों को नए अवलोकनों के रूप में गिनने से बचें जबकि पकड़ने का इतिहास बनाए रखते हैं।
मान मूल्य तब प्रकट होता है जब डाउनस्ट्रीम उपयोगकर्ताओं को एक स्थिर इकाई दृश्य, एक घटना की गणना, या एक वर्तमान सूची की आवश्यकता होती है। लागत तब प्रकट होती है जब एक झूठी विलय एक वैध भिन्नता को हटा देती है, इसलिए मिलान नीति को व्यावसायिक अनाज का पालन करना चाहिए। प्रत्येक उपयोग मामले को एक नामित उपभोक्ता, एक स्वीकार्य स्रोत, और एक मापने योग्य सफलता की स्थिति की आवश्यकता होती है। बिना उन तीन विवरणों के, कार्यान्वयन कार्य गतिविधि को अनुकूलित करने की प्रवृत्ति रखता है बजाय इसके कि वह एक परिणाम का ध्यान रखे।
मिलान कुंजी और सर्वाइवरशिप नियम चुनना
पहले पहचान और परिणामों के साथ शुरू करें। इकाई को परिभाषित करें, विश्वसनीय पहचानकर्ताओं की सूची बनाएं, स्रोत-विशिष्ट दोषों का वर्णन करें, और तय करें कि क्या एक अनिश्चित जोड़ी अलग रखी जानी चाहिए या समीक्षा में प्रवेश करनी चाहिए।
- अनाज की घोषणा करें। बताएं कि एक रिकॉर्ड का मतलब एक इकाई, संस्करण, घटना, सूची, या अवलोकन है।
- स्रोत पहचानकर्ताओं को बनाए रखें। एक सुनहरा रिकॉर्ड उन कुंजियों को मिटाना नहीं चाहिए जो एक विलय को ट्रेस या उलटने के लिए आवश्यक हैं।
- मिलान को विलय से अलग करें। एक संभावित मिलान को बिना तुरंत किसी रिकॉर्ड को ओवरराइट किए लिंक किया जा सकता है।
- लेबल किए गए जोड़ियों पर कैलिब्रेट करें। थ्रेसहोल्ड वास्तविक झूठे सकारात्मक और झूठे नकारात्मक लागतों को दर्शित करने चाहिए।
- निर्णय को उलटने योग्य बनाएं। बुरा क्लस्टर विभाजित करने के लिए विलय इतिहास और पर्याप्त सबूत संग्रहीत करें।
क्लस्टर-स्तरीय समीक्षा महत्वपूर्ण है क्योंकि जोड़ी मिलान श्रृंखलाएं बना सकती हैं। यदि A, B से मेल खाता है और B, C से मेल खाता है, तो सिस्टम को यह तय करने की आवश्यकता होती है कि क्या सभी तीन एक ही इकाई से संबंधित हैं। संबंधित बाधाएँ RFC 8785 JSON मानकीकरण इंटरऑपरेबिलिटी, डेटा, या निष्पादन के लिए विकल्प के पीछे के अनुमान के लिए एक और प्राथमिक संदर्भ प्रदान करता है।
एक उत्पादन डिज़ाइन को स्थिर स्थिति और परिवर्तन पथ को दस्तावेज़ित करना चाहिए। टीमों को यह जानने की आवश्यकता है कि एक नया क्षेत्र, कार्यकर्ता, तैनाती, अनुसूची, या उपभोक्ता प्रणाली में कैसे प्रवेश करता है; संगतता का मूल्यांकन कैसे किया जाता है; और कौन सा सबूत परिवर्तन को स्वीकार या अस्वीकार करने की अनुमति देता है।
डुप्लिकेशन त्रुटियाँ जो डेटा को भ्रष्ट करती हैं
अधिकांश हानिकारक दोष एक सुविधाजनक क्षेत्र को स्थायी पहचानकर्ता मानने से आते हैं। नाम, शीर्षक, पते, और URLs बदल सकते हैं या साझा किए जा सकते हैं, जबकि एक कथित अनूठा स्रोत कुंजी गायब या पुनर्चक्रित हो सकती है।
- पहचान को परिभाषित करने से पहले हटाना। एक पुनरावृत्ति वाले क्षेत्र पर विचार किए बिना एक डुप्लिकेट रिकॉर्ड के रूप में उपचारित किया जाता है।
- तुलना पाठ को ओवर-नॉर्मलाइज़ करना। अलग-अलग उत्पाद विभिन्नता या लोग समान टोकनों में सिमट जाते हैं।
- एक वैश्विक थ्रेसहोल्ड। विभिन्न स्रोतों और इकाई प्रकारों को समान जोखिम नीति प्राप्त होती है।
- कोई अनिश्चित स्थिति नहीं। प्रत्येक जोड़ी को कमजोर सबूत के बावजूद मिलान या गैर-मिलान में बाध्य किया जाता है।
- उद्गम खोना। अवशेष पंक्ति को उसके योगदान स्रोतों को ट्रेस नहीं किया जा सकता।
जब गणनाएँ अप्रत्याशित रूप से बदलती हैं, तो उम्मीदवार पीढ़ी, जोड़ी सबूत, थ्रेशोल्ड संस्करण, क्लस्टर गठन, और सर्वाइवरशिप को अलग से निरीक्षण करें। सबसे छोटे जिम्मेदार स्तर से शुरू करें, अपेक्षित और अवलोकित स्थिति की तुलना करें, और सुधारात्मक क्रिया को सबूत से जोड़े रखें। यह दृष्टिकोण क्षमता बढ़ाने या मान्यकरण में ढील देने के लिए अस्पष्ट निर्देशों से बचता है।
संग्रहित वेब रिकॉर्ड को डुप्लिकेट करना
संग्रहित वेब डेटा अक्सर दोहराता है क्योंकि पृष्ठ ओवरलैप होते हैं, URLs ट्रैकिंग पैरामीटर ले जाते हैं, सूचियाँ कई श्रेणियों में प्रकट होती हैं, और अनुसूचित कैप्चर समय के साथ एक ही इकाई का अवलोकन करते हैं।
सार्वजनिक-web इनपुट के लिए, अधिग्रहण रिकॉर्ड में अनुरोधित URL, अंतिम URL, संग्रहण समय, प्रतिक्रिया मोड, और डाउनस्ट्रीम प्रसंस्करण शुरू होने से पहले एक सामग्री जांच शामिल होनी चाहिए। Scrapeless Agent Browser प्रबंधित ब्राउज़र सत्र को संभालता है; एप्लिकेशन अभी भी स्रोत स्वीकृति, चयनकर्ताओं, कार्यभार सीमाएँ, संचयन, और क्षेत्रीय अर्थ का मालिक है।
केवल प्रलेखित URL भागों को कैनोनिकलाइज़ करें, कैप्चर समय को बनाए रखें, और एक दोहराए गए इकाई को एक दोहराए गए अवलोकन से अलग पहचानें। एक वर्तमान-राज्य तालिका प्रत्येक लिस्टिंग के लिए एक पंक्ति रख सकती है, जबकि एक अवलोकन तालिका प्रत्येक महत्वूपूर्ण तिथि वाली स्थिति को बनाए रखती है। जब उपयोग केस की आवश्यकता होती है, तो कच्चे सबूतों को क्यूरेटेड प्रतिनिधित्व से अलग रखें। कच्चा सबूत एक पार्सर या अनुबंध में बदलाव के बाद पुनः प्रसंस्करण का समर्थन करता है, जबकि क्यूरेटेड रिकॉर्ड स्थिर विश्लेषण और स्वचालन का समर्थन करते हैं।
संग्रहण परत साबित करती है कि कौन सा पृष्ठ पुनः प्राप्त किया गया था; पुनरावृत्ति परत पहचान को परिभाषित करती है; उपभोक्ता यह चुनता है कि क्या लिंक किए गए रिकॉर्ड एक वर्तमान दृश्य बनते हैं या अलग ऐतिहासिक सबूत बने रहते हैं। यह विभाजन लागत और विफलता को भी स्पष्ट बनाता है। संग्रह, रूपांतरण, सत्यापन, भंडारण, और वितरण को एकल कार्य स्थिति के भीतर छिपे होने के बजाय स्वतंत्र रूप से मापने की जा सकती है।
पुनरावृत्ति तैयारी चेकलिस्ट
डिज़ाइन समीक्षा के दौरान इन प्रश्नों का उपयोग करें। लिखित उत्तर असहमति को जल्दी उजागर करते हैं और समीक्षकों को कार्यान्वयन का परीक्षण करने के लिए एक स्थिर आधार देते हैं।
- एक पंक्ति किस वास्तविक दुनिया की चीज़ का प्रतिनिधित्व करती है?
- प्रत्येक स्रोत में कौन से पहचानकर्ता स्थिर हैं?
- कौन से फ़ील्ड बिना एक नया इकाई बनाए बिना बदल सकते हैं?
- एक झूठी मर्ज का मूल्य क्या है?
- कौन से जोड़ों की समीक्षा की आवश्यकता है?
- जोड़े के निर्णयों से समूह कैसे बनते हैं?
- क्या एक मर्ज को उल्टा किया जा सकता है?
- कौन से मैट्रिक्स लेबल किए गए सत्य से गणना की जाती हैं?
प्रक्रिया तैयार है जब समीक्षक एक मिलान को पुनः उत्पन्न कर सकते हैं, एक गैर-मिलान को समझा सकते हैं, और एक गलती से किए गए मर्ज के बाद रिकॉर्ड को पुनर्स्थापित कर सकते हैं। मात्रा, स्रोत व्यवहार, उपभोक्ता अपेक्षाएं, या सेवा सीमाएं बदलने पर उत्तरों की समीक्षा करें। एक डिज़ाइन जो एक अन्वेषणात्मक बैच में फिट होती है वह निरंतर उत्पादन पथ के लिए गलत हो सकती है।
निष्कर्ष: पुनरावृत्ति को एक पहचान अनुबंध की आवश्यकता है
पुनरावृत्ति दोहराए गए या विरोधाभासी रिकॉर्ड को एक स्पष्ट पहचान निर्णय में बदल देती है। सुरक्षित सिस्टम अनाज से शुरू होते हैं, जब संभव हो तो निश्चित सबूत का उपयोग करते हैं, अनिश्चित मामलों को अलग करते हैं, उत्पत्ति को संरक्षित करते हैं, और परिणामों का मूल्यांकन लेबल किए गए उदाहरणों के खिलाफ करते हैं। लक्ष्य सबसे छोटी पंक्ति की गिनती नहीं है; यह इकाइयों और अवलोकनों का सबसे सटीक प्रतिनिधित्व है।
व्यावहारिक अगला कदम एक वास्तविक कार्यभार के लिए सबसे छोटा परीक्षण करने योग्य अनुबंध लिखना, प्रत्येक सीमा पर सबूत कैप्चर करना, और केवल उस अनुबंध से मेल खाते व्यवहार के बाद ही विस्तार करना है।
क्या आप एक ट्रेसेबल पुनरावृत्ति पाइपलाइन बनाने के लिए तैयार हैं?
स्वीकृत सार्वजनिक पृष्ठों को जमा करें, उत्पत्ति को बनाए रखें, और एक स्पष्ट पहचान अनुबंध के तहत पुनरावृत्त रिकॉर्ड को हल करें।
आज साइन अप करें और प्राप्त करें $5 मुफ्त क्रेडिट — कोई क्रेडिट कार्ड आवश्यक नहीं.
अपने $5 क्रेडिट का दावा करें →अक्सर पूछे जाने वाले प्रश्न
पुनरावृत्ति और डेटा सफाई के बीच क्या अंतर है?
पुनरावृत्ति एक विशिष्ट डेटा गुणवत्ता कार्य है जो एक ही इकाई या घटना का प्रतिनिधित्व करने वाले रिकॉर्ड को हल करता है। डेटा सफाई व्यापक है और प्रकार, प्रारूप, गायब मान, अमान्य कोड, या असंगत इकाइयों को सही कर सकती है। एक सफाई चरण मिलान में सुधार कर सकता है, लेकिन इसे मर्ज का ऑडिट करने के लिए उपयोग किए जा रहे स्रोत के मानों को संरक्षित करना चाहिए।
क्या एक अद्वितीय प्रतिबंध पुनरावृत्ति को प्रतिस्थापित करता है?
नहीं। एक अद्वितीय प्रतिबंध उन मानों को रोकता है जो एक घोषित डेटाबेस अभिज्ञान का उल्लंघन करते हैं। यह ऐतिहासिक डुप्लिकेट, क्रॉस-सिस्टम पहचान, वर्तनी भिन्नताएँ, पुन: प्रयोग किए गए स्रोत पहचानकर्ता, या धुंधली मेलों को खोज नहीं सकता है। यह पहचान नियमों के परिभाषित होने के बाद रोकथाम के रूप में सबसे अच्छा काम करता है।
धुंधले मेलिंग की सटीकता कितनी होनी चाहिए?
सटीकता को लेबल किए गए जोड़ों और प्रत्येक त्रुटि की व्यावसायिक लागत के खिलाफ मूल्यांकित किया जाना चाहिए। उच्च लागत वाले झूठे मर्ज आमतौर पर एक सतर्क स्वचालित थ्रेशोल्ड और एक समीक्षा बैंड को सही ठहराते हैं। एक समग्र सटीकता संख्या दुर्लभ स्रोतों या इकाई प्रकारों के लिए खराब परिणामों को छिपा सकती है।
क्या डुप्लिकेट रिकॉर्ड को हटाना चाहिए?
स्वतः नहीं। एक प्रणाली रिकॉर्ड को लिंक कर सकती है, एक वर्तमान प्रतिनिधित्व बनाए रख सकती है, सभी स्रोत पंक्तियों को संरक्षित कर सकती है, या चयनित फ़ील्ड को मर्ज कर सकती है। लाइनिज और मर्ज इतिहास को बनाए रखना अक्सर ऑडिट, सुधार, और स्रोत-संबंधित विशेषताओं के लिए आवश्यक होता है।
पुनरावृत्ति वेब डेटा पर कैसे लागू होती है?
वेब पुनरावृत्ति कैनोनिकल URL या लिस्टिंग को एकीकृत कर सकती है जबकि प्रत्येक कैप्चर को ऐतिहासिक साक्ष्य के रूप में बनाए रखती है। कुंजी यह है कि इकाई पहचान को अवलोकन पहचान से अलग किया जाए ताकि दोहराई गई संग्रहण महत्वपूर्ण मूल्य, उपलब्धता, या सामग्री परिवर्तनों को मिटा न सके।