paint-brush
Kuinka hallita reaaliaikaista analytiikkaa AWS:n avulla: Timestream and Beyondkirjoittaja@ravilaudya
512 lukemat
512 lukemat

Kuinka hallita reaaliaikaista analytiikkaa AWS:n avulla: Timestream and Beyond

kirjoittaja Ravi Laudya6m2024/12/04
Read on Terminal Reader

Liian pitkä; Lukea

Tässä artikkelissa tutkitaan, miten skaalautuva ja luotettava reaaliaikainen analytiikka-alusta voidaan rakentaa. Se kattaa tietojen keräämisen, käsittelyn, visualisoinnin ja kyselyn tapahtumatietojen muuntamiseksi käyttökelpoisiksi oivalluksiksi käyttämällä AWS-alustan komponentteja SQS, Lambda ja Timestream.
featured image - Kuinka hallita reaaliaikaista analytiikkaa AWS:n avulla: Timestream and Beyond
Ravi Laudya HackerNoon profile picture

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

  • Tietojen käsittely : Sovelluksista julkaistut tapahtumat voivat virrata AWS:ään Amazon Kinesiksen kautta tai suoraan SQS:ään.


  • Tietojen käsittely : AWS Lambda voi käsitellä tiedot ja kirjoittaa ne Timesreamiin.


  • Visualisointi ja kyselyt : Mukautetut hallintapaneelit tai Quicksight voidaan integroida Timestreamiin visualisointia ja oivalluksia varten


    Alla oleva kaavio näyttää analytiikkaalustan arkkitehtuurin


Analyysi AWS Timestreamilla


Aikavirta

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:


  • Automaattinen skaalaus : Se voi käsitellä biljoonia tapahtumia päivässä ja skaalata automaattisesti kysynnän mukaan.
  • Suorituskyky : Se tarjoaa jopa 1000 kertaa nopeamman kyselyn relaatiotietokantoihin verrattuna.
  • Palvelimeton : Sitä hallitsee täysin AWS, mikä vähentää yleiskustannuksia.
  • Älykkäät tallennustasot : Optimoidut tallennustasot viimeaikaisille (muistissa) ja historiallisille (magneettinen tallennus) tiedoille.
  • SQL-kyselytuki : Se tukee SQS-kyselyitä monimutkaisten kyselyjen, aggregaatioiden ja aikasarjaanalytiikan suorittamiseen.
  • Integraatiot : Se tukee saumatonta integrointia muihin AWS-palveluihin.

Toteutus

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ää:

    • Tietokanta : Toimii loogisena säilönä yhdelle tai useammalle taulukolle
    • Taulukko : Tietokannan sisällä taulukot tallentavat todelliset mittaustiedot


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.

Testaus

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 }


Johtopäätös

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.