paint-brush
Como dominar a análise en tempo real con AWS: Timestream e máis alópor@ravilaudya
310 lecturas
310 lecturas

Como dominar a análise en tempo real con AWS: Timestream e máis aló

por Ravi Laudya6m2024/12/04
Read on Terminal Reader

Demasiado longo; Ler

Este artigo explora como construír unha plataforma de análise en tempo real escalable e fiable. Abarca a inxestión, o procesamento, a visualización e a consulta de datos para transformar os datos de eventos en información útil mediante os compoñentes da plataforma AWS SQS, Lambda e Timestream.
featured image - Como dominar a análise en tempo real con AWS: Timestream e máis aló
Ravi Laudya HackerNoon profile picture

No meu último artigo , falamos do crecemento exponencial dos eventos no mundo actual baseado en datos. Con tantas aplicacións, dispositivos intelixentes e máquinas ao noso redor, a cantidade de datos creados é enorme. Tamén exploramos como unha plataforma de orquestración pode axudar a ofrecer estes eventos nas aplicacións correctas. Non obstante, a entrega de eventos pode non ser suficiente para que as empresas teñan un impacto.


Ao analizar estes eventos para comprender o comportamento dos usuarios, as empresas poden servir mellor aos seus clientes tomando decisións máis intelixentes. Unha plataforma de análise en tempo real pode axudar a converter os datos do evento en intelixencia significativa.


Este artigo explora como construír unha plataforma de análise en tempo real usando AWS, avaliando posibles solucións e proporcionando unha guía paso a paso para implementar unha plataforma escalable e fiable. A construción desta plataforma implica tres pasos: inxerir datos, procesar e consultar. As análises en tempo real adoitan centrarse en tendencias e patróns ao longo do tempo, xa sexa o comportamento do usuario ou o rendemento do sistema.


Os datos de series temporais organizan eventos de forma natural en secuencia, o que facilita a análise dos datos de momento en momento. O almacenamento de series temporais aliña perfectamente con esta necesidade, o que permite que as aplicacións calculen as métricas. AWS ofrece ferramentas como SQS, Lambda, Timestream e Quicksight que funcionan á perfección para crear esta plataforma.


Hai tres partes principais implicadas na construción dunha plataforma de análise en tempo real

  • Inxestión de datos : os eventos publicados desde as aplicacións poden fluír a AWS a través de Amazon Kinesis ou directamente a SQS.


  • Procesamento de datos : AWS Lambda pode procesar os datos e escribilos en Timesream.


  • Visualización e consulta : os paneis personalizados ou Quicksight pódense integrar con Timestream para visualización e información


    O seguinte diagrama mostra a arquitectura da plataforma de análise


Análise con AWS Timestream


Timestream

Amazon Timestream , a base de datos de series temporais de AWS, está deseñada para afrontar os retos de procesar e analizar grandes cantidades de datos de forma eficiente. Timestream é sen servidor, escalable e ideal para aplicacións que requiren análise de datos en tempo real. As súas características principais inclúen:


  • Escalado automático : pode procesar billóns de eventos por día, escalando automaticamente para satisfacer a demanda.
  • Rendemento : ofrece un rendemento de consulta ata 1000 veces máis rápido en comparación coas bases de datos relacionais.
  • Sen servidor : está completamente xestionado por AWS, reducindo a sobrecarga.
  • Niveles de almacenamento intelixente : niveis de almacenamento optimizados para datos recentes (en memoria) e históricos (almacenamento magnético).
  • Soporte de consultas SQL : admite consultas SQS para realizar consultas complexas, agregacións e análises de series temporais.
  • Integracións : admite a integración perfecta con outros servizos de AWS.

Implementación

O modelo de formación de nubes (CFN) para todos os recursos necesarios pódese atopar en Github Repo .


  • Inxestión de datos

    Os servizos poden publicar eventos relevantes na cola SQS, que serve como cola de mensaxes para o sistema. Para mellorar a fiabilidade, configúrase unha cola de cartas mortas (DLQ) xunto coa cola SQS principal. Os eventos que non se procesan van a DLQ despois do limiar de reintento. Estes eventos tamén se poden usar para depurar, xestionar fallos e investigacións.


    A continuación móstrase un fragmento do modelo CFN para crear a cola SQS e o seu DLQ asociado:


     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


  • Tratamento de datos

    A función AWS Lambda está configurada como procesador de datos, responsable de xestionar e procesar os eventos publicados na cola SQS. Envía os eventos como métricas á base de datos Timestream despois do procesamento.


    A continuación móstrase un fragmento do modelo CFN para Lambda e a súa asignación a 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'


  • Almacén de datos

    Amazon Timestream serve como almacén de datos principal para todos os eventos xerados en varios servizos. A configuración inclúe:

    • Base de datos : actúa como un contenedor lóxico para unha ou máis táboas
    • Táboa : dentro da base de datos, as táboas almacenan os datos reais das métricas


Abaixo amósase o fragmento do modelo CFN para crear a base de datos Timestream e a táboa:

 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


  • Visualización e consulta

    • Consulta

      Timestream ofrece unha consola de consultas que permite aos usuarios realizar consultas na táboa, por exemplo:

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


    • Visualización

      AWS ofrece moitas integracións listas para usar (por exemplo, QuickSight , Grafana ) con Timestream, o que facilita a análise, visualización e obtención de información.

Proba

Os servizos poden publicar o evento no seguinte formato en SQS que desencadea todo o fluxo de procesamento:

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


Conclusión

Esta arquitectura ofrece un xeito sinxelo e eficiente de construír unha plataforma de análise escalable e fiable. Existen outras alternativas dependendo das necesidades específicas, incluíndo AWS Kinesis Streams para o procesamento de eventos, Prometheus para un almacén de datos e S3+Athena para o procesamento e análise por lotes.

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

Etiquetas colgantes

ESTE ARTIGO FOI PRESENTADO EN...