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

आईआरआई कार्यक्षेत्र में वृद्धिशील डेटा प्रतिकृति

नेक्स्टफॉर्म (डीबी संस्करण) या वोरासिटी के लिए आईआरआई वर्कबेंच जीयूआई में डेटा प्रतिकृति पर हमारा पहला लेख दिखाता है कि डेटा को कॉपी और ट्रांसफॉर्म कैसे करें क्योंकि यह ओरेकल से दो लक्ष्यों में स्थानांतरित हो गया है। यह आलेख दिखाता है कि अलग-अलग डेटाबेस में एक उत्पादन और बैकअप तालिका को क्रमिक रूप से कैसे सिंक्रनाइज़ किया जाए।

इस मामले में, उत्पादन डेटाबेस Oracle है, बैकअप डेटाबेस MySQL है, और तालिका को दोनों में SG_TRANSACTIONS नाम दिया गया है। ऐसी लेन-देन पंक्तियाँ हैं जिनमें खाता संख्या, लेन-देन का प्रकार, लेन-देन की तारीख, और लेन-देन की राशि ACCT_NUM, TRANSTYPE, TRANS_DATE, और TRANS_AMOUNT के कॉलम नामों के साथ होती है।

ध्यान दें कि आप IRI कार्यक्षेत्र में SQL फ़ाइलों में कथनों को परिभाषित और निष्पादित करके तालिकाएँ भी बना सकते हैं।

विज़ार्ड चलाएँ

IRI वर्कबेंच में विजार्ड हैं जिनका उपयोग माइग्रेशन जॉब स्क्रिप्ट बनाने के लिए किया जा सकता है जो पंक्तियों को एक टेबल से दूसरी टेबल पर कॉपी करेगा। इस मामले में, हम ORACLE तालिका SG_TRANSACTIONS से ​​डेटा को MySQL तालिका SG_TRANSACTIONS में दोहराएंगे।

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

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

विज़ार्ड की पहली स्क्रीन पर जिसे नौकरी विशिष्टता फ़ाइल कहा जाता है , सत्यापित करें कि फ़ोल्डर फ़ील्ड में प्रतिकृति (प्रोजेक्ट नाम) मान के रूप में है। फ़ाइल नाम . में फ़ील्ड, उस जॉब स्क्रिप्ट के नाम पर टाइप करें जिसे हम बना रहे हैं; मैंने इसे SG_Transaction_Transfer. कहा है स्क्रिप्ट बनाएं चुनें रेडियो बटन, फिर अगला . चुनें एकल स्रोत माइग्रेशन . पर जाने के लिए खिड़की।

स्रोत जानकारी . के अंतर्गत , ब्राउज़ करें . चुनें स्रोत . के बगल में स्थित बटन खेत। अब ODBC . चुनें डेटा स्रोत . में रेडियो बटन विंडो, और ब्राउज़ करें . क्लिक करें बटन।

ODBC तालिका चयन . में विंडो में, DSN . चुनें ड्रॉपडाउन सूची से; फिर तालिका का नाम, . चुनें और ठीक क्लिक करें . ODBC का उपयोग हमारे स्रोत और लक्ष्य डेटाबेस तालिकाओं से कनेक्ट करने के लिए किया जाता है जब हमारी जॉब स्क्रिप्ट का उपयोग करके डेटा स्थानांतरित किया जाता है। ठीकक्लिक करें सिंगल सोर्स माइग्रेशन पर लौटने के लिए फिर से खिड़की।


अपना स्रोत मेटाडेटा ब्राउज़ करें या खोजें

सभी IRI कार्यक्रमों को आपके डेटा स्रोतों और लक्ष्यों के लिए एक मानक डेटा परिभाषा फ़ाइल (DDF) प्रारूप में मेटाडेटा लेआउट की आवश्यकता होती है। ये लेआउट आम तौर पर एक बार बनाए जाते हैं, केंद्रीय रूप से संग्रहीत होते हैं, और आपके मैपिंग और मॉडल के संदर्भ के रूप में उपयोग किए जाते हैं।

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

यदि आपको अभी मेटाडेटा फ़ाइल बनाने की आवश्यकता है, तो डिस्कवर . चुनें बटन। यह आपको सेटअप . पर ले जाता है विकल्प खिड़की। सत्यापित करें कि फ़ोल्डर /आपके प्रोजेक्ट का नाम . है /मेटाडेटा. फ़ाइल नाम . में फ़ील्ड, मेटाडेटा फ़ाइल के लिए नाम टाइप करें और अगला . पर क्लिक करें . डेटा स्रोत पहचान . में विंडो, सत्यापित करें कि फ़ील्ड सही तरीके से भरी गई हैं और अगला . क्लिक करें फ़ील्ड डेटा व्यूअर और संपादक पर जाने के लिए खिड़की।

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


अब आप एकल स्रोत माइग्रेशन में वापस आ गए हैं खिड़की।

लक्ष्य निर्धारित करें

लक्षित जानकारी . के अंतर्गत , ब्राउज़ करें . चुनें लक्ष्य . के लिए फ़ील्ड के बगल में स्थित बटन . अब, डेटा लक्ष्य . में विंडो में, ODBC चुनें रेडियो बटन पर क्लिक करें और ब्राउज़ करें . क्लिक करें ODBC . के बगल में स्थित बटन खेत। फिर आउटपुट चुनें DSN और टेबल का नाम (ट्विस्टर MYSQL और SG_Transactions) ODBC तालिका चयन . में खिड़की। स्रोत से मेटाडेटा कॉपी करें . के लिए बॉक्स का चयन करना सुनिश्चित करें . क्लिक करें ठीक, और ठीक क्लिक करें फिर से।

सभी आवश्यक जानकारी अब सिंगल सोर्स माइग्रेशन . में है खिड़की। समाप्तक्लिक करें ।


नेक्स्टफॉर्म नियंत्रण भाषा स्क्रिप्ट SG_Transaction_Transfer.ncl बनाया गया है और आईआरआई वर्कबेंच कलर-कोडेड, सिंटैक्स जागरूक टेक्स्ट एडिटर में देखा जा सकता है।

नए रिकॉर्ड दोहराएं

यह स्क्रिप्ट SG_TRANSACTIONS . में मौजूद सभी पंक्तियों की प्रतिलिपि बनाएगी Oracle में तालिका MySQL में समान नामित तालिका में। लेकिन, पहले निष्पादन के बाद, हम केवल नई पंक्तियों को बैकअप तालिका में कॉपी करना चाहते हैं। ऐसा करने के लिए, हमें जॉब स्क्रिप्ट के इनपुट सेक्शन में /QUERY स्टेटमेंट जोड़ने की जरूरत है ताकि जब भी आप जॉब चलाएं (तदर्थ या शेड्यूल्ड) तो केवल नवीनतम पंक्तियों को ही प्रोसेस किया जाएगा।

IRI कार्यक्षेत्र संपादक से स्क्रिप्ट को संशोधित करने के लिए, स्क्रिप्ट के मुख्य भाग में राइट-क्लिक करें। IRI चुनें , फिर स्रोत संपादित करें . डेटा स्रोत . में संवाद विंडो में, स्रोत विकल्प संपादित करें चुनें ।

स्रोत विकल्प . के निचले भाग में विंडो एक है क्वेरी खेत। यह वह जगह है जहां हम SQL क्वेरी स्टेटमेंट जोड़ते हैं जो केवल Oracle तालिका से नवीनतम पंक्तियों का चयन करेगा। हम मान लेंगे कि यह एक महीने के अंत की प्रक्रिया है। नीचे दिया गया QUERY कथन एक महीने के अंतराल के लिए पंक्तियों को फ़िल्टर करता है, लेकिन हम कोई भी अंतराल चुन सकते हैं। स्क्रिप्ट में विशिष्ट तिथियों का उपयोग करने के बजाय, हम अंतराल को निर्दिष्ट करने के लिए पर्यावरण चर का भी उपयोग कर सकते हैं।

select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > 
'2016-11-30' AND  (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"

अब ठीक . क्लिक करें , फिर समाप्त करें नए /QUERY स्टेटमेंट के साथ हमारी मूल विज़ार्ड-निर्मित जॉब स्क्रिप्ट को अपडेट और सेव करने के लिए:

जब स्क्रिप्ट पहली बार चलती है, तो /QUERY स्टेटमेंट पर टिप्पणी की जानी चाहिए क्योंकि हम चाहते हैं कि सभी रिकॉर्ड कॉपी किए जाएं। उसके बाद, हम एक दिनांक अंतराल से पंक्तियों को दोहराने के लिए /QUERY कथन के साथ चलाना चाहते हैं जिसे अभी तक बैकअप तालिका में कॉपी नहीं किया गया है।

यह कार्य GUI या कमांड लाइन से चलाया जा सकता है जहाँ एक NextForm DB संस्करण, Voracity, या CoSort (sortcl) निष्पादन योग्य लाइसेंस प्राप्त है।

यहाँ उत्पादन तालिका में पंक्तियों का एक नमूना है:

और यहाँ दिसंबर महीने के अंत में बैकअप चलाने से पहले बैकअप तालिका में पंक्तियों का एक नमूना है। इसलिए, इस तालिका की पंक्तियाँ वर्तमान में केवल नवंबर के अंत तक चलती हैं।

हमारे प्रतिकृति कार्य को /QUERY कथन के साथ चलाने के बाद, बैकअप तालिका में केवल दिसंबर रिकॉर्ड जोड़े जाते हैं। ध्यान दें कि उत्पादन तालिका में एक जनवरी का रिकॉर्ड है, लेकिन इस रिकॉर्ड को बैकअप तालिका में कॉपी नहीं किया गया है क्योंकि उस पंक्ति के लिए दिनांक मान हमारी निर्दिष्ट सीमा से बाहर है।

प्रत्येक लक्ष्य में कॉलम-स्तरीय मास्किंग फ़ंक्शन जोड़ना भी संभव है, जैसा कि नीचे दिया गया कार्य दिखाता है:

Oracle और MongoDB के बीच प्रतिकृति का यह उदाहरण देखें। डेटा को एकबारगी या पुनरावर्ती आधार पर दोहराने में सहायता के लिए, [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. पीएल/एसक्यूएल में अपवादों को संभालने का तरीका जानें

  3. Clustered Columnstore Index से सीरियलाइज़िंग डिलीट्स

  4. डोमिनोज़ का रहस्य, या एक डोमिनोज़ गेम डेटा मॉडल

  5. ORA-12505, TNS को कैसे ठीक करें:श्रोता को वर्तमान में कनेक्ट डिस्क्रिप्टर में दिए गए SID के बारे में पता नहीं है