मेरो अन्तिम लेखमा , हामीले आजको डाटा-संचालित संसारमा घटनाहरूको घातीय वृद्धिको बारेमा छलफल गर्यौं। हाम्रो वरिपरि धेरै अनुप्रयोगहरू, स्मार्ट उपकरणहरू, र मेसिनहरू भएकाले, सिर्जना गरिएको डेटाको मात्रा ठूलो छ। हामीले एउटा अर्केस्ट्रेशन प्लेटफर्मले यी घटनाहरूलाई सही अनुप्रयोगहरूमा कसरी डेलिभर गर्न मद्दत गर्न सक्छ भनेर पनि अन्वेषण गर्यौं। यद्यपि, व्यवसायहरूलाई प्रभाव पार्नका लागि घटनाहरू प्रदान गर्नु पर्याप्त नहुन सक्छ।
प्रयोगकर्ताहरूको व्यवहार बुझ्न यी घटनाहरूको विश्लेषण गरेर, व्यवसायहरूले स्मार्ट निर्णयहरू गरेर आफ्ना ग्राहकहरूलाई अझ राम्रो सेवा दिन सक्छन्। वास्तविक-समय एनालिटिक्स प्लेटफर्मले घटनाको डेटालाई अर्थपूर्ण बुद्धिमत्तामा रूपान्तरण गर्न मद्दत गर्न सक्छ।
यस लेखले AWS प्रयोग गरेर वास्तविक-समय विश्लेषण प्लेटफर्म कसरी निर्माण गर्ने, सम्भावित समाधानहरूको मूल्याङ्कन गर्ने, र स्केलेबल र भरपर्दो प्लेटफर्म कार्यान्वयन गर्न चरण-दर-चरण गाइड प्रदान गर्ने बारे अन्वेषण गर्दछ। यस प्लेटफर्मको निर्माणमा तीन चरणहरू समावेश छन्: डाटा इन्जेस्टिङ, प्रशोधन, र क्वेरी। वास्तविक-समय एनालिटिक्स प्रायः समयको साथ प्रवृति र ढाँचाहरूमा केन्द्रित हुन्छ - चाहे यो प्रयोगकर्ता व्यवहार वा प्रणाली प्रदर्शन हो।
समय-श्रृङ्खला डेटाले स्वाभाविक रूपमा घटनाहरूलाई क्रमबद्ध रूपमा व्यवस्थित गर्दछ, यसले क्षण-क्षण डेटा विश्लेषण गर्न सजिलो बनाउँछ। समय-श्रृङ्खला भण्डारण यस आवश्यकतासँग पूर्ण रूपमा पङ्क्तिबद्ध हुन्छ, अनुप्रयोगहरूलाई मेट्रिक्स गणना गर्न अनुमति दिँदै। AWS ले SQS, Lambda, Timestream, र Quicksight जस्ता उपकरणहरू प्रदान गर्दछ जसले यो प्लेटफर्म निर्माण गर्न सँगै काम गर्दछ।
त्यहाँ एक वास्तविक-समय विश्लेषण प्लेटफर्म निर्माण मा संलग्न तीन प्रमुख भागहरू छन्
भिजुअलाइजेशन र क्वेरी : अनुकूलन ड्यासबोर्डहरू वा क्विकसाइटले दृश्य र अन्तर्दृष्टिको लागि टाइमस्ट्रीमसँग एकीकृत हुन सक्छ।
तलको रेखाचित्रले विश्लेषण प्लेटफर्मको वास्तुकला देखाउँछ
Amazon Timestream , 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 सहित विशिष्ट आवश्यकताहरूमा निर्भर अन्य विकल्पहरू छन्।