paint-brush
AWS को साथ वास्तविक-समय एनालिटिक्स कसरी मास्टर गर्ने: टाइमस्ट्रीम र परेद्वारा@ravilaudya
512 पढाइहरू
512 पढाइहरू

AWS को साथ वास्तविक-समय एनालिटिक्स कसरी मास्टर गर्ने: टाइमस्ट्रीम र परे

द्वारा Ravi Laudya6m2024/12/04
Read on Terminal Reader

धेरै लामो; पढ्नकाे लागि

यस लेखले स्केलेबल र भरपर्दो वास्तविक-समय एनालिटिक्स प्लेटफर्म कसरी बनाउने भनेर अन्वेषण गर्दछ। यसले AWS प्लेटफर्म कम्पोनेन्टहरू SQS, Lambda र Timestream प्रयोग गरेर घटना डेटालाई कार्ययोग्य अन्तर्दृष्टिमा रूपान्तरण गर्न डेटा इन्जेसन, प्रशोधन, दृश्य र क्वेरी कभर गर्दछ।
featured image - AWS को साथ वास्तविक-समय एनालिटिक्स कसरी मास्टर गर्ने: टाइमस्ट्रीम र परे
Ravi Laudya HackerNoon profile picture

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


प्रयोगकर्ताहरूको व्यवहार बुझ्न यी घटनाहरूको विश्लेषण गरेर, व्यवसायहरूले स्मार्ट निर्णयहरू गरेर आफ्ना ग्राहकहरूलाई अझ राम्रो सेवा दिन सक्छन्। वास्तविक-समय एनालिटिक्स प्लेटफर्मले घटनाको डेटालाई अर्थपूर्ण बुद्धिमत्तामा रूपान्तरण गर्न मद्दत गर्न सक्छ।


यस लेखले AWS प्रयोग गरेर वास्तविक-समय विश्लेषण प्लेटफर्म कसरी निर्माण गर्ने, सम्भावित समाधानहरूको मूल्याङ्कन गर्ने, र स्केलेबल र भरपर्दो प्लेटफर्म कार्यान्वयन गर्न चरण-दर-चरण गाइड प्रदान गर्ने बारे अन्वेषण गर्दछ। यस प्लेटफर्मको निर्माणमा तीन चरणहरू समावेश छन्: डाटा इन्जेस्टिङ, प्रशोधन, र क्वेरी। वास्तविक-समय एनालिटिक्स प्रायः समयको साथ प्रवृति र ढाँचाहरूमा केन्द्रित हुन्छ - चाहे यो प्रयोगकर्ता व्यवहार वा प्रणाली प्रदर्शन हो।


समय-श्रृङ्खला डेटाले स्वाभाविक रूपमा घटनाहरूलाई क्रमबद्ध रूपमा व्यवस्थित गर्दछ, यसले क्षण-क्षण डेटा विश्लेषण गर्न सजिलो बनाउँछ। समय-श्रृङ्खला भण्डारण यस आवश्यकतासँग पूर्ण रूपमा पङ्क्तिबद्ध हुन्छ, अनुप्रयोगहरूलाई मेट्रिक्स गणना गर्न अनुमति दिँदै। AWS ले SQS, Lambda, Timestream, र Quicksight जस्ता उपकरणहरू प्रदान गर्दछ जसले यो प्लेटफर्म निर्माण गर्न सँगै काम गर्दछ।


त्यहाँ एक वास्तविक-समय विश्लेषण प्लेटफर्म निर्माण मा संलग्न तीन प्रमुख भागहरू छन्

  • डाटा इन्जेसन : अनुप्रयोगहरूबाट प्रकाशित घटनाहरू Amazon Kinesis मार्फत AWS मा वा सिधै SQS मा प्रवाह गर्न सकिन्छ।


  • डाटा प्रशोधन : AWS Lambda डाटा प्रक्रिया र Timesream मा लेख्न सक्छ।


  • भिजुअलाइजेशन र क्वेरी : अनुकूलन ड्यासबोर्डहरू वा क्विकसाइटले दृश्य र अन्तर्दृष्टिको लागि टाइमस्ट्रीमसँग एकीकृत हुन सक्छ।


    तलको रेखाचित्रले विश्लेषण प्लेटफर्मको वास्तुकला देखाउँछ


AWS टाइमस्ट्रीमको साथ एनालिटिक्स


टाइमस्ट्रीम

Amazon Timestream , AWS को समय-श्रृङ्खला डाटाबेस, डेटाको ठूलो मात्रामा कुशलतापूर्वक प्रशोधन र विश्लेषण गर्ने चुनौतीहरूको सामना गर्न डिजाइन गरिएको हो। टाइमस्ट्रीम सर्भरलेस, स्केलेबल, र वास्तविक-समय डाटा एनालिटिक्स चाहिने अनुप्रयोगहरूको लागि आदर्श हो। यसको मुख्य विशेषताहरू समावेश छन्:


  • स्वचालित स्केलिंग : यसले प्रति दिन ट्रिलियन घटनाहरू प्रशोधन गर्न सक्छ, माग पूरा गर्न स्वचालित रूपमा स्केलिंग।
  • कार्यसम्पादन : यसले रिलेशनल डाटाबेसको तुलनामा १००० गुणा छिटो क्वेरी प्रदर्शन प्रदान गर्दछ।
  • सर्भरलेस : यो AWS द्वारा पूर्ण रूपमा व्यवस्थित गरिएको छ, ओभरहेड कम गर्दै।
  • स्मार्ट भण्डारण स्तरहरू : भर्खरको (इन-मेमोरी) र ऐतिहासिक (चुम्बकीय भण्डारण) डेटाको लागि अनुकूलित भण्डारण स्तरहरू।
  • SQL क्वेरी समर्थन : यसले जटिल प्रश्नहरू, एकत्रीकरणहरू, र समय-श्रृंखला विश्लेषणहरू प्रदर्शन गर्नको लागि SQS प्रश्नहरूलाई समर्थन गर्दछ।
  • एकीकरण : यसले अन्य AWS सेवाहरूसँग सिमलेस एकीकरणलाई समर्थन गर्दछ।

कार्यान्वयन

आवश्यक सबै स्रोतहरूको लागि क्लाउड गठन (CFN) टेम्प्लेट Github Repo मा फेला पार्न सकिन्छ।


  • डाटा इन्जेसन

    सेवाहरूले SQS लाममा सान्दर्भिक घटनाहरू प्रकाशित गर्न सक्छन्, जसले प्रणालीको लागि सन्देश लाइनको रूपमा कार्य गर्दछ। विश्वसनीयता बढाउनको लागि, प्राथमिक SQS लामको साथमा डेड-लेटर क्यु (DLQ) कन्फिगर गरिएको छ। प्रशोधन गर्न असफल भएका घटनाहरू पुन: प्रयास थ्रेसहोल्ड पछि DLQ मा जान्छन्। यी घटनाहरू थप डिबगिङ, ह्यान्डलिंग विफलताहरू, र अनुसन्धानका लागि प्रयोग गर्न सकिन्छ।


    तल SQS लाम र यससँग सम्बन्धित DLQ सिर्जना गर्न CFN टेम्प्लेटको स्निपेट छ:


     EventQueueDLQ: Description: 'An DLQ queue that receives failed events' Type: AWS::SQS::Queue Properties: FifoQueue: true ContentBasedDeduplication: true QueueName: !Ref DLQQueueName SqsManagedSseEnabled: true VisibilityTimeout: 240 EventQueue: Description: 'An SQS queue that receives events' Type: 'AWS::SQS::Queue' Properties: QueueName: !Ref SQSQueueName FifoQueue: true ContentBasedDeduplication: true KmsMasterKeyId: alias/aws/sqs VisibilityTimeout: 240 RedrivePolicy: deadLetterTargetArn: !Sub ${EventQueueDLQ.Arn} maxReceiveCount: 5


  • डाटा प्रशोधन

    AWS Lambda प्रकार्य डेटा प्रोसेसरको रूपमा कन्फिगर गरिएको छ, SQS लाममा प्रकाशित घटनाहरू ह्यान्डल गर्न र प्रशोधन गर्न जिम्मेवार। यसले घटनाहरूलाई प्रक्रिया पछि टाइमस्ट्रीम डाटाबेसमा मेट्रिक्सको रूपमा धकेल्छ।


    तल Lambda को लागि CFN टेम्प्लेटको स्निपेट र SQS मा यसको म्यापिङ छ:


     EventProcessorLambda: Type: 'AWS::Lambda::Function' Description: 'Lambda function that processes events from the SQS queue and writes to Timestream.' Properties: FunctionName: !Ref LambdaFunctionName Handler: 'index.lambda_handler' Role: !GetAtt LambdaExecutionRole.Arn Runtime: 'python3.12' MemorySize: 1024 Timeout: 120 Environment: Variables: TIMESTREAM_DATABASE_NAME: !Ref EventsDatabaseName TIMESTREAM_TABLE_NAME: !Ref EventsTableName Code: ZipFile: | # Lambda function code goes here SQSToLambdaEventSourceMapping: Type: 'AWS::Lambda::EventSourceMapping' Description: 'Maps the SQS queue as the event source for the Lambda function.' Properties: BatchSize: 10 EventSourceArn: !GetAtt EventQueue.Arn FunctionName: !GetAtt EventProcessorLambda.Arn Enabled: 'True'


  • डाटा स्टोर

    Amazon Timestream ले विभिन्न सेवाहरूमा उत्पन्न हुने सबै घटनाहरूको लागि प्राथमिक डेटा भण्डारको रूपमा कार्य गर्दछ। सेटअप समावेश छ:

    • डाटाबेस : एक वा बढी तालिकाहरूको लागि तार्किक कन्टेनरको रूपमा कार्य गर्दछ
    • तालिका : डेटाबेस भित्र, तालिकाहरूले वास्तविक मेट्रिक्स डेटा भण्डारण गर्दछ


टाइमस्ट्रीम डाटाबेस र तालिका सिर्जना गर्न CFN टेम्प्लेटको लागि तल स्निपेट छ:

 EventsDatabase: Description: 'Timestream database to store event data' Type: 'AWS::Timestream::Database' Properties: DatabaseName: !Ref EventsDatabaseName KmsKeyId: alias/aws/timestream EventsTable: Description: 'Timestream table that stores event metrics' Type: 'AWS::Timestream::Table' DependsOn: EventsDatabase Properties: DatabaseName: !Ref EventsDatabase TableName: !Ref EventsTableName RetentionProperties: MemoryStoreRetentionPeriodInHours: 72 MagneticStoreRetentionPeriodInDays: 365


  • भिजुअलाइजेशन र क्वेरी

    • प्रश्न

      टाइमस्ट्रीमले क्वेरी कन्सोल प्रदान गर्दछ जसले प्रयोगकर्ताहरूलाई तालिका विरुद्ध क्वेरीहरू चलाउन अनुमति दिन्छ, उदाहरण:

       -- Get the 10 most recent metrics in the past 15 minutes. SELECT * FROM "events-db"."events-metrics" WHERE time between ago(15m) and now() ORDER BY time DESC LIMIT 10


    • भिजुअलाइजेशन

      AWS ले टाइमस्ट्रीमसँग धेरै आउट-अफ-द-बक्स एकीकरणहरू (जस्तै QuickSight , Grafana ) प्रदान गर्दछ, जसले यसलाई विश्लेषण गर्न, कल्पना गर्न र अन्तर्दृष्टिहरू प्राप्त गर्न सजिलो बनाउँछ।

परीक्षण

सेवाहरूले घटनालाई निम्न ढाँचामा SQS मा प्रकाशित गर्न सक्छन् जसले सम्पूर्ण प्रक्रिया प्रवाहलाई ट्रिगर गर्दछ:

 { "order_id": "test-order-1", "customer_id": "test-customer-1", "event_type": "order_success", "metric_value": 1 }


निष्कर्ष

यो वास्तुकलाले स्केलेबल र भरपर्दो एनालिटिक्स प्लेटफर्म निर्माण गर्न सरल र प्रभावकारी तरिका प्रदान गर्दछ। घटना प्रशोधनका लागि AWS Kinesis स्ट्रिमहरू, डेटा भण्डारका लागि प्रोमेथियस, र ब्याच प्रशोधन र विश्लेषणका लागि S3+Athena सहित विशिष्ट आवश्यकताहरूमा निर्भर अन्य विकल्पहरू छन्।