timestream-query
- class moto.timestreamquery.models.TimestreamQueryBackend(region_name: str, account_id: str)
Implementation of TimestreamQuery APIs.
Implemented features for this service
[ ] cancel_query
[X] create_scheduled_query
[X] delete_scheduled_query
[ ] describe_account_settings
[X] describe_endpoints
[X] describe_scheduled_query
[ ] execute_scheduled_query
[ ] list_scheduled_queries
[ ] list_tags_for_resource
[ ] prepare_query
[X] query
Moto does not have a builtin time-series Database, so calling this endpoint will return zero results by default.
You can use a dedicated API to configuring a queue of expected results.
An example invocation looks like this:
first_result = {
'QueryId': 'some_id',
'Rows': [...],
'ColumnInfo': [...],
'QueryStatus': ...
}
result_for_unknown_query_string = {
'QueryId': 'unknown',
'Rows': [...],
'ColumnInfo': [...],
'QueryStatus': ...
}
expected_results = {
"account_id": "123456789012", # This is the default - can be omitted
"region": "us-east-1", # This is the default - can be omitted
"results": {
# Use the exact querystring, and a list of results for it
# For example
"SELECT data FROM mytable": [first_result, ...],
# Use None if the exact querystring is unknown/irrelevant
None: [result_for_unknown_query_string, ...],
}
}
requests.post(
"http://motoapi.amazonaws.com/moto-api/static/timestream/query-results",
json=expected_results,
)
When calling query(QueryString=’SELECT data FROM mytable’), the first_result will be returned. Call the query again for the second result, and so on.
If you don’t know the exact query strings, use the None-key. In the above example, when calling SELECT something FROM unknown, there are no results for that specific query, so result_for_unknown_query_string will be returned.
Results for unknown queries are cached, so calling SELECT something FROM unknown will return the same result.
[ ] tag_resource
[ ] untag_resource
[ ] update_account_settings
[X] update_scheduled_query