Акыркы макаламда биз бүгүнкү маалыматтарга негизделген дүйнөдө окуялардын экспоненциалдуу өсүшүн талкууладык. Айланабыздагы көптөгөн колдонмолор, акылдуу түзмөктөр жана машиналар менен түзүлгөн маалыматтардын көлөмү чоң. Ошондой эле биз оркестрдик платформа бул окуяларды туура колдонмолорго жеткирүүгө кандайча жардам берерин изилдеп көрдүк. Бирок, иш-чараларды жеткирүү ишканаларга таасир этиши үчүн жетишсиз болушу мүмкүн.
Колдонуучулардын жүрүм-турумун түшүнүү үчүн бул окуяларды талдоо менен, ишканалар акылдуу чечимдерди кабыл алуу менен өз кардарларына жакшыраак кызмат кыла алышат. Реалдуу убакыттагы аналитикалык платформа окуянын маалыматтарын маанилүү интеллектке айландырууга жардам берет.
Бул макалада AWS аркылуу реалдуу убакытта аналитика платформасын кантип куруу, мүмкүн болгон чечимдерди баалоо жана масштабдуу жана ишенимдүү платформаны ишке ашыруу үчүн кадам-кадам көрсөтмөнү берүү каралат. Бул платформаны куруу үч кадамды камтыйт: маалыматтарды алуу, иштетүү жана суроо. Реалдуу убакыттагы аналитика көбүнчө убакыттын өтүшү менен тенденцияларга жана калыптарга көңүл бурат - бул колдонуучунун жүрүм-туруму же системанын иштеши.
Убакыт сериясынын маалыматтары табигый түрдө окуяларды ырааттуулукта уюштуруп, маалыматтарды көз ирмемге талдоону жеңилдетет. Убакыт серияларынын сактагычы ушул муктаждыкка эң сонун шайкеш келип, колдонмолорго метрикаларды эсептөөгө мүмкүндүк берет. AWS SQS, Lambda, Timestream жана Quicksight сыяктуу куралдарды сунуштайт, алар бул платформаны куруу үчүн чогуу иштешет.
Реалдуу убакытта аналитика платформасын курууда үч негизги бөлүк бар
Визуализация жана суроо : Ыңгайлаштырылган башкаруу такталары же Quicksight визуализация жана түшүнүктөр үчүн Timestream менен бириге алат
Төмөнкү диаграмма аналитикалык платформанын архитектурасын көрсөтөт
Amazon Timestream , AWS убакыт сериясынын маалымат базасы чоң көлөмдөгү маалыматтарды эффективдүү иштетүү жана талдоо көйгөйлөрүн чечүү үчүн иштелип чыккан. Timestream серверсиз, масштабдуу жана реалдуу убакыттагы маалыматтарды талдоону талап кылган колдонмолор үчүн идеалдуу. Анын негизги өзгөчөлүктөрү төмөнкүлөр кирет:
Керектүү бардык ресурстар үчүн булут түзүү (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 кезегинде жарыяланган окуяларды иштетүү жана иштетүү үчүн жооптуу маалымат процессору катары конфигурацияланган. Ал окуяларды метрика катары иштетүүдөн кийин Timestream маалымат базасына түртөт.
Төмөндө 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 ар кандай кызматтарда түзүлгөн бардык окуялар үчүн негизги маалымат кампасы катары кызмат кылат. Орнотуу төмөнкүлөрдү камтыйт:
Төмөндө 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
Визуализация жана суроо
Суроо
Timestream колдонуучуларга таблицага каршы суроо жүргүзүүгө мүмкүндүк берген Query консолун сунуштайт, мисалы:
-- 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 Timestream менен көптөгөн кутудан тышкаркы интеграцияларды (мисалы, QuickSight , Grafana ) камсыздайт, бул аны анализдөөнү, визуалдаштырууну жана түшүнүктөрдү алууну жеңилдетет.
Кызматтар окуяны төмөнкү форматта SQSге жарыялай алат, ал бүт иштетүү агымын козгойт:
{ "order_id": "test-order-1", "customer_id": "test-customer-1", "event_type": "order_success", "metric_value": 1 }
Бул архитектура масштабдуу жана ишенимдүү аналитика платформасын куруунун жөнөкөй жана натыйжалуу жолун сунуштайт. Конкреттүү муктаждыктарга жараша башка альтернативалар бар, анын ичинде окуяларды иштетүү үчүн AWS Kinesis Streams, маалыматтар сактагыч үчүн Prometheus жана партияларды иштетүү жана аналитика үчүн S3+Athena.