有关与适用于 LiveAnalytics 的 Amazon Timestream 类似的功能,可以考虑使用适用于 InfluxDB 的 Amazon Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。
将基表上的查询与计划查询结果的查询进行比较
在此 Timestream 查询示例中,我们使用以下架构、示例查询和输出,对比基表查询与基于计划查询结果的衍生表查询。通过精心策划的计划查询,您可以获得行数更少且具备其他特征的派生表,从而实现比直接查询原始基表更快的查询速度。
有关此场景的视频说明,请参阅使用适用于 LiveAnalytics 的 Amazon Timestream 中的计划查询提升查询性能并降低成本
对于本示例,您可以使用以下场景:
-
区域:us-east-1
-
基表:
"clickstream"."shopping" -
派生表:
"clickstream"."aggregate"
基表
以下描述基表的架构。
| 列 | 类型 | 适用于 LiveAnalytics 的 Timestream 属性类型 |
|---|---|---|
|
渠道 |
varchar |
MULTI |
|
description |
varchar |
MULTI |
|
事件 |
varchar |
维度 |
|
ip_address |
varchar |
维度 |
|
measure_name |
varchar |
MEASURE_NAME |
|
产品 |
varchar |
MULTI |
|
product_id |
varchar |
MULTI |
|
quantity |
double |
MULTI |
|
查询 |
varchar |
MULTI |
|
session_id |
varchar |
维度 |
|
user_group |
varchar |
维度 |
|
user_id |
varchar |
维度 |
以下描述基表的度量。基表是指在 Timestream 中运行计划查询的表。
-
measure_name:
metrics -
数据:多
-
维度
[ ( user_group, varchar ),( user_id, varchar ),( session_id, varchar ),( ip_address, varchar ),( event, varchar ) ]
对基表进行查询
以下是临时查询,用于在给定时间范围内按 5 分钟聚合时间收集计数。
SELECT BIN(time, 5m) as time, channel, product_id, SUM(quantity) as product_quantity FROM "clickstream"."shopping" WHERE BIN(time, 5m) BETWEEN '2023-05-11 10:10:00.000000000' AND '2023-05-11 10:30:00.000000000' AND channel = 'Social media' and product_id = '431412' GROUP BY BIN(time, 5m),channel,product_id
输出:
duration:1.745 sec Bytes scanned: 29.89 MB Query Id: AEBQEANMHG7MHHBHCKJ3BSOE3QUGIDBGWCCP5I6J6YUW5CVJZ2M3JCJ27QRMM7A Row count:5
计划查询
以下是每 5 分钟运行一次的计划查询。
SELECT BIN(time, 5m) as time, channel as measure_name, product_id, product, SUM(quantity) as product_quantity FROM "clickstream"."shopping" WHERE time BETWEEN BIN(@scheduled_runtime, 5m) - 10m AND BIN(@scheduled_runtime, 5m) - 5m AND channel = 'Social media' GROUP BY BIN(time, 5m), channel, product_id, product
对派生表进行查询
以下是对派生表的临时查询。派生表是指包含计划查询结果的 Timestream 表。
SELECT time, measure_name, product_id,product_quantity FROM "clickstream"."aggregate" WHERE time BETWEEN '2023-05-11 10:10:00.000000000' AND '2023-05-11 10:30:00.000000000' AND measure_name = 'Social media' and product_id = '431412'
输出:
duration: 0.2960 sec Bytes scanned: 235.00 B QueryID: AEBQEANMHHAAQU4FFTT6CFM6UYXTL4SMLZV22MFP4KV2Z7IRVOPLOMLDD6BR33Q Row count: 5
比较
以下是对基表查询结果与派生表查询结果的比较。对通过计划查询完成聚合结果的派生表执行相同查询时,其完成速度更快且扫描字节数更少。
这些结果表明,使用计划查询聚合数据以加快查询速度具有重要价值。
| 对基表进行查询 | 对派生表进行查询 | |
|---|---|---|
|
持续时间 |
1.745 秒 |
0.2960 秒 |
|
扫描的字节数 |
29.89MB |
235 字节 |
|
行数 |
5 |
5 |