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

SQL सर्वर डेटाबेस प्रतिकृति

डेटाबेस प्रतिकृति प्राथमिक सर्वर से द्वितीयक सर्वर में डेटा वितरित करने की तकनीक है। प्रतिकृति मास्टर-दास अवधारणा पर काम करती है जहां मास्टर डेटाबेस एक या एकाधिक दास सर्वरों को डेटा वितरित करता है। प्रतिकृति को एक ही सर्वर पर एकाधिक SQL सर्वर इंस्टेंस के बीच सेट किया जा सकता है, या इसे एक ही या भौगोलिक रूप से अलग किए गए डेटा केंद्रों के भीतर कई डेटाबेस सर्वरों के बीच सेट किया जा सकता है।
SQL सर्वर प्रतिकृति का उपयोग करने के दो मुख्य लाभ हैं:

  1. प्रतिकृति का उपयोग करके, हम लगभग रीयल-टाइम डेटा प्राप्त कर सकते हैं जिसका उपयोग रिपोर्टिंग उद्देश्य के लिए किया जा सकता है। उदाहरण के लिए, जब आप एक सर्वर पर लेखन गहन OLTP लोड और दूसरे सर्वर पर पढ़ने-गहन लोड को अलग करना चाहते हैं, तो आप दोनों सर्वरों पर डेटा को सिंक्रनाइज़ रखने के लिए प्रतिकृति सेट कर सकते हैं।
  2. दूसरा लाभ यह है कि आप प्रतिकृति को विशिष्ट समय पर चलाने के लिए शेड्यूल कर सकते हैं। उदाहरण के लिए, यदि आप चाहते हैं कि रिपोर्ट सर्वर में पूरे दिन का डेटा हो तो आप उसके अनुसार प्रतिकृति स्नैपशॉट शेड्यूल कर सकते हैं। वर्तमान डेटा से निपटने के लिए हमें अतिरिक्त तर्क लिखने की आवश्यकता नहीं है।

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

प्रतिकृति के घटक

SQL सर्वर प्रतिकृति के सात मुख्य घटक हैं। निम्नलिखित सूची है:

  1. प्रकाशक.
  2. वितरक।
  3. सदस्य।
  4. लेख।
  5. प्रकाशन।
  6. पुश सब्सक्रिप्शन।
  7. सदस्यता खींचो।

निम्नलिखित विवरण हैं:

लेख

एक आलेख एक डेटाबेस ऑब्जेक्ट है, जैसे SQL तालिका, या संग्रहीत कार्यविधि। जैसा कि मैंने ऊपर उल्लेख किया है, प्रतिकृति का उपयोग करके, हम डेटा फ़िल्टर कर सकते हैं, या हम चयनित तालिका कॉलम को दोहरा सकते हैं, इसलिए तालिका कॉलम या पंक्तियों को लेख माना जाता है।

प्रकाशन

लेखों को तब तक दोहराया नहीं जा सकता जब तक वे प्रकाशन का हिस्सा नहीं बन जाते। प्रकाशन लेख/डेटाबेस वस्तुओं का समूह है। यह उस डेटासेट का भी प्रतिनिधित्व करता है जिसे SQL सर्वर द्वारा दोहराया जाएगा।

प्रकाशक

प्रकाशक में एक मास्टर डेटाबेस होता है जिसमें वह डेटा होता है जिसे प्रकाशित करने की आवश्यकता होती है। यह निर्धारित करता है कि सभी ग्राहकों में कौन सा डेटा वितरित किया जाना चाहिए।

वितरक

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

सदस्य

ग्राहक स्रोत या गंतव्य का अंत है जहां डेटा या प्रतिकृति प्रकाशन प्रसारित किया जाएगा। प्रतिकृति में, एक प्रकाशक होता है, इसके कई ग्राहक हो सकते हैं।

पुश सब्सक्रिप्शन

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

सदस्यता लें

एक पुल सदस्यता में, सभी ग्राहक अपने प्रकाशक से नए डेटा या अद्यतन डेटा का अनुरोध करते हैं। पुल सब्सक्रिप्शन में, हम नियंत्रित कर सकते हैं कि ग्राहकों को कौन से डेटा या डेटा परिवर्तन की आवश्यकता है। यह तब उपयोगी होता है जब हमें बदले हुए डेटा की तुरंत आवश्यकता नहीं होती है।

प्रतिकृति प्रकार

SQL सर्वर तीन प्रतिकृति प्रकारों का समर्थन करता है:

  1. लेन-देन संबंधी प्रतिकृति।
  2. स्नैपशॉट प्रतिकृति।
  3. प्रतिकृति मर्ज करें।

लेन-देन संबंधी प्रतिकृति

लेन-देन संबंधी प्रतिकृति, कोई भी स्कीमा परिवर्तन, प्रकाशक डेटाबेस पर होने वाले डेटा परिवर्तन ग्राहक डेटाबेस पर दोहराए जाएंगे। जब भी प्रकाशक डेटाबेस पर कोई अपडेट, डिलीट या इंसर्ट ऑपरेशन होता है, तो परिवर्तनों को ट्रैक किया जाता है, और उन परिवर्तनों को सब्सक्राइबर डेटाबेस में भेजा जाता है। लेन-देन संबंधी प्रतिकृति एक नेटवर्क पर केवल सीमित मात्रा में डेटा भेजती है। इसके अलावा, परिवर्तन लगभग वास्तविक समय होते हैं, इसलिए इसका उपयोग डीआर साइट को स्थापित करने के लिए किया जा सकता है, या इसका उपयोग रिपोर्टिंग कार्यों को बढ़ाने के लिए किया जा सकता है। लेन-देन संबंधी प्रतिकृति निम्नलिखित स्थितियों के लिए आदर्श है:

  1. जब आप एक ऐसी प्रणाली स्थापित करना चाहते हैं जहां प्रकाशक पर किए गए परिवर्तन ग्राहकों पर तुरंत लागू हो जाएं।
  2. प्रकाशक के पास उच्च निम्न INSERT, UPDATES, और DELETES है।
  3. जब आप ऑरेकल जैसे गैर-एसक्यूएल सर्वर डेटाबेस के लिए विषम प्रतिकृति अर्थ, प्रकाशक या सब्सक्राइबर सेट करना चाहते हैं।

जब प्रकाशक डेटाबेस में कोई परिवर्तन किया जाता है, तो प्रकाशक डेटाबेस पर लॉग फ़ाइल में लॉग किए गए परिवर्तन होते हैं। वितरक/प्रकाशक साइट, दो नौकरियां सृजित होंगी।

  1. स्नैपशॉट एजेंट :स्नैपशॉट एजेंट जॉब स्कीमा का स्नैपशॉट, ऑब्जेक्ट का डेटा उत्पन्न करता है जिसे हम दोहराना या प्रकाशित करना चाहते हैं। स्नैपशॉट की फ़ाइलें प्रकाशक सर्वर या नेटवर्क स्थान पर सहेजी जा सकती हैं। जब हम पहली बार प्रतिकृति शुरू करते हैं, तो यह एक स्नैपशॉट बनाता है और इसे सभी ग्राहकों पर लागू करता है। स्नैपशॉट एजेंट तब तक निष्क्रिय रहता है जब तक इसे मैन्युअल रूप से ट्रिगर नहीं किया जाता है या विशिष्ट समय पर चलने के लिए शेड्यूल नहीं किया जाता है।
  2. लॉग रीडर एजेंट :लॉग रीडर एजेंट का काम लगातार चलता रहता है। यह प्रकाशक डेटाबेस के लेन-देन लॉग से हुए परिवर्तनों (INSERT, UPDATES, और DELETES) को पढ़ता है और उन्हें एक वितरण एजेंट को भेजता है।
  3. वितरण एजेंट :लॉग रीडर एजेंट से परिवर्तन प्राप्त होने के बाद, वितरण एजेंट ग्राहकों को सभी परिवर्तन भेजता है।

जब हम ट्रांजेक्शनल प्रतिकृति को कॉन्फ़िगर करते हैं, तो यह निम्नलिखित गतिविधियां करता है

  • यह प्रकाशन डेटा और डेटाबेस ऑब्जेक्ट्स का पहला स्नैपशॉट लेने और ग्राहकों पर लागू स्नैपशॉट लेने से शुरू होता है।
  • लॉग रीडर एजेंट प्रकाशक के टी-लॉग की लगातार निगरानी करता है और यदि कोई परिवर्तन होता है, तो वह उन्हें वितरक या सीधे ग्राहकों को भेजता है।

निम्न छवि दर्शाती है कि लेन-देन की प्रतिकृति कैसे काम करती है:

फायदे:

  1. लेनदेन प्रतिकृति का उपयोग स्टैंडबाय SQL सर्वर के रूप में किया जा सकता है, या इसका उपयोग लोड संतुलन या रिपोर्टिंग सिस्टम और OLTP सिस्टम को अलग करने के लिए किया जा सकता है।
  2. प्रकाशक सर्वर कम विलंबता वाले ग्राहक सर्वर पर डेटा की प्रतिकृति बनाता है।
  3. लेन-देन संबंधी प्रतिकृति का उपयोग करके, वस्तु स्तर प्रतिकृति को लागू किया जा सकता है।
  4. लेन-देन संबंधी प्रतिकृति तब लागू की जा सकती है जब आपके पास सुरक्षा के लिए कम डेटा हो, और आपके पास एक तेज़ डेटा पुनर्प्राप्ति योजना होनी चाहिए।

नुकसान:

  1. प्रतिकृति स्थापित हो जाने के बाद, प्रकाशक पर स्कीमा परिवर्तन ग्राहक सर्वर पर लागू नहीं होते हैं। हमें उन परिवर्तनों को मैन्युअल रूप से एक नया स्नैपशॉट बनाकर और इसे ग्राहकों पर लागू करके करना होगा।
  2. अगर हम सर्वर बदलते हैं, तो हमें प्रतिकृति को फिर से कॉन्फ़िगर करना होगा।
  3. यदि लेन-देन संबंधी प्रतिकृति का उपयोग DR सेटअप के रूप में किया जाता है, तो हमें मैन्युअल रूप से विफल होना होगा।

स्नैपशॉट प्रतिकृति

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

स्नैपशॉट प्रतिकृति को कॉन्फ़िगर करते समय, निम्नलिखित महत्वपूर्ण घटकों को परिभाषित किया गया है:

  1. स्नैपशॉट एजेंट :यह प्रकाशन में परिभाषित स्कीमा और डेटा की एक पूरी छवि बनाता है और इसे वितरक को भेजता है। स्नैपशॉट एजेंट तब तक निष्क्रिय रहता है जब तक इसे मैन्युअल रूप से ट्रिगर नहीं किया जाता है या विशिष्ट समय पर चलने के लिए शेड्यूल नहीं किया जाता है।
  2. वितरक एजेंट :यह ग्राहकों को स्नैपशॉट फ़ाइलें भेजता है और मौजूदा एक को बदलकर स्कीमा और डेटा लागू करता है।

स्नैपशॉट प्रतिकृति निम्नलिखित गतिविधियाँ करती है:

  1. निर्धारित शेड्यूल पर, स्नैपशॉट एजेंट प्रकाशित किए जाने वाले स्कीमा और डेटा पर एक साझा लॉक रखता है।
  2. प्रकाशित डेटा का संपूर्ण स्नैपशॉट वितरक की ओर से कॉपी किया गया। स्नैपशॉट एजेंट तीन फ़ाइलें बनाता है
    • प्रकाशित डेटा का डेटाबेस स्कीमा बनाने के लिए फ़ाइल।
    • SQL तालिका में डेटा निर्यात करने के लिए BCP फ़ाइल
    • अनुक्रमणिका डेटा निर्यात करने के लिए अनुक्रमणिका फ़ाइलें।
  1. एक बार फ़ाइलें बन जाने के बाद, स्नैपशॉट एजेंट प्रकाशित डेटा और डेटा पर साझा लॉक जारी करता है।
  2. डिस्ट्रीब्यूटर एजेंट स्नैपशॉट एजेंट द्वारा बनाई गई फ़ाइलों का उपयोग करके सब्सक्राइबर स्कीमा और डेटा को प्रारंभ और प्रतिस्थापित करते हैं।

निम्न छवि दर्शाती है कि स्नैपशॉट प्रतिकृति कैसे काम करती है।

फायदे

  1. स्नैपशॉट प्रतिकृति को स्थापित करना बहुत आसान है। यदि डेटा बार-बार नहीं बदला जाता है, तो स्नैपशॉट प्रतिकृति एक बहुत ही उपयुक्त विकल्प है।
  2. आप यह नियंत्रित कर सकते हैं कि डेटा कब भेजा जाए। उदाहरण के लिए, एक मास्टर टेबल जिसमें डेटा की मात्रा अधिक होती है, लेकिन कम बार-बार बदलती है, जब ट्रैफ़िक कम होने पर आप डेटा को दोहरा सकते हैं।

नुकसान

  1. स्नैपशॉट एजेंट द्वारा उत्पन्न स्नैपशॉट में परिवर्तित और अपरिवर्तित प्रकाशित डेटा होता है, इसलिए नेटवर्क पर प्रसारित स्नैपशॉट विलंबता उत्पन्न कर सकता है और अन्य कार्यों को प्रभावित कर सकता है।
  2. जैसे-जैसे डेटा बढ़ता है, स्नैपशॉट का आकार बढ़ता है और स्नैपशॉट बनाने और ग्राहकों को वितरित करने में अधिक समय लगता है।

प्रतिकृति मर्ज करें

मर्ज प्रतिकृति का उपयोग तब किया जा सकता है जब हमें कई सर्वरों पर परिवर्तनों को प्रबंधित करने की आवश्यकता होती है और इन परिवर्तनों को समेकित करने की आवश्यकता होती है।

जब हम मर्ज प्रतिकृति को कॉन्फ़िगर करते हैं, तो निम्नलिखित घटक बनाए जाएंगे:

  1. स्नैपशॉट एजेंट :स्नैपशॉट एजेंट प्रकाशन डेटा और डेटाबेस ऑब्जेक्ट का पहला स्नैपशॉट बनाता है। एक बार स्नैपशॉट बन जाने के बाद, इसे सभी ग्राहकों को वितरित कर दिया जाएगा।
  2. एजेंट मर्ज करें :मर्ज एजेंट प्रकाशक और ग्राहकों के बीच संघर्षों को हल करने के लिए जिम्मेदार है। किसी भी विरोध का समाधान मर्ज एजेंट के माध्यम से किया जाता है जो विरोध समाधान का उपयोग करता है। आपने विरोध समाधान को कैसे कॉन्फ़िगर किया है, इस पर निर्भर करते हुए, मर्ज एजेंट द्वारा विरोधों का समाधान किया जाता है।

जब हम मर्ज प्रतिकृति को कॉन्फ़िगर करते हैं, तो यह निम्नलिखित गतिविधियां करता है:

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

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

ऐसी व्यावहारिक स्थितियाँ हो सकती हैं जहाँ विभिन्न प्रकाशकों और ग्राहकों द्वारा एक ही पंक्ति को बदल दिया जाता है। उस समय, मर्ज एजेंट यह देखेगा कि कौन-सा विरोध समाधान परिभाषित किया गया है और उसके अनुसार परिवर्तन करेगा।

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

प्रकाशकों और ग्राहकों दोनों पर प्रकाशित टेबलों पर ट्रिगर बनाए जाएंगे। उनका उपयोग पंक्ति या स्तंभ परिवर्तनों के आधार पर परिवर्तनों को ट्रैक करने के लिए किया जाता है।

निम्न छवि दर्शाती है कि मर्ज प्रतिकृति कैसे काम करती है:

फायदे:

  1. एकाधिक सर्वर डेटा पर परिवर्तनों को समेकित करने का प्रबंधन करने का यही एकमात्र तरीका है।

नुकसान:

  1. दोनों सिरों को दोहराने और सिंक्रनाइज़ करने में बहुत समय लगता है।
  2. इसमें एकरूपता कम है क्योंकि बहुत सी पार्टियों को सिंक्रनाइज़ किया जाना चाहिए।
  3. प्रतिलिपि को मर्ज करते समय विरोध हो सकता है यदि एक ही पंक्तियाँ एक से अधिक ग्राहकों और प्रकाशकों में प्रभावित होती हैं। इसे विरोध समाधान का उपयोग करके ठीक किया जा सकता है, लेकिन यह प्रतिकृति सेटअप को और अधिक जटिल बना देता है।

टी-एसक्यूएल कोड प्रतिकृति कॉन्फ़िगरेशन की समीक्षा करने के लिए

मैंने अपनी मशीन के दो उदाहरणों पर स्नैपशॉट प्रतिकृति और लेनदेन संबंधी प्रतिकृति को कॉन्फ़िगर किया है। SQL डायनेमिक मैनेजमेंट (DMV) का उपयोग करके, हम प्रतिकृति के कॉन्फ़िगरेशन की जांच कर सकते हैं। प्रतिकृति के विन्यास की समीक्षा करने के लिए हम टी-एसक्यूएल कोड का उपयोग कर सकते हैं। स्क्रिप्ट कोड निम्नलिखित को पॉप्युलेट करता है:

  1. ग्राहक डेटाबेस का नाम।
  2. प्रकाशक का नाम.
  3. सदस्यता प्रकार।
  4. प्रकाशक डेटाबेस.
  5. प्रतिकृति एजेंट का नाम।

नीचे स्क्रिप्ट है:

सेलेक्ट डिस्ट्रीब्यूशन एजेंट। (डिस्ट्रीब्यूशनएजेंट.नाम, लेन(डिस्ट्रीब्यूशनएजेंट.नाम) - (लेन(डिस्ट्रीब्यूशनएजेंट.आईडी) + 1))) - (10 + लेन(डिस्ट्रीब्यूशनएजेंट.पब्लिशर_डीबी) + (केस जब डिस्ट्रीब्यूशनएजेंट.प्रकाशक_डीबी ='सभी' तब 1 ईएलएसई लेन( डिस्ट्रीब्यूशनएजेंट.प्रकाशन) + 2 END ))) [सब्सक्राइबर], ( केस जब डिस्ट्रीब्यूशनएजेंट.सबस्क्रिप्शन_टाइप ='0' तब 'पुश' जब डिस्ट्रीब्यूशनएजेंट. मुर्गी वितरण एजेंट। सदस्यता_प्रकार ='2' फिर 'अनाम' ELSE कास्ट (DistributionAgent.subscription_type AS VARCHAR) END ) [सदस्यता प्रकार], वितरण एजेंट। प्रकाशक_डीबी + '-' + कास्ट (वितरण एजेंट। प्रकाशक_डेटाबेस_आईडी एएस वचर) [प्रकाशक डेटाबेस], वितरण एजेंट .NAME [पब - डीबी - प्रकाशन - उप - एजेंट आईडी] वितरण से। 

निम्नलिखित आउटपुट है:

सारांश

इस लेख में, मैंने समझाया है:

  1. प्रतिकृति और उसके घटकों के मूल सिद्धांत और लाभ।
  2. लेन-देन संबंधी प्रतिकृति।
  3. स्नैपशॉट प्रतिकृति।
  4. प्रतिकृति मर्ज करें।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर प्रबंधन स्टूडियो (SSMS) में क्वेरी विंडो को कैसे विभाजित करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 13

  2. SQL सर्वर में एकाधिक कॉलम पर अद्वितीय बाधा कैसे बनाएं - SQL सर्वर / TSQL ट्यूटोरियल भाग 96

  3. केवल एक पंक्ति सम्मिलित करना यदि वह पहले से मौजूद नहीं है

  4. एक संग्रहीत प्रक्रिया के परिणाम सेट (T-SQL) से कॉलम के सबसेट का चयन कैसे करें

  5. एसक्यूएल में, आप श्रेणियों में समूह कैसे कर सकते हैं?