paint-brush
डेटा लेक रहस्य का खुलासा: नेस्सी, ड्रेमियो और मिनिओ मेक वेव्सद्वारा@minio
8,070 रीडिंग
8,070 रीडिंग

डेटा लेक रहस्य का खुलासा: नेस्सी, ड्रेमियो और मिनिओ मेक वेव्स

द्वारा MinIO6m2024/02/22
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

यह आलेख एक चरण-दर-चरण मार्गदर्शिका प्रदान करता है जो दर्शाता है कि कैसे नेस्सी, ड्रेमियो और मिनिओ आपके डेटा इंजीनियरिंग वर्कफ़्लो में डेटा गुणवत्ता और सहयोग को बढ़ाने के लिए मिलकर काम करते हैं।
featured image - डेटा लेक रहस्य का खुलासा: नेस्सी, ड्रेमियो और मिनिओ मेक वेव्स
MinIO HackerNoon profile picture


हममें से कई लोगों ने आवश्यकताओं के आधार पर डेटा में बदलाव किए हैं जो बाद में विकसित होते हैं। जब तक हमें इसका एहसास होता है, तब तक पीछे हटना असंभव हो जाता है। परिवर्तन केवल एक स्थिरांक नहीं है; यह डेटा प्रबंधन का एक अनिवार्य हिस्सा है जिसके लिए एक परिष्कृत दृष्टिकोण की आवश्यकता होती है। ड्रेमियो के डेटा कैटलॉग नेस्सी की गिट-जैसी कार्यक्षमता दर्ज करें।


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


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

मूल बातें समझना: नेस्सी वर्कलोड

नेस्सी Git-जैसे वर्कलोड की अनुमति देता है जो आपको परीक्षण करने, विकसित करने और उत्पादन की ओर धकेलने देता है। आइए कुछ प्रमुख अवधारणाओं को तोड़ें:


  • शाखाएँ: Git की तरह ही, Nessie में शाखाएँ आपको विभिन्न डेटा इंजीनियरिंग कार्यों पर एक साथ काम करने की अनुमति देती हैं। उदाहरण के लिए, आपके पास सुविधा विकास, डेटा सफ़ाई और डेटा परिवर्तन के लिए एक शाखा हो सकती है। प्रत्येक शाखा के पास डेटा परिवर्तनों का अपना सेट हो सकता है।


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


  • मर्ज : नेस्सी आपको एक शाखा से दूसरी शाखा में परिवर्तनों को मर्ज करने की अनुमति देता है। यह Git में कोड परिवर्तन को मर्ज करने के समान है। जब आप किसी शाखा का विलय करते हैं, तो उस शाखा में किए गए डेटा परिवर्तन लक्ष्य शाखा का हिस्सा बन जाते हैं।

अवयव



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


हमने पहले ही पता लगा लिया है कि कुबेरनेट्स के साथ ड्रेमियो को कैसे तैनात किया जाए और कैसे किया जाए Dremio के साथ MiniIO पर आइसबर्ग तालिकाओं को क्वेरी करें . ड्रेमियो के बारे में अतिरिक्त जानकारी के लिए परामर्श लें ड्रेमियो संसाधन .


मिनिआईओ उच्च प्रदर्शन वाला ऑब्जेक्ट स्टोरेज है। अपनी असाधारणता के लिए प्रसिद्ध रफ़्तार और scalability , मिनिओ आधुनिक डेटा लेक बुनियादी ढांचे के निर्माण और रखरखाव में एक महत्वपूर्ण घटक के रूप में कार्य करता है। मिनिओ आर्किटेक्ट्स को ऑन-प्रिमाइसेस, नंगे धातु, किनारे या किसी भी सार्वजनिक क्लाउड पर बड़ी मात्रा में डेटा को कुशलतापूर्वक प्रबंधित और संग्रहीत करने का अधिकार देता है।


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

शुरू करना

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


ट्यूटोरियल का यह भाग ड्रेमियो पर आधारित है ब्लॉग भेजा . आप इस प्रोजेक्ट के लिए रेपो प्राप्त कर सकते हैं यहाँ .


शुरू करने के लिए, एक टर्मिनल खोलें और उस फ़ोल्डर पर नेविगेट करें जहां आपने रेपो को क्लोन/डाउनलोड किया था, और ड्रेमियो को शुरू करने के लिए नीचे दिए गए कमांड को चलाएं।


 docker-compose up dremio


कुछ क्षण प्रतीक्षा करें और फिर ड्रेमियो तक पहुंचने के लिए http://localhost:9047 पर नेविगेट करें। अनुरोधित फ़ील्ड को अपडेट करें और फिर अगला क्लिक करें।



इसके बाद, MiniIO प्रारंभ करने के लिए निम्न कमांड चलाएँ।


 docker-compose up minio


नीचे दिया गया अंतिम docker-compose up कमांड नेस्सी को प्रारंभ करेगा।


 docker-compose up nessie


minioadmin:minioadmin के उपयोगकर्ता नाम और पासवर्ड के साथ MiniIO में लॉग इन करने के लिए http://localhost:9001 पर नेविगेट करें। आपको एक बाल्टी बनाने के लिए प्रेरित किया जाएगा।



iceberg-datalake नामक एक बनाएं।



फिर http://localhost:9047 पर ड्रेमियो पर वापस जाएं और स्रोत जोड़ें पर क्लिक करें और नेस्सी का चयन करें।



  • नाम को nessie पर सेट करें
  • समापन बिंदु URL को http://nessie:19120/api/v2 पर सेट करें
  • प्रमाणीकरण को none पर सेट न करें



अभी तक सेव पर क्लिक न करें. इसके बजाय, बाईं ओर नेविगेशन पैनल में, स्टोरेज पर क्लिक करें। MiniIO S3-API संगत ऑब्जेक्ट स्टोरेज है और AWS S3 के समान कनेक्शन पथ का उपयोग कर सकता है।


  • अपनी एक्सेस कुंजी के लिए, minioadmin सेट करें
  • अपनी गुप्त कुंजी के लिए, minioadmin सेट करें
  • रूट पथ को /iceberg-datalake पर सेट करें



निर्देशों के अगले सेट के लिए नीचे स्क्रॉल करें।

  • निम्नलिखित गुणों को बनाने और कॉन्फ़िगर करने के लिए Connection Properties के अंतर्गत Add Property बटन पर क्लिक करें।
    • fs.s3a.path.style.access true तक पहुंच
    • fs.s3a.endpoint से minio:9000
    • dremio.s3.compat true पर
    • Encrypt connection अनचेक करें



फिर सेव पर क्लिक करें. अब आपको अपने डेटा स्रोतों में नेस्सी कैटलॉग देखना चाहिए।



एक डेटा स्रोत बनाएं

ड्रेमियो में बाईं ओर SQL रनर पर नेविगेट करें। सुनिश्चित करें कि टेक्स्ट एडिटर के ऊपरी दाएँ क्षेत्र में Context हमारे नेस्सी स्रोत पर सेट है। अन्यथा, आपको इस क्वेरी को चलाने के लिए केवल SalesData के बजाय nessie.SalesData जैसे संदर्भ का संदर्भ देना होगा। नीचे दिए गए SQL को कॉपी और पेस्ट करें और चलाएँ।


 CREATE TABLE SalesData (    id INT,    product_name VARCHAR,    sales_amount DECIMAL,    transaction_date DATE ) PARTITION BY (transaction_date); 



आपके द्वारा अभी बनाई गई तालिका में डेटा डालने के लिए नीचे दी गई क्वेरी चलाएँ।


 INSERT INTO SalesData (id, product_name, sales_amount, transaction_date) VALUES    (1, 'ProductA', 1500.00, '2023-10-15'),    (2, 'ProductB', 2000.00, '2023-10-15'),    (3, 'ProductA', 1200.00, '2023-10-16'),    (4, 'ProductC', 1800.00, '2023-10-16'),    (5, 'ProductB', 2200.00, '2023-10-17'); 



यह देखने के लिए मिनिआईओ पर वापस जाएँ कि आपका डेटा लेक आइसबर्ग तालिकाओं से भर गया है।


नेस्सी के साथ शाखाकरण और विलय

http://localhost:9047 पर ड्रेमियो पर लौटें। AT BRANCH सिंटैक्स का उपयोग करके मुख्य शाखा पर एक तालिका को क्वेरी करके प्रारंभ करें:


 SELECT * FROM nessie.SalesData AT BRANCH main; 



उत्पादन को प्रभावित किए बिना डेटा के साथ खेलने और उसे बदलने की अनुमति देने के लिए एक ईटीएल (एक्सट्रैक्ट ट्रांसफॉर्म और लोड) शाखा बनाएं।


 CREATE BRANCH etl_06092023 in nessie


ईटीएल शाखा के भीतर, तालिका में नया डेटा डालें:

 USE BRANCH etl_06092023 in nessie; INSERT INTO nessie.SalesData (id, product_name, sales_amount, transaction_date) VALUES (6, 'ProductC', 1400.00, '2023-10-18');


ईटीएल शाखा के भीतर नए डेटा की तत्काल उपलब्धता की पुष्टि करें:

 SELECT * FROM nessie.SalesData AT BRANCH etl_06092023;


मुख्य शाखा पर उपयोगकर्ताओं से परिवर्तनों के अलगाव पर ध्यान दें:

 SELECT * FROM nessie.SalesData AT BRANCH main;


ईटीएल शाखा से परिवर्तनों को वापस मुख्य शाखा में मर्ज करें:

 MERGE BRANCH etl_06092023 INTO main in nessie;


यह देखने के लिए कि परिवर्तन वास्तव में विलय कर दिए गए हैं, फिर से मुख्य शाखा का चयन करें।

 SELECT * FROM nessie.SalesData AT BRANCH main


यह ब्रांचिंग रणनीति डेटा इंजीनियरों को कई तालिकाओं में कई लेनदेन को स्वतंत्र रूप से संभालने में सक्षम बनाती है। जब वे तैयार हो जाते हैं, तो डेटा इंजीनियर इन लेनदेन को मुख्य शाखा के भीतर एक एकल, व्यापक मल्टी-टेबल लेनदेन में विलय कर सकते हैं।

निष्कर्ष

यह ब्लॉग पोस्ट डेटा इंजीनियरिंग में Git-जैसे संस्करण नियंत्रण की शक्ति पर जोर देता है कि कैसे कंकाल डेटा संस्करणों, शाखाओं और विलयों को निर्बाध रूप से प्रबंधित करता है। यह चरण-दर-चरण मार्गदर्शिका दर्शाती है कि कैसे नेस्सी, ड्रेमियो और मिनिओ के सहयोग से, ऑब्जेक्ट स्टोरेज फाउंडेशन के रूप में, डेटा इंजीनियरिंग वर्कफ़्लो में डेटा गुणवत्ता और सहयोग को बढ़ाती है।


हमें बताएं कि आपका डेटा लेकहाउस कैसा दिखता है [email protected] या पर हमारा स्लैक चैनल .


यहाँ भी दिखाई देता है.