जेफिरनेट लोगो

अमेज़ॅन डेटा फ़ायरहोज़ और स्नोफ्लेक | का उपयोग करके वास्तविक समय स्ट्रीमिंग के साथ अपने डेटा आर्किटेक्चर को उन्नत करें अमेज़न वेब सेवाएँ

दिनांक:

आज की तेज़-तर्रार दुनिया समय पर अंतर्दृष्टि और निर्णय की मांग करती है, जो स्ट्रीमिंग डेटा के महत्व को बढ़ा रही है। स्ट्रीमिंग डेटा से तात्पर्य उस डेटा से है जो विभिन्न स्रोतों से लगातार उत्पन्न होता है। इस डेटा के स्रोत, जैसे क्लिकस्ट्रीम इवेंट, चेंज डेटा कैप्चर (सीडीसी), एप्लिकेशन और सर्विस लॉग और इंटरनेट ऑफ थिंग्स (आईओटी) डेटा स्ट्रीम तेजी से बढ़ रहे हैं। स्नोफ्लेक अपने प्लेटफ़ॉर्म में स्ट्रीमिंग डेटा लाने के लिए दो विकल्प प्रदान करता है: स्नोपाइप और स्नोफ्लेक स्नोपाइप स्ट्रीमिंग। स्नोपाइप फ़ाइल अंतर्ग्रहण (बैचिंग) उपयोग के मामलों के लिए उपयुक्त है, जैसे बड़ी फ़ाइलों को लोड करना अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) से स्नोफ्लेक तक। स्नोपाइप स्ट्रीमिंग, मार्च 2023 में जारी एक नई सुविधा, रोसेट अंतर्ग्रहण (स्ट्रीमिंग) उपयोग के मामलों के लिए उपयुक्त है, जैसे कि डेटा की एक सतत स्ट्रीम लोड करना अमेज़न Kinesis डेटा स्ट्रीम or Apache Kafka के लिए Amazon प्रबंधित स्ट्रीमिंग (अमेज़ॅन एमएसके)।

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

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

अमेज़ॅन डेटा फ़ायरहोज़ की कुछ प्रमुख विशेषताओं में शामिल हैं:

  • पूरी तरह से प्रबंधित सर्वर रहित सेवा - आपको संसाधनों का प्रबंधन करने की आवश्यकता नहीं है, और अमेज़ॅन डेटा फ़ायरहोज़ स्वचालित रूप से चल रहे प्रशासन के बिना आपके डेटा स्रोत के थ्रूपुट से मेल खाने के लिए स्केल करता है।
  • बिना किसी कोड के उपयोग में आसान – आपको एप्लिकेशन लिखने की आवश्यकता नहीं है.
  • वास्तविक समय डेटा वितरण - आप सेकंडों में जल्दी और कुशलता से अपने गंतव्य तक डेटा प्राप्त कर सकते हैं।
  • 20 से अधिक AWS सेवाओं के साथ एकीकरण - निर्बाध एकीकरण कई एडब्ल्यूएस सेवाओं के लिए उपलब्ध है, जैसे कि काइनेसिस डेटा स्ट्रीम, अमेज़ॅन एमएसके, अमेज़ॅन वीपीसी फ्लो लॉग, एडब्ल्यूएस डब्ल्यूएएफ लॉग, अमेज़ॅन क्लाउडवॉच लॉग, अमेज़ॅन इवेंटब्रिज, एडब्ल्यूएस आईओटी कोर, और बहुत कुछ।
  • पे-एज़-यू-गो मॉडल - आप केवल उस डेटा वॉल्यूम के लिए भुगतान करते हैं जिसे अमेज़ॅन डेटा फ़ायरहोज़ संसाधित करता है।
  • कनेक्टिविटी - अमेज़ॅन डेटा फ़ायरहोज़ आपके वीपीसी में सार्वजनिक या निजी सबनेट से कनेक्ट हो सकता है।

यह पोस्ट बताती है कि आप उन्नत विश्लेषण करने के लिए सेकंड के भीतर AWS से स्ट्रीमिंग डेटा को स्नोफ्लेक में कैसे ला सकते हैं। हम सामान्य आर्किटेक्चर का पता लगाते हैं और बताते हैं कि कम-विलंबता डेटा स्ट्रीमिंग के लिए कम-कोड, सर्वर रहित, लागत प्रभावी समाधान कैसे स्थापित किया जाए।

समाधान का अवलोकन

AWS से स्नोफ्लेक तक डेटा स्ट्रीम करने के समाधान को लागू करने के चरण निम्नलिखित हैं:

  1. स्नोफ्लेक डेटाबेस, स्कीमा और तालिका बनाएं।
  2. एक किनेसिस डेटा स्ट्रीम बनाएं।
  3. एक सुरक्षित निजी लिंक का उपयोग करके स्रोत के रूप में काइनेसिस डेटा स्ट्रीम और गंतव्य के रूप में स्नोफ्लेक के साथ एक फायरहोज डिलीवरी स्ट्रीम बनाएं।
  4. सेटअप का परीक्षण करने के लिए, से नमूना स्ट्रीम डेटा उत्पन्न करें अमेज़ॅन किनेसिस डेटा जेनरेटर (केडीजी) गंतव्य के रूप में फायरहोज डिलीवरी स्ट्रीम के साथ।
  5. स्नोफ्लेक में लोड किए गए डेटा को सत्यापित करने के लिए स्नोफ्लेक तालिका को क्वेरी करें।

समाधान निम्नलिखित वास्तुकला आरेख में दर्शाया गया है।

.. पूर्वापेक्षाएँ

आपके पास निम्नलिखित पूर्वापेक्षाएँ होनी चाहिए:

स्नोफ्लेक डेटाबेस, स्कीमा और तालिका बनाएं

स्नोफ्लेक में अपना डेटा सेट करने के लिए निम्नलिखित चरणों को पूरा करें:

  • अपने स्नोफ्लेक खाते में लॉग इन करें और डेटाबेस बनाएं:
    create database adf_snf;

  • नए डेटाबेस में एक स्कीमा बनाएं:
    create schema adf_snf.kds_blog;

  • नई स्कीमा में एक तालिका बनाएं:
    create or replace table iot_sensors
    (sensorId number,
    sensorType varchar,
    internetIP varchar,
    connectionTime timestamp_ntz,
    currentTemperature number
    );

एक किनेसिस डेटा स्ट्रीम बनाएं

अपना डेटा स्ट्रीम बनाने के लिए निम्नलिखित चरणों को पूरा करें:

  • किनेसिस डेटा स्ट्रीम कंसोल पर, चुनें डेटा स्ट्रीम नेविगेशन फलक में
  • चुनें डेटा स्ट्रीम बनाएँ.
  • डेटा स्ट्रीम नाम के लिए, एक नाम दर्ज करें (उदाहरण के लिए, KDS-Demo-Stream).
  • शेष सेटिंग्स को डिफ़ॉल्ट के रूप में छोड़ दें।
  • डेटा स्ट्रीम बनाएं चुनें.

एक Firehose वितरण स्ट्रीम बनाएँ

स्रोत के रूप में काइनेसिस डेटा स्ट्रीम और गंतव्य के रूप में स्नोफ्लेक के साथ फ़ायरहोज़ डिलीवरी स्ट्रीम बनाने के लिए निम्नलिखित चरणों को पूरा करें:

  • अमेज़ॅन डेटा फ़ायरहोज़ कंसोल पर, चुनें फ़ायरहोज़ स्ट्रीम बनाएं.
  • के लिए स्रोत, चुनें अमेज़न Kinesis डेटा स्ट्रीम.
  • के लिए गंतव्य, चुनें हिमपात का एक खंड.
  • के लिए काइनेसिस डेटा स्ट्रीम, आपके द्वारा पहले बनाई गई डेटा स्ट्रीम को ब्राउज़ करें।
  • के लिए फ़ायरहोज़ स्ट्रीम नाम, डिफ़ॉल्ट जनरेट किया गया नाम छोड़ें या अपनी पसंद का कोई नाम दर्ज करें।
  • के अंतर्गत संपर्क व्यवस्था, अमेज़ॅन डेटा फ़ायरहोज़ को स्नोफ्लेक से कनेक्ट करने के लिए निम्नलिखित जानकारी प्रदान करें:
    • के लिए स्नोफ्लेक खाता यूआरएल, अपना स्नोफ्लेक खाता URL दर्ज करें।
    • के लिए उपयोगकर्ता, पूर्वापेक्षाओं में उत्पन्न उपयोगकर्ता नाम दर्ज करें।
    • के लिए निजी चाबी, पूर्वापेक्षाओं में उत्पन्न निजी कुंजी दर्ज करें। सुनिश्चित करें कि निजी कुंजी PKCS8 प्रारूप में है। पीईएम शामिल न करें header-BEGIN उपसर्ग और footer-END निजी कुंजी के भाग के रूप में प्रत्यय। यदि कुंजी कई पंक्तियों में विभाजित है, तो पंक्ति विराम हटा दें।
    • के लिए भूमिका, चुनते हैं कस्टम स्नोफ्लेक भूमिका का उपयोग करें और IAM भूमिका दर्ज करें जिसके पास डेटाबेस तालिका में लिखने की पहुंच है।

आप सार्वजनिक या निजी कनेक्टिविटी का उपयोग करके स्नोफ्लेक से जुड़ सकते हैं। यदि आप वीपीसी एंडपॉइंट प्रदान नहीं करते हैं, तो डिफ़ॉल्ट कनेक्टिविटी मोड सार्वजनिक है। अपनी स्नोफ्लेक नेटवर्क नीति में फ़ायरहोज़ आईपी की सूची की अनुमति देने के लिए, देखें अपने गंतव्य के लिए स्नोफ्लेक चुनें. यदि आप एक निजी लिंक यूआरएल का उपयोग कर रहे हैं, तो वीपीसीई आईडी का उपयोग करें सिस्टम$GET_PRIVATELINK_CONFIG:

select SYSTEM$GET_PRIVATELINK_CONFIG();

यह फ़ंक्शन स्नोफ्लेक सेवा के लिए निजी कनेक्टिविटी की स्व-सेवा कॉन्फ़िगरेशन को सुविधाजनक बनाने के लिए आवश्यक स्नोफ्लेक खाता जानकारी का JSON प्रतिनिधित्व लौटाता है, जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है।

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

वैकल्पिक रूप से, आप a . का उपयोग कर सकते हैं एडब्ल्यूएस CloudFormation अमेज़ॅन डेटा फ़ायरहोज़ कंसोल का उपयोग करने के बजाय गंतव्य के रूप में स्नोफ्लेक के साथ फ़ायरहोज़ डिलीवरी स्ट्रीम बनाने के लिए टेम्पलेट।

CloudFormation स्टैक का उपयोग करने के लिए, चुनें

बीडीबी-4100-सीएफएन-लॉन्च-स्टैक

नमूना स्ट्रीम डेटा उत्पन्न करें
आपके द्वारा बनाए गए किनेसिस डेटा स्ट्रीम के साथ केडीजी से नमूना स्ट्रीम डेटा जेनरेट करें:

{ 
"sensorId": {{random.number(999999999)}}, 
"sensorType": "{{random.arrayElement( ["Thermostat","SmartWaterHeater","HVACTemperatureSensor","WaterPurifier"] )}}", 
"internetIP": "{{internet.ip}}", 
"connectionTime": "{{date.now("YYYY-MM-DDTHH:m:ss")}}", 
"currentTemperature": {{random.number({"min":10,"max":150})}} 
}

स्नोफ्लेक तालिका को क्वेरी करें

स्नोफ्लेक तालिका को क्वेरी करें:

select * from adf_snf.kds_blog.iot_sensors;

आप पुष्टि कर सकते हैं कि केडीजी द्वारा उत्पन्न डेटा जो किनेसिस डेटा स्ट्रीम को भेजा गया था, अमेज़ॅन डेटा फ़ायरहोज़ के माध्यम से स्नोफ्लेक तालिका में लोड किया गया है।

समस्या निवारण

यदि केडीजी द्वारा फायरहोज डिलीवरी स्ट्रीम में डेटा भेजने के बाद डेटा को किनेसिस डेटा स्टीम में लोड नहीं किया जाता है, तो रीफ्रेश करें और सुनिश्चित करें कि आप केडीजी में लॉग इन हैं।

यदि आपने स्नोफ्लेक गंतव्य तालिका परिभाषा में कोई बदलाव किया है, तो फ़ायरहोज़ डिलीवरी स्ट्रीम को फिर से बनाएं।

क्लीन अप

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

निष्कर्ष

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


लेखक के बारे में

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

मुस्तफा मंसूर Amazon Web Services में एक प्रधान उत्पाद प्रबंधक - Tech है जहाँ वह Amazon Kinesis Data Firehose पर काम करता है। वह सहज उत्पाद अनुभव विकसित करने में माहिर हैं जो ग्राहकों के लिए बड़े पैमाने पर जटिल चुनौतियों का समाधान करता है। जब वह Amazon Kinesis Data Firehose पर काम करने में कठिन नहीं होता है, तो आप मुस्तफा को स्क्वैश कोर्ट पर पाएंगे, जहां वह चुनौती देने वालों का सामना करना और अपने ड्रॉपशॉट्स को सही करना पसंद करता है।

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

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी