Database
 sql >> डेटाबेस >  >> RDS >> Database

वृद्धिशील डेटा मास्किंग और मैपिंग:परिवर्तनों का पता लगाना और अद्यतन करना…

वृद्धिशील डेटा प्रतिकृति, मास्किंग, एकीकरण (ETL), और अन्य डेटा ताज़ा संचालन डेटाबेस परिवेशों को बार-बार अद्यतन करने में आम हैं। इन कार्यों के लिए तालिकाओं में परिवर्धन और अद्यतनों का पता लगाने की आवश्यकता होती है। IRI कार्यक्षेत्र (WB) में डिज़ाइन और चलाने वाले IRI वोरासिटी वर्कफ़्लोज़ में इस तरह के गतिशील संचालन को स्वचालित करना आसान है।

इस आलेख में एक वर्कफ़्लो उदाहरण है जिसे Voracity, FieldShield, CoSort, या NextForm DBMS संस्करण उपयोगकर्ता नियमित रूप से स्रोत तालिका (इस मामले में Oracle) में परिवर्तनों की जांच करने के लिए लागू कर सकते हैं ताकि यह तय किया जा सके कि डेटा को एक नए लक्ष्य (MySQL) में कब स्थानांतरित किया जाए। यह यह भी दिखाता है कि इस प्रक्रिया के हिस्से के रूप में डेटा को सशर्त रूप से कैसे छुपाया जा सकता है। ध्यान दें कि आईआरआई डेल्टा कॉलम मानों की आवश्यकता के बिना रीयल-टाइम में डेटा बढ़ाने के लिए लॉग-आधारित दृष्टिकोण पर भी काम कर रहा है।

कार्य-अनुसूचित बैच फ़ाइल या शेल स्क्रिप्ट का उपयोग करके विभिन्न डेटाबेस या फ़ाइलों में परिवर्तन लोड किए जा सकते हैं। यह स्रोत तालिका में टाइमस्टैम्प और विशिष्ट फ़ील्ड का उपयोग करके किया जा सकता है। त्रुटि जाँच भी शामिल है और उस पर कार्रवाई भी की जा सकती है।

यह उदाहरण विंडोज मशीन पर बनाया और चलाया गया था। इसे लिनक्स या यूनिक्स प्लेटफॉर्म पर काम करने के लिए आसानी से संशोधित किया जा सकता है।

WB में वोरैसिटी फ्लो डायग्राम का उपयोग करके बैच फ़ाइल बनाना आसान है। इस उदाहरण में, स्रोत तालिका में CREATED_DATE . नामक कॉलम हैं और UPDATED_DATE जो इस काम में महत्वपूर्ण हैं।

नीचे दी गई छवि उन चरणों को दिखाती है जो बैच फ़ाइल में शामिल हैं। संक्षेप में:

  • कार्य एक विशिष्ट निर्देशिका में चलाया जाता है
  • पिछले जॉब रन के टाइमस्टैम्प का उपयोग करके एक पर्यावरण चर सेट किया गया है
  • वर्तमान टाइमस्टैम्प रिकॉर्ड किया गया है
  • वर्तमान परिवर्तन कैप्चर किए गए हैं
  • त्रुटि स्तर की जाँच की जाती है और सफल होने या न होने पर कार्रवाई की जाती है
  • वर्तमान टाइमस्टैम्प पिछले रन टाइमस्टैम्प को अधिलेखित कर देता है
  • लक्ष्य में "edu" से समाप्त होने वाले ईमेल को संशोधित करने के नियम का उपयोग किया जाता है
  • एसएसएन फ़ील्ड को आंशिक रूप से संशोधित करने के लिए एक नियम का उपयोग लक्ष्य में किया जाता है
  • बदला हुआ डेटा MySQL में लोड किया जाता है
  • त्रुटि स्तर की जाँच की जाती है, अस्थायी टाइमस्टैम्प फ़ाइल का नाम बदल दिया जाता है

वर्कफ़्लो में प्रत्येक कार्य ब्लॉक को नीचे समझाया गया है। दो माउव ब्लॉक ट्रांसफॉर्मिंग मैपिंग ब्लॉक हैं और CoSort SortCL जॉब स्क्रिप्ट का प्रतिनिधित्व करते हैं। प्रत्येक ब्लॉक द्वारा दर्शाए गए मानचित्रण आरेख और कार्य स्क्रिप्ट स्पष्टता के लिए नीचे दिखाए गए हैं। पैलेट से वोरैसिटी वर्कफ्लो बनाने के तरीके के लिए, यह लेख देखें।

निर्देशिका बदलें

यह ब्लॉक वर्तमान कार्यशील निर्देशिका को निर्दिष्ट निर्देशिका में बदल देता है।

अंतिम समय निर्धारित करें

यह कमांड लाइन ब्लॉक LASTTIME . नामक एक पर्यावरण चर सेट करता है . वेरिएबल पर सेट किया गया मान फ़ाइल की सामग्री है LastTime.txt . इस फ़ाइल में टाइमस्टैम्प वह टाइमस्टैम्प है जिसे इस कार्य के अंतिम भाग के दौरान रिकॉर्ड किया गया था। यदि यह पहली बार चलाया जाता है, तो इस फ़ाइल को इस कार्य के चलने से पहले दिनांकित एक मनमाना टाइमस्टैम्प के साथ मैन्युअल रूप से बनाना होगा।

इस फ़ाइल में एक पंक्ति है:"2008-09-10 09:39:23.5"

टाइमस्टैम्प.एससीएल

यह कार्य वर्तमान समय के लिए स्रोत डेटाबेस को क्वेरी करने के लिए SortCL प्रोग्राम का उपयोग करता है। वह टाइमस्टैम्प LastTimeTemp.txt . नामक फ़ाइल में सहेजा जाता है . इसे एक अस्थायी फ़ाइल में संग्रहीत करने का कारण यह है कि त्रुटि जाँच होने तक वर्तमान और अंतिम समय दोनों टिकटों को संरक्षित किया जा सकता है।

यह महत्वपूर्ण है कि टाइमस्टैम्प डेटाबेस से आता है, न कि स्थानीय मशीन से। यह उन समस्याओं से बचा जाता है जहां डेटाबेस और निष्पादन वातावरण सिंक्रनाइज़ नहीं होते हैं।

इस कार्य के लिए मानचित्रण आरेख और क्रमबद्ध स्क्रिप्ट इस प्रकार हैं:

Changes.scl

यह कार्य मुख्य अर्क, परिवर्तन, भार करता है। Oracle में इनपुट स्रोत तालिका है और आउटपुट MySQL में समान रूप से स्वरूपित तालिका है:

इनपुट सेक्शन में, एक CREATED_DATE . वाले सभी रिकॉर्ड के लिए स्रोत तालिका में एक क्वेरी सबमिट की जाती है या UPDATED_DATE पर्यावरण चर से अधिक LASTTIME . क्वेरी "स्कॉट से चुनें * जहां से बनाया गया है> TO_TIMESTAMP(\'$LASTTIME\', \'YYYY-MM-DD HH24:MI:SS.FF1\') या (अपडेट किया गया> TO_TIMESTAMP(\'$LASTTIME\ ', \'YYYY-MM-DD HH24:MI:SS.FF1\'))"।

इसके अतिरिक्त, EMAIL . की जांच के लिए एक शर्त जोड़ी जाती है "edu" में समाप्त होने वाले डेटा के लिए कॉलम। इसका उपयोग आउटपुट में सशर्त डेटा मास्किंग फ़ंक्शन में किया जाएगा। आउटपुट में, एक अगर-तब-अन्य स्टेटमेंट को EMAIL . में जोड़ा जाता है कॉलम। यह डेटा का परीक्षण करने के लिए पहले से बनाई गई स्थिति का उपयोग करता है। यदि डेटा "edu" में समाप्त होता है, तो ईमेल पता संशोधित किया जाता है। यदि नहीं, तो ईमेल पते को इनपुट से कॉपी किया जाता है।

SSN . में एक दूसरे रिडक्शन फंक्शन का उपयोग किया जाता है कॉलम। यह पहले तीन वर्णों को संशोधित करता है, डैश को छोड़ता है, अगले दो वर्णों को फिर से बनाता है, डैश को छोड़ देता है और अंतिम चार वर्णों को छोड़ देता है। उदाहरण के लिए ***-**-6789.

ऊपर वर्णित क्रमबद्ध SortCL जॉब स्क्रिप्ट नीचे दी गई है ताकि आप वृद्धिशील डेल्टा में शामिल क्वेरी और सशर्त सिंटैक्स की जांच कर सकें:

त्रुटि सह-सॉर्ट

डिसीजन ब्लॉक वेरिएबल ERRORLEVEL . की जांच करता है यह सुनिश्चित करने के लिए कि उपरोक्त सॉर्टसीएल नौकरी चलाने के बाद यह 0 (सफलता के लिए) लौटा। यदि ऐसा नहीं होता, तो कार्य END . तक जारी रहता है ब्लॉक जहां नौकरी समाप्त हो गई है। यदि यह सही हो जाता है, तो कार्य अगले ब्लॉक में जारी रहता है।

LastTimeTemp का नाम बदलें

यह कमांड ब्लॉक LastTimeTemp.txt . की सामग्री को कॉपी करता है करने के लिए LastTime.txt . यह फ़ाइल में पहले से कैप्चर किए गए वर्तमान टाइमस्टैम्प को अगले कार्य चलाने के लिए उपयोग करने के लिए रिकॉर्ड करता है।

बैच फ़ाइल

फ्लो डायग्राम (ऊपर दिखाया गया) निर्यात होने पर बैच फ़ाइल और ट्रांसफ़ॉर्मेशन स्क्रिप्ट बनाई जाती हैं। बैच फ़ाइल की एक प्रति नीचे है। प्रत्येक ब्लॉक बैच फ़ाइल में निष्पादन योग्य पंक्तियाँ जोड़ता है।

कार्य शेड्यूलर

विंडोज टास्क शेड्यूलर का उपयोग करके, इस बैच फ़ाइल को स्रोत डेटाबेस में परिवर्तनों को कैप्चर करने के लिए बार-बार निष्पादित किया जा सकता है।

निष्कर्ष

थोड़ी सी योजना, और कमांड ब्लॉक के उपयोग के साथ, डेटाबेस तालिका में परिवर्तनों को बैच फ़ाइल का उपयोग करके स्वचालित रूप से पता लगाया जा सकता है, और फिर चयनित अंतराल पर चलने के लिए निर्धारित किया जा सकता है ताकि आप एक पर परिवर्तित डेटा को स्थानांतरित, मानचित्र, मुखौटा और अन्यथा हेरफेर कर सकें। वृद्धिशील आधार।

अधिक जानकारी या अपने उपयोग के मामले में सहायता के लिए [email protected] या अपने आईआरआई प्रतिनिधि से संपर्क करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल को छोड़कर

  2. टेबल एक्सप्रेशन के फंडामेंटल, भाग 4 - व्युत्पन्न टेबल, अनुकूलन विचार, जारी रखा

  3. शुरुआती के लिए SQL एक्सप्रेस के साथ पायथन डेटाबेस प्रोग्रामिंग

  4. वर्किंग फोल्डर सोर्स कंट्रोल का उपयोग करके डेटाबेस परिवर्तन को ट्रैक करना

  5. वर्ष 2038 की समस्या क्या है?