देश डेटा की ताज़गी आम तौर पर एक ही संख्या के रूप में बताई जाती है: डेटासेट आख़िरी बार कब अद्यतन हुआ। वह संख्या लगभग हमेशा भ्रामक होती है, क्योंकि किसी डेटासेट को एक ही गति में ताज़ा नहीं किया जाता।
सामान्य देश तालिका कई स्रोतों से जुड़ती है, जो अलग-अलग समय पर प्राप्त होते हैं और अलग-अलग दायरे रखते हैं। कोई प्रविष्टि पिछले महीने ठीक की गई हो सकती है जबकि उसके बगल वाली वर्षों से अछूती हो, और फ़ाइल के शीर्ष पर लिखी एक तारीख़ यह अंतर व्यक्त नहीं कर सकती।
देश डेटा पुराना क्यों हो जाता है?
तीन शक्तियाँ, और वे अलग-अलग घड़ियों पर चलती हैं।
पहली है दुनिया का बदलना। नाम बदलते हैं, मुद्राएँ बदलती हैं, प्रशासनिक प्रभाग फिर से बनते हैं, और कोड जोड़े, हटाए या आरक्षित किए जाते हैं। इनमें से कोई घटना ऐसी व्यवस्था को खुद नहीं बताती जो उसकी निगरानी नहीं कर रही।
दूसरी है आपके नीचे स्रोत का बदलना। जो स्रोत सही बना रहता है वह भी अपनी प्रस्तुति बदल सकता है, कोई फ़ील्ड हटा सकता है, या ऐसी इकाइयाँ शामिल करने लग सकता है जिन्हें पहले छोड़ देता था; इसलिए कोई ताज़ा करना ऐसा बदलाव भी ला सकता है जिसकी किसी ने माँग नहीं की थी।
तीसरी है दायरे का खिसकना। जो नियम उस समय के डेटासेट की इकाइयों के लिए लिखा गया था, वह चुपचाप गलत हो जाता है जब वह समूह बढ़ता है, और त्रुटि विफलता के बजाय अपवाद के रूप में दिखती है।
तीनों में से केवल दूसरी ताज़ा करने के लॉग में दिखती है। बाकी दो ही कारण हैं कि कोई डेटासेट समय पर ताज़ा किया जाकर भी गलत रह सकता है।
स्रोत, प्राप्ति तारीख़ और दायरा अलग-अलग दर्ज करें
तीन गुण किसी मान की उत्पत्ति समझाते हैं, और उन्हें एक ही समय-चिह्न में मिला देना उस पर सोचने की क्षमता नष्ट कर देता है।
| गुण | यह जो प्रश्न हल करता है | यह अनुमान क्यों नहीं लगाया जा सकता |
|---|---|---|
| स्रोत | यह मान कहाँ से आया | दो स्रोत असहमत हो सकते हैं, और वह असहमति स्वयं जानकारी है |
| प्राप्ति तारीख़ | यह मान कब लाया गया | लाना उस तारीख़ से अलग है जब स्रोत स्वयं बदला |
| दायरा | यह मान किन इकाइयों और फ़ील्डों को ढकता है | कोई स्रोत नामों के लिए प्रामाणिक हो सकता है और प्रभागों पर चुप |
दायरे का गुण सबसे अधिक छूटता है और दोबारा बनाने में सबसे महँगा पड़ता है। उसके बिना खाली फ़ील्ड दोअर्थी है: स्रोत ने कहा कि कुछ नहीं था, या स्रोत से इस फ़ील्ड के बारे में पूछा ही नहीं गया।
तीनों को साथ संचित करना टकरावों को पढ़ने योग्य भी बनाता है। जब दो स्रोत किसी नाम पर असहमत हों, तो पाठक देख सकता है कि कौन सा मान कहाँ से और कब आया, और समाधान सिक्का उछालने के बजाय प्रमाण सहित निर्णय बन जाता है।
तीन अद्यतन रणनीतियाँ और हर एक की क़ीमत
देश डेटा ताज़ा रखने के मोटे तौर पर तीन तरीक़े हैं, और ये श्रम को आश्चर्य के साथ अनुमानित ढंग से बदलते हैं।
तय समय पर खींचना सबसे सरल है: समय-समय पर सब कुछ ताज़ा कर दें, चाहे कुछ बदला हो या नहीं। इस पर सोचना आसान है और इसे भूलना भी आसान, क्योंकि जो निर्धारित कार्य चुपचाप विफल होता है वह तब तक कोई दिखने वाला लक्षण नहीं देता जब तक डेटा गलत न हो जाए।
संकेत पर खींचना अधिक कुशल है: जो निकाय कोड और नाम प्रकाशित करते हैं उनसे बदलाव की सूचनाएँ देखें, और तभी ताज़ा करें जब वास्तव में कुछ घोषित हो। यह तेज़ी से प्रतिक्रिया देता है और इस पर निर्भर है कि कोई उन सूचनाओं को पढ़े, जिसका अर्थ है कि यह ठीक उन अवधियों में विफल होता है जब कोई देख ही नहीं रहा।
माँग पर ताज़ा करना सबसे कम चमकदार और छोटे डेटासेट के लिए अक्सर सबसे भरोसेमंद है: जब किसी प्रविष्टि के बारे में प्रश्न उठे तब उसे अद्यतन करें, और दर्ज करें कि किसने पूछा और क्यों। यह डेटा को उसकी अपनी कमियों के बारे में ईमानदार रखता है, इस क़ीमत पर कि जिन प्रविष्टियों पर कभी सवाल नहीं उठा वे छूट जाती हैं।
अधिकतर वास्तविक सिस्टम तीनों को मिलाकर चलते हैं: आधार के रूप में एक धीमा निर्धारित चक्र, तेज़ी से बदलने वाले हिस्सों के लिए संकेत, और अलग-अलग शिकायतों के लिए लक्षित सुधार। मायने यह रखता है कि यह मेल जानबूझकर हो और परिणाम प्रति रिलीज़ के बजाय प्रति प्रविष्टि दर्ज हो।
ऐतिहासिक स्नैपशॉट को क्या सुरक्षित रखना चाहिए?
स्नैपशॉट तभी उपयोगी है जब वह किसी बीते क्षण के बारे में प्रश्न का उत्तर दे सके, इसलिए उसे मानों से अधिक कुछ सुरक्षित रखना पड़ता है।
मानों को जैसे वे थे वैसे सुरक्षित रखें, वह तारीख़ जिसका वे वर्णन करते थे, और वह स्रोत-अवस्था जिसने उन्हें बनाया। जो स्नैपशॉट केवल मान रखता है वह यह नहीं बता सकता कि दो रिलीज़ों के बीच किसी देश का नाम क्यों बदला, और जो केवल तारीख़ रखता है वह कुछ भी दोबारा नहीं बना सकता।
एक सीमा जानबूझकर तय करने लायक़ है। हर फ़ील्ड हमेशा के लिए रखना महँगा है और उसे कम ही देखा जाता है; बदले हुए मानों को उनके स्रोत के साथ रखना आम तौर पर उन प्रश्नों के लिए काफ़ी है जो वास्तव में पूछे जाते हैं — किसी अवधि में कौन सा नाम प्रचलित था, और कब कोई कोड इस्तेमाल होना बंद हुआ।
स्नैपशॉट की सबसे कीमती परीक्षा वह है जो किसी बीती तारीख़ पर रिकॉर्ड दोबारा बनाकर उससे तुलना करती है जो सिस्टम ने उस समय निकाला था। यदि ये दोनों न मिलें, तो स्नैपशॉट रिकॉर्ड नहीं, डायरी है।
डेवलपरों के लिए: उत्पत्ति मान पर रखें, रिलीज़ पर नहीं
स्रोत, प्राप्ति तारीख़ और दायरा हर मान के पास रखें, या उन मानों के हर उस समूह के पास जो उन्हें साझा करते हैं। फिर विश्वसनीयता का हर प्रश्न स्मरण का अभ्यास नहीं, एक क्वेरी बन जाता है।
जब किसी मान का कोई स्रोत दर्ज न हो, तो उसे मान लेने लायक़ डिफ़ॉल्ट नहीं, दिखाने लायक़ अवस्था मानें। देश डेटा कवरेज जाँच सूची की मार्गदर्शिका उन तीन अवस्थाओं को समझाती है जिनमें कोई फ़ील्ड हो सकती है और यह भी कि अज्ञात को दिखाई क्यों देते रहना चाहिए; ताज़गी उसी तालिका पर लगाया गया चौथा आयाम भर है।
कोडों के लिए, प्रकाशित बदलाव सूचनाएँ ही प्रामाणिक संकेत हैं, और देश तथा प्रभाग कोड मार्गदर्शिका बताती है कि कोड व्यवस्थाएँ एक-दूसरे से कैसे जुड़ती हैं। देश और क्षेत्र निर्देशिका को उन पाठकों के लिए तटस्थ जगह बनाए रखें जो रखरखाव के बारे में पढ़ने के बजाय यह देखना चाहते हैं कि नाम और कोड साथ कैसे प्रस्तुत होते हैं। जाँच सूची की अवस्थाएँ और अद्यतन की रणनीतियाँ यहाँ एक साथ पढ़ी जा सकती हैं: देश डेटा कवरेज।
ऊपर उदाहरण के तौर पर दिए स्रोत नाम, प्राप्ति तारीख़ें और संस्करण लेबल केवल उदाहरणात्मक संकेतन हैं। वे किसी विशेष डेटासेट की सामग्री, समय-सारणी या कवरेज के संदर्भ नहीं हैं, और किसी संस्था की किसी वास्तविक अद्यतन प्रक्रिया का वर्णन नहीं करते।
आगे के कदम
एक देश प्रविष्टि चुनें और उसका स्रोत, प्राप्ति तारीख़ और दायरा स्मरण से लिखने की कोशिश करें। जहाँ आप न लिख सकें, वहाँ वह जानकारी संचित ही नहीं है, और उस प्रविष्टि पर अगली असहमति मत से तय होगी। देशों के आर-पार परीक्षण डेटा फैलाने की मार्गदर्शिका दिखाती है कि असमान उत्पत्ति वाली प्रविष्टियों का समूह भी एक सुसंगत परीक्षण जनसंख्या बनाने में कैसे काम आ सकता है। वह यहाँ है: देशों के आर-पार परीक्षण डेटा फैलाना।