paint-brush
Hoe u realtime-analyses onder de knie krijgt met AWS: Timestream en verderdoor@ravilaudya
512 lezingen
512 lezingen

Hoe u realtime-analyses onder de knie krijgt met AWS: Timestream en verder

door Ravi Laudya6m2024/12/04
Read on Terminal Reader

Te lang; Lezen

Dit artikel onderzoekt hoe u een schaalbaar en betrouwbaar realtime-analyseplatform bouwt. Het behandelt data-opname, verwerking, visualisatie en query's om gebeurtenisgegevens om te zetten in bruikbare inzichten met behulp van AWS-platformcomponenten SQS, Lambda en Timestream.
featured image - Hoe u realtime-analyses onder de knie krijgt met AWS: Timestream en verder
Ravi Laudya HackerNoon profile picture

In mijn laatste artikel bespraken we de exponentiële groei van events in de huidige datagedreven wereld. Met zoveel apps, slimme apparaten en machines om ons heen, is de hoeveelheid gecreëerde data enorm. We onderzochten ook hoe een orkestratieplatform kan helpen deze events naar de juiste applicaties te leveren. Het leveren van events is echter mogelijk niet genoeg voor bedrijven om impact te maken.


Door deze gebeurtenissen te analyseren om het gedrag van de gebruikers te begrijpen, kunnen bedrijven hun klanten beter bedienen door slimmere beslissingen te nemen. Een realtime analyseplatform kan helpen de gegevens van de gebeurtenis om te zetten in zinvolle intelligentie.


Dit artikel onderzoekt hoe u een realtime-analyseplatform bouwt met AWS, mogelijke oplossingen evalueert en een stapsgewijze handleiding biedt voor het implementeren van een schaalbaar en betrouwbaar platform. Het bouwen van dit platform omvat drie stappen: gegevens opnemen, verwerken en query's uitvoeren. Realtime-analyse richt zich vaak op trends en patronen in de loop van de tijd - of het nu gaat om gebruikersgedrag of systeemprestaties.


Time-series data organiseert gebeurtenissen op natuurlijke wijze in volgorde, waardoor het eenvoudig is om de data van moment tot moment te analyseren. Time-series storage sluit perfect aan bij deze behoefte, waardoor applicaties de statistieken kunnen berekenen. AWS biedt tools zoals SQS, Lambda, Timestream en Quicksight die naadloos samenwerken om dit platform te bouwen.


Er zijn drie belangrijke onderdelen betrokken bij het bouwen van een realtime-analyseplatform

  • Gegevensopname : De gebeurtenissen die door de applicaties worden gepubliceerd, kunnen via Amazon Kinesis naar AWS stromen of rechtstreeks naar SQS.


  • Gegevensverwerking : AWS Lambda kan de gegevens verwerken en naar Timesream schrijven.


  • Visualisatie en query's : aangepaste dashboards of Quicksight kunnen worden geïntegreerd met Timestream voor visualisatie en inzichten


    Het onderstaande diagram toont de architectuur van het analyseplatform


Analyse met AWS Timestream


Tijdstroom

Amazon Timestream , de time-series database van AWS, is ontworpen om de uitdagingen van het efficiënt verwerken en analyseren van grote hoeveelheden data aan te gaan. Timestream is serverloos, schaalbaar en ideaal voor applicaties die realtime data-analyse vereisen. De belangrijkste functies zijn:


  • Automatisch schalen : Het kan biljoenen gebeurtenissen per dag verwerken en schaalt automatisch om aan de vraag te voldoen.
  • Prestaties : Biedt tot 1000 keer snellere queryprestaties vergeleken met relationele databases.
  • Serverless : wordt volledig beheerd door AWS, waardoor de overheadkosten worden beperkt.
  • Slimme opslaglagen : geoptimaliseerde opslaglagen voor recente (in-memory) en historische (magnetische opslag) gegevens.
  • Ondersteuning voor SQL-query's : ondersteunt SQS-query's voor het uitvoeren van complexe query's, aggregaties en tijdreeksanalyses.
  • Integraties : Ondersteunt naadloze integratie met andere AWS-services.

Uitvoering

De cloudformatie (CFN)-sjabloon voor alle benodigde bronnen is te vinden in Github Repo .


  • Gegevensopname

    Services kunnen relevante gebeurtenissen publiceren naar de SQS-wachtrij, die fungeert als berichtenwachtrij voor het systeem. Om de betrouwbaarheid te verbeteren, wordt een dead-letter-wachtrij (DLQ) geconfigureerd naast de primaire SQS-wachtrij. De gebeurtenissen die niet worden verwerkt, gaan naar DLQ na de drempelwaarde voor opnieuw proberen. Deze gebeurtenissen kunnen verder worden gebruikt voor foutopsporing, het afhandelen van fouten en onderzoeken.


    Hieronder ziet u een fragment van de CFN-sjabloon voor het maken van de SQS-wachtrij en de bijbehorende DLQ:


     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


  • Gegevensverwerking

    De AWS Lambda-functie is geconfigureerd als de gegevensverwerker, verantwoordelijk voor het verwerken en afhandelen van gebeurtenissen die zijn gepubliceerd in de SQS-wachtrij. Het pusht de gebeurtenissen als metrics naar de Timestream-database na de verwerking.


    Hieronder ziet u een fragment van de CFN-sjabloon voor Lambda en de toewijzing ervan aan 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'


  • Gegevensopslag

    Amazon Timestream fungeert als de primaire dataopslag voor alle gebeurtenissen die gegenereerd worden via verschillende services. De setup omvat:

    • Database : fungeert als een logische container voor een of meer tabellen
    • Tabel : Binnen de database slaan tabellen de werkelijke metrische gegevens op


Hieronder ziet u het fragment voor de CFN-sjabloon om de Timestream-database en de tabel te maken:

 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


  • Visualisatie en query's

    • Vraag

      Timestream biedt een queryconsole waarmee gebruikers query's op de tabel kunnen uitvoeren, bijvoorbeeld:

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


    • Visualisatie

      AWS biedt veel kant-en-klare integraties (bijv. QuickSight , Grafana ) met Timestream, waardoor u eenvoudig kunt analyseren, visualiseren en inzichten kunt verkrijgen.

Testen

Services kunnen de gebeurtenis in de volgende indeling naar SQS publiceren, waardoor de volledige verwerkingsstroom wordt geactiveerd:

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


Conclusie

Deze architectuur biedt een eenvoudige en efficiënte manier om een schaalbaar en betrouwbaar analyseplatform te bouwen. Er zijn andere alternatieven, afhankelijk van specifieke behoeften, waaronder AWS Kinesis Streams voor gebeurtenisverwerking, Prometheus voor een gegevensopslag en S3+Athena voor batchverwerking en analyse.

L O A D I N G
. . . comments & more!

About Author

Ravi Laudya HackerNoon profile picture
Ravi Laudya@ravilaudya
Technology expert in software architecture, design, and development utilizing AWS Cloud and AI technologies

LABELS

DIT ARTIKEL WERD GEPRESENTEERD IN...