Acceso a Amazon Timestream para LiveAnalytics mediante la AWS CLI - Amazon Timestream

Para obtener capacidades similares a las de Amazon Timestream para LiveAnalytics, considere Amazon Timestream para InfluxDB. Ofrece una ingesta de datos simplificada y tiempos de respuesta a las consultas en milisegundos de un solo dígito para realizar análisis en tiempo real. Obtenga más información aquí.

Acceso a Amazon Timestream para LiveAnalytics mediante la AWS CLI

Puede usar la AWS Command Line Interface (AWS CLI) para controlar varios servicios de AWS desde la línea de comandos y automatizarlos mediante scripts. Puede usar la AWS CLI para realizar operaciones ad-hoc. También puede usarla para incluir operaciones de Amazon Timestream para LiveAnalytics en scripts de utilidades.

Antes de poder usar la AWS CLI con Timestream para LiveAnalytics, debe configurar el acceso mediante programación. Para obtener más información, consulte Concesión de acceso programático.

Para obtener una lista completa de todos los comandos disponibles para la API Query de Timestream para LiveAnalytics en la AWS CLI, consulte la Referencia de comandos de AWS CLI.

Para obtener una lista completa de todos los comandos disponibles para la API Write de Timestream para LiveAnalytics en la AWS CLI, consulte la Referencia de comandos de AWS CLI.

Descarga y configuración de la AWS CLI

La AWS CLI se ejecuta en Windows, macOS o Linux. Siga estos pasos para descargarla, instalarla y configurarla:

  1. Descargue la AWS CLI en http://aws.amazon.com/cli.

  2. Siga las instrucciones para Instalar la AWS CLI y Configurar la AWS CLI en la Guía del usuario de AWS Command Line Interface

Uso de la AWS CLI con Timestream para LiveAnalytics

El formato de la línea de comandos se compone de un nombre de operación de Amazon Timestream para LiveAnalytics seguido de los parámetros de dicha operación. La AWS CLI admite la sintaxis abreviada de los valores de los parámetros, además de JSON.

Usa help para mostrar todos los comandos disponibles en Timestream para LiveAnalytics. Por ejemplo:

aws timestream-write help
aws timestream-query help

También puede utilizar la help para describir un comando específico y obtener más información sobre su uso:

aws timestream-write create-database help

Por ejemplo, para crear una base de datos:

aws timestream-write create-database --database-name myFirstDatabase

Para crear una tabla con la función de escrituras de almacenamiento magnético habilitada:

aws timestream-write create-table \ --database-name metricsdb \ --table-name metrics \ --magnetic-store-write-properties "{\"EnableMagneticStoreWrites\": true}"

Para escribir datos mediante registros de medida única:

aws timestream-write write-records \ --database-name metricsdb \ --table-name metrics \ --common-attributes "{\"Dimensions\":[{\"Name\":\"asset_id\", \"Value\":\"100\"}], \"Time\":\"1631051324000\",\"TimeUnit\":\"MILLISECONDS\"}" \ --records "[{\"MeasureName\":\"temperature\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"30\"},{\"MeasureName\":\"windspeed\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"7\"},{\"MeasureName\":\"humidity\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"15\"},{\"MeasureName\":\"brightness\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"17\"}]"

Para escribir datos mediante registros de medidas múltiples:

# wide model helper method to create Multi-measure records function ingest_multi_measure_records { epoch=`date +%s` epoch+=$i # multi-measure records aws timestream-write write-records \ --database-name $src_db_wide \ --table-name $src_tbl_wide \ --common-attributes "{\"Dimensions\":[{\"Name\":\"device_id\", \ \"Value\":\"12345678\"},\ {\"Name\":\"device_type\", \"Value\":\"iPhone\"}, \ {\"Name\":\"os_version\", \"Value\":\"14.8\"}, \ {\"Name\":\"region\", \"Value\":\"us-east-1\"} ], \ \"Time\":\"$epoch\",\"TimeUnit\":\"MILLISECONDS\"}" \ --records "[{\"MeasureName\":\"video_metrics\", \"MeasureValueType\":\"MULTI\", \ \"MeasureValues\": \ [{\"Name\":\"video_startup_time\",\"Value\":\"0\",\"Type\":\"BIGINT\"}, \ {\"Name\":\"rebuffering_ratio\",\"Value\":\"0.5\",\"Type\":\"DOUBLE\"}, \ {\"Name\":\"video_playback_failures\",\"Value\":\"0\",\"Type\":\"BIGINT\"}, \ {\"Name\":\"average_frame_rate\",\"Value\":\"0.5\",\"Type\":\"DOUBLE\"}]}]" \ --endpoint-url $ingest_endpoint \ --region $region } # create 5 records for i in {100..105}; do ingest_multi_measure_records $i; done

Para consultar una tabla:

aws timestream-query query \ --query-string "SELECT time, device_id, device_type, os_version, region, video_startup_time, rebuffering_ratio, video_playback_failures, \ average_frame_rate \ FROM metricsdb.metrics \ where time >= ago (15m)"

Para crear una consulta programada:

aws timestream-query create-scheduled-query \ --name scheduled_query_name \ --query-string "select bin(time, 1m) as time, \ avg(measure_value::double) as avg_cpu, min(measure_value::double) as min_cpu, region \ from $src_db.$src_tbl where measure_name = 'cpu' \ and time BETWEEN @scheduled_runtime - (interval '5' minute) AND @scheduled_runtime \ group by region, bin(time, 1m)" \ --schedule-configuration "{\"ScheduleExpression\":\"$cron_exp\"}" \ --notification-configuration "{\"SnsConfiguration\":{\"TopicArn\":\"$sns_topic_arn\"}}" \ --scheduled-query-execution-role-arn "arn:aws:iam::452360119086:role/TimestreamSQExecutionRole" \ --target-configuration "{\"TimestreamConfiguration\":{\ \"DatabaseName\": \"$dest_db\",\ \"TableName\": \"$dest_tbl\",\ \"TimeColumn\":\"time\",\ \"DimensionMappings\":[{\ \"Name\": \"region\", \"DimensionValueType\": \"VARCHAR\" }],\ \"MultiMeasureMappings\":{\ \"TargetMultiMeasureName\": \"mma_name\", \"MultiMeasureAttributeMappings\":[{\ \"SourceColumn\": \"avg_cpu\", \"MeasureValueType\": \"DOUBLE\", \"TargetMultiMeasureAttributeName\": \"target_avg_cpu\" },\ { \ \"SourceColumn\": \"min_cpu\", \"MeasureValueType\": \"DOUBLE\", \"TargetMultiMeasureAttributeName\": \"target_min_cpu\" }] \ }\ }}" \ --error-report-configuration "{\"S3Configuration\": {\ \"BucketName\": \"$s3_err_bucket\",\ \"ObjectKeyPrefix\": \"scherrors\",\ \"EncryptionOption\": \"SSE_S3\"\ }\ }"