aws:timestream
Table of Contents
Timestream
Example Lambda
import json import boto3 import time from datetime import datetime ''' # Sample Event data { "awsAccountId": "12348765", "actionType": "NewRequest", "status": "Approved" } ''' def get_current_time_year_month(): yearmonth = datetime.now().strftime('%Y-%m') daytime = datetime.now().strftime('%d-%H:%M:%S') return yearmonth, daytime def get_current_time(): return str(int(round(time.time() * 1000))) # this produces an invalid time error from timestream #return datetime.now().strftime('%Y-%m-%d_%H:%M:%S') def lambda_handler(event, context): print("event is", event) DATABASE_NAME='BrownBag-AccessRequests' TABLE_NAME='Requests' client = boto3.client('timestream-write') region_name='eu-west-1' ts_database = DATABASE_NAME #response = client.list_databases() #print("List database:-", response) dimensions = [ {'Name': 'actionType', 'Value': event['actionType']}, {'Name': 'status', 'Value': event['status']}, {'Name': 'account', 'Value': event['awsAccountId']} ] measure1 = { 'Dimensions': dimensions, 'MeasureName': 'Status', 'MeasureValue': event['status'], 'MeasureValueType': 'VARCHAR', 'Time': get_current_time() } records = [measure1] response = client.write_records(DatabaseName=DATABASE_NAME, TableName=TABLE_NAME, Records=records, CommonAttributes={} )
Schema
DESCRIBE "BrownBag-AccessRequests"."Requests"
Column | Type | Timestream attribute type |
---|---|---|
actionType | varchar | DIMENSION |
account | varchar | DIMENSION |
status | varchar | DIMENSION |
measure_name | varchar | MEASURE_NAME |
time | timestamp | TIMESTAMP |
measure_value::varchar | varchar | MEASURE_VALUE |
Example Query
SHOW DATABASES SELECT * FROM "BrownBag-AccessRequests"."Requests" SELECT * FROM "BrownBag-AccessRequests"."Requests" WHERE TIME BETWEEN ago(15m) AND now() ORDER BY TIME DESC LIMIT 10
Sample Data
aws/timestream.txt · Last modified: by 127.0.0.1