

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、[こちら](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ベーステーブルのクエリとスケジュールされたクエリの結果のクエリを比較する
<a name="scheduledqueries-example4-clickstream"></a>

この Timestream クエリの例では、下記のスキーマ、クエリの例、出力を使用して、ベーステーブルのクエリと、スケジュールされたクエリ結果の派生テーブルのクエリを比較します。スケジュールされたクエリを適切に計画することで、行数の削減などにより、元のベーステーブルよりもクエリを高速化できる可能性がある派生テーブルを使用できます。

このシナリオを説明する動画「[Improve query performance and reduce cost using scheduled queries in Amazon Timestream for LiveAnalytics](https://youtu.be/x8AgLhAydzY)」をご覧ください。

この例では、以下のシナリオを使用します。
+ **リージョン** – us-east-1
+ **ベーステーブル** – `"clickstream"."shopping"`
+ **派生テーブル** – `"clickstream"."aggregate"`

## ベーステーブル
<a name="scheduledqueries-example4-clickstream-base-table"></a>

下の表はベーステーブルのスキーマを示しています。


| 列 | タイプ | Timestream for LiveAnalytics の属性タイプ | 
| --- | --- | --- | 
|  channel  |  varchar  |  MULTI  | 
|  説明  |  varchar  |  MULTI  | 
|  イベント  |  varchar  |  ディメンション  | 
|  ip\$1address  |  varchar  |  ディメンション  | 
|  measure\$1name  |  varchar  |  MEASURE\$1NAME  | 
|  製品  |  varchar  |  MULTI  | 
|  product\$1id  |  varchar  |  MULTI  | 
|  quantity  |  double  |  MULTI  | 
|  query  |  varchar  |  MULTI  | 
|  session\$1id  |  varchar  |  ディメンション  | 
|  user\$1group  |  varchar  |  ディメンション  | 
|  user\$1id  |  varchar  |  ディメンション  | 

以下は、ベーステーブルのメジャーを示しています。*ベーステーブル*とは、スケジュールされたクエリが実行される Timestream のテーブルを指します。
+ **measure\$1name** – `metrics`
+ **data** – multi
+ **ディメンション**:

  ```
  [ ( user_group, varchar ),( user_id, varchar ),( session_id, varchar ),( ip_address, varchar ),( event, varchar ) ]
  ```

## ベーステーブルのクエリ
<a name="scheduledqueries-example4-clickstream-base-table-query"></a>

以下は、特定の時間範囲内における 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
```

## スケジュールされたクエリ
<a name="scheduledqueries-example4-clickstream-scheduled-query"></a>

以下は、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
```

## 派生テーブルのクエリ
<a name="scheduledqueries-example4-clickstream-derived-table"></a>

以下は、派生テーブルのアドホッククエリです。*派生テーブル*とは、スケジュールされたクエリの結果を含む 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
```

## 比較
<a name="scheduledqueries-example4-clickstream-comparison"></a>

以下は、ベーステーブルのクエリと派生テーブルのクエリの結果比較です。同じクエリでは、スケジュールされたクエリを使用して結果が集計される派生テーブルの方が、スキャンされたバイト数が少ないため、早く完了します。

これらの結果は、スケジュールされたクエリを使用してデータを集計し、クエリを高速化することの価値を示しています。


|  | ベーステーブルのクエリ | 派生テーブルのクエリ | 
| --- | --- | --- | 
|  時間  |  1.745 秒  |  0.2960 秒  | 
|  スキャンされたバイト数  |  29.89 MB  |  235 バイト  | 
|  行数  |  5  |  5  | 