Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。
クエリ
Timestream for LiveAnalytics を使用すると、DevOps のメトリクス、IoT アプリケーションのセンサーデータ、機器メンテナンス用の産業用テレメトリデータ、その他多くのユースケースを簡単に保存および分析できます。Timestream for LiveAnalytics の専用アダプティブクエリエンジンを使用すると、単一の SQL ステートメントを使用してストレージ階層間でデータにアクセスできます。データの場所の指定なしで、ストレージ階層間で透過的にデータにアクセスして組み合わせが行われます。SQL を使用して Timestream for LiveAnalytics でデータをクエリし、1 つ以上のテーブルから時系列データを取得できます。データベースとテーブルのメタデータ情報にアクセスできます。Timestream for LiveAnalytics SQL は、時系列分析用の組み込み関数もサポートしています。詳細については、「クエリ言語リファレンス」を参照してください。
Timestream for LiveAnalytics は、完全にデカップリングされたデータインジェスト、ストレージ、クエリアーキテクチャを持つように設計されています。各コンポーネントは他のコンポーネントとは独立してスケールできます (アプリケーションのニーズに応じて実質的に無限のスケーラビリティを提供できます)。つまり、アプリケーションが 1 日あたり数百テラバイトのデータを送信したり、少量または大量のデータを処理する数百万のクエリを実行したりしても、Timestream for LiveAnalytics は対応できます。データが時間の経過とともに増加しても、Timestream for LiveAnalytics のクエリレイテンシーはほとんど変化しません。これは、Timestream for LiveAnalytics クエリアーキテクチャが大量の並列処理を活用してより大きなデータボリュームを処理し、アプリケーションのクエリスループットニーズに合わせて自動的にスケールできるためです。
データモデル
Timestream は、フラットモデルと時系列モデルの 2 つのデータモデルをクエリでサポートしています。
注記
Timestream のデータはフラットモデルを使用して保存されます。フラットモデルはデータをクエリするためのデフォルトモデルです。時系列モデルはクエリと時間の組み合わせに基づく概念であり、時系列分析に使用されます。
フラットモデル
フラットモデルは、クエリ用の Timestream のデフォルトデータモデルです。時系列データをテーブル形式で表します。ディメンション名、時間、メジャー名、メジャー値は列として表示されます。テーブルの各行は、時系列内の特定の時刻における測定に対応するアトミックデータポイントです。Timestream データベース、テーブル、列には、いくつかの命名に関する制約があります。それらについては、「サービス制限」で説明されています。
以下の表は、データが単一メジャーレコードとして送信されたときに、Timestream が EC2 インスタンスの CPU 使用率、メモリ使用率、ネットワークアクティビティを表すデータを保存するプロセスの例を示しています。この場合、ディメンションは EC2 インスタンスのリージョン、アベイラビリティーゾーン、仮想プライベートクラウド、インスタンス ID です。メジャーは、EC2 インスタンスの CPU 使用率、メモリ使用率、および受信ネットワークデータです。region、az、vpc、instance_id 列にはディメンション値が含まれています。time 列には、各レコードのタイムスタンプが含まれます。measure_name 列には、cpu-utilization、memory_utilization、network_bytes_in で表されるメジャーの名前が含まれます。measure_value::double 列には、倍精度浮動小数点数として出力される測定値 (CPU 使用率やメモリ使用率など) が含まれます。measure_value::bigint 列には、受信ネットワークデータなどの整数として出力される測定値が含まれます。
| 時間 | region | az | vpc | instance_id | measure_name | measure_value::double | measure_value::bigint |
|---|---|---|---|---|---|---|---|
|
2019-12-04 19:00:00.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
cpu_utilization |
35.0 |
null |
|
2019-12-04 19:00:01.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
cpu_utilization |
38.2 |
null |
|
2019-12-04 19:00:02.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
cpu_utilization |
45.3 |
null |
|
2019-12-04 19:00:00.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
memory_utilization |
54.9 |
null |
|
2019-12-04 19:00:01.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
memory_utilization |
42.6 |
null |
|
2019-12-04 19:00:02.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
memory_utilization |
33.3 |
null |
|
2019-12-04 19:00:00.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
network_bytes |
34,400 |
null |
|
2019-12-04 19:00:01.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
network_bytes |
1,500 |
null |
|
2019-12-04 19:00:02.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
network_bytes |
6,000 |
null |
以下の表は、データがマルチメジャーレコードとして送信されたときに、Timestream が EC2 インスタンスの CPU 使用率、メモリ使用率、ネットワークアクティビティを表すデータを保存するプロセスの例を示しています。
| 時間 | region | az | vpc | instance_id | measure_name | cpu_utilization | memory_utilization | network_bytes |
|---|---|---|---|---|---|---|---|---|
|
2019-12-04 19:00:00.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
メトリクス |
35.0 |
54.9 |
34,400 |
|
2019-12-04 19:00:01.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
メトリクス |
38.2 |
42.6 |
1,500 |
|
2019-12-04 19:00:02.000000000 |
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
メトリクス |
45.3 |
33.3 |
6,600 |
時系列モデル
時系列モデルは、時系列分析に使用されるクエリ時間コンストラクトです。これは、(時間、メジャー値) ペアの順序付けられたシーケンスとしてデータを表します。Timestream は、補間などの時系列関数をサポートしているため、データのギャップを埋めることができます。これらの関数を使用するには、create_time_series などの関数を使用してデータを時系列モデルに変換する必要があります。詳細については、「クエリ言語リファレンス」を参照してください。
EC2 インスタンスの前述の例を使用して、時系列で表される CPU 使用率データを次に示します。
| region | az | vpc | instance_id | cpu_utilization |
|---|---|---|---|---|
|
us-east-1 |
us-east-1d |
vpc-1a2b3c4d |
i-1234567890abcdef0 |
[{time: 2019-12-04 19:00:00.000000000, value: 35}, {time: 2019-12-04 19:00:01.000000000, value: 38.2}, {time: 2019-12-04 19:00:02.000000000, value: 45.3}] |