Edellisessä artikkelissani keskustelimme tapahtumien eksponentiaalisesta kasvusta nykypäivän datavetoisessa maailmassa. Koska ympärillämme on niin monia sovelluksia, älylaitteita ja koneita, luotavan tiedon määrä on valtava. Tutkimme myös, kuinka orkestrointialusta voi auttaa toimittamaan nämä tapahtumat oikeisiin sovelluksiin. Tapahtumien toimittaminen ei kuitenkaan välttämättä riitä yrityksille vaikuttamaan.
Analysoimalla näitä tapahtumia ymmärtääkseen käyttäjien käyttäytymistä yritykset voivat palvella asiakkaitaan paremmin tekemällä älykkäämpiä päätöksiä. Reaaliaikainen analytiikkaalusta voi auttaa muuttamaan tapahtuman tiedot mielekkääksi älyksi.
Tässä artikkelissa tutkitaan, kuinka luodaan reaaliaikainen analytiikka-alusta AWS:n avulla, arvioidaan mahdollisia ratkaisuja ja tarjotaan vaiheittaiset ohjeet skaalautuvan ja luotettavan alustan toteuttamiseen. Tämän alustan rakentamiseen kuuluu kolme vaihetta: tietojen käsittely, käsittely ja kyselyt. Reaaliaikainen analytiikka keskittyy usein trendeihin ja malleihin ajan mittaan – olipa kyseessä sitten käyttäjien käyttäytyminen tai järjestelmän suorituskyky.
Aikasarjadata järjestää tapahtumat luonnollisesti peräkkäin, jolloin dataa on helppo analysoida hetkestä toiseen. Aikasarjatallennus sopii täydellisesti tähän tarpeeseen, jolloin sovellukset voivat laskea mittareita. AWS tarjoaa työkaluja, kuten SQS, Lambda, Timestream ja Quicksight, jotka toimivat saumattomasti yhdessä tämän alustan rakentamiseksi.
Reaaliaikaisen analytiikkaalustan rakentamiseen liittyy kolme pääosaa
Visualisointi ja kyselyt : Mukautetut hallintapaneelit tai Quicksight voidaan integroida Timestreamiin visualisointia ja oivalluksia varten
Alla oleva kaavio näyttää analytiikkaalustan arkkitehtuurin
Amazon Timestream , AWS:n aikasarjatietokanta, on suunniteltu vastaamaan suurten tietomäärien tehokkaan käsittelyn ja analysoinnin haasteisiin. Timestream on palvelimeton, skaalautuva ja ihanteellinen sovelluksille, jotka vaativat reaaliaikaista data-analytiikkaa. Sen tärkeimpiä ominaisuuksia ovat:
Pilvimuodostus (CFN) -malli kaikille tarvittaville resursseille löytyy Github Reposta .
Tietojen otto
Palvelut voivat julkaista asiaankuuluvat tapahtumat SQS-jonoon, joka toimii järjestelmän sanomajonona. Luotettavuuden parantamiseksi ensisijaisen SQS-jonon rinnalle on määritetty kuollut kirjainjono (DLQ). Tapahtumat, joita ei voida käsitellä, siirtyvät DLQ:han uudelleenyrityskynnyksen jälkeen. Näitä tapahtumia voidaan lisäksi käyttää virheenkorjaukseen, virheiden käsittelyyn ja tutkimuksiin.
Alla on katkelma CFN-mallista SQS-jonon ja siihen liittyvän DLQ:n luomiseksi:
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
Tietojenkäsittely
AWS Lambda -toiminto on määritetty tietojenkäsittelijäksi, joka vastaa SQS-jonoon julkaistujen tapahtumien käsittelystä. Se työntää tapahtumat mittareina Timestream-tietokantaan käsittelyn jälkeen.
Alla on katkelma Lambdan CFN-mallista ja sen yhdistämisestä SQS:ään:
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'
Data Store
Amazon Timestream toimii ensisijaisena tietovarastona kaikille eri palveluissa luoduille tapahtumille. Kokoonpano sisältää:
Alla on katkelma CFN-mallista Timestream-tietokannan ja taulukon luomiseksi:
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
Visualisointi ja kyselyt
Kysely
Timestream tarjoaa kyselykonsolin, jonka avulla käyttäjät voivat suorittaa kyselyitä taulukkoon, esimerkiksi:
-- 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
Visualisointi
AWS tarjoaa monia valmiita integraatioita (esim. QuickSight , Grafana ) Timestreamin kanssa, mikä tekee analysoinnista, visualisoinnista ja oivalluksista helppoa.
Palvelut voivat julkaista tapahtuman seuraavassa muodossa SQS:lle, joka käynnistää koko käsittelykulun:
{ "order_id": "test-order-1", "customer_id": "test-customer-1", "event_type": "order_success", "metric_value": 1 }
Tämä arkkitehtuuri tarjoaa yksinkertaisen ja tehokkaan tavan rakentaa skaalautuva ja luotettava analytiikka-alusta. Muitakin vaihtoehtoja on erityistarpeiden mukaan, mukaan lukien AWS Kinesis Streams tapahtumakäsittelyyn, Prometheus tietovarastoon ja S3+Athena eräkäsittelyyn ja analytiikkaan.