デフォルトでは、TimeSeries モデルの時系列データの 時系列 ID は、メトリック名、データソース、およびタグで構成されます。ビジネス要件に基づいてカスタム時系列 ID を指定できます。時系列テーブルでは、時系列データの行は、時系列 ID とタイムスタンプによって一意に識別されます。プライマリキー列としてカスタムデータフィールドを指定して、同じ時系列 ID とタイムスタンプを持つ複数の行を異なる時系列データとともに保存できます。このトピックでは、時系列テーブルのカスタム時系列 ID とプライマリキー列としてカスタムデータフィールドを指定する方法について説明します。
注意事項
中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口) の各リージョンでは、時系列テーブルのカスタム時系列 ID とプライマリキー列としてカスタムデータフィールドを指定できます。時系列テーブルのカスタム時系列 ID とプライマリキー列としてカスタムデータフィールドを指定するには、上記のいずれかのリージョンに TimeSeries モデルのインスタンスを作成します。
シナリオ
カスタム時系列 ID を指定する
正確な時間位置特定、範囲クエリ、トレンド分析、イベント関連付けが必要なシナリオでは、カスタム時系列 ID を指定できます。以下の項目では、シナリオについて説明します。
トラブルシューティングと根本原因分析
IT O&M および産業機器の監視では、カスタム時系列 ID は障害が発生した時間を正確にマークするのに役立ちます。他の時系列データ (デバイスの状態やログ情報など) と組み合わせることで、カスタム時系列 ID は根本原因分析の問題の原因を迅速に特定するのに役立ちます。
ユーザー行動分析
インターネット アプリケーションでは、カスタム時系列 ID により、ユーザーのログイン時間、ページビュー時間、操作シーケンスを記録することで、ユーザーのアクティブ期間、セッション時間、行動パスの分析が可能になります。このデータドリブン アプローチは、ユーザーエクスペリエンスの最適化とインテリジェントなコンテンツ推奨を促進します。
金融取引の監査
金融セクターでは、各トランザクションに正確なタイムスタンプが必要です。カスタム時系列 ID は、トランザクションのシーケンスと整合性を確保するだけでなく、異常なトランザクション パターンの特定や資金フローの追跡などの不正防止分析にも使用されます。
カスタム時系列 ID を指定することで、時系列データを柔軟にグループ化、フィルタリング、分析できるため、さまざまなビジネス シナリオ全体で詳細な管理とより深い洞察が可能になります。
時系列データのサンプル
次の表は、産業機器の温度と湿度を監視するための時系列データのサンプルを示しています。
measurement、data_source、area、_tags 列はカスタム時系列 ID のフィールドで、それぞれメトリック名、データソース、リージョン、タグを格納します。
_time 列には、タイムスタンプが格納されます。
temperature 列と humidity 列には、それぞれ温度と湿度が格納されます。
measurement | data_source | area | _tags | _time | temperature | humidity |
temperature | sensorA001 | production | ["sensor_type=typeA", "sensor_version=1.0"] | 1712476514000000 | 24.5 | |
temperature | sensorA002 | production | ["sensor_type=typeA", "sensor_version=1.0"] | 1712476524000000 | 24.5 | |
temperature | sensorA002 | maintenance | ["sensor_type=typeA", "sensor_version=1.1"] | 1712476534000000 | 23.0 | |
humidity | sensorB001 | production | ["sensor_type=typeB", "sensor_version=1.0"] | 1712476514000000 | 0.55 | |
humidity | sensorB001 | maintenance | ["sensor_type=typeB", "sensor_version=1.0"] | 1712476524000000 | 0.50 |
プライマリキー列としてカスタムデータフィールドを指定する
同じ時系列 ID とタイムスタンプを持つ時系列データの複数の行を保存する場合、時系列テーブルのプライマリキー列としてカスタムデータフィールドを指定できます。以下の項目では、シナリオについて説明します。
イベント関連付け分析
複雑な分析シナリオでは、時系列 ID 以外のデータフィールドに基づいて時系列データを関連付けることができます。プライマリキー列としてカスタムデータフィールドを指定することで、特定のタイムスタンプにおける特定のデバイスのデータを迅速に特定できます。このアプローチは、トラブルシューティングと行動分析に適しています。
多次元インデックス
時系列データベースの高度なアプリケーションでは、データに対して多次元クエリとフィルタリングを実行する場合、プライマリキー列としてカスタムデータフィールドを指定することで、クエリの効率を向上させることができます。このアプローチにより、特に大量のデータを処理する場合に、関連する時系列データをより正確に特定できます。
マルチテナント時系列データ管理
複数の顧客に時系列データ ストレージ サービスを提供する場合、時系列テーブルのプライマリキー列の 1 つとしてテナント ID を指定して、タイムスタンプと複合プライマリキーを形成できます。このアプローチにより、データの隔離と異なるテナントへの効率的なアクセスが保証されます。
時系列データのサンプル
サーバーの CPU 使用率を監視する場合、時系列 ID を使用して各サーバーを特定する必要がありますが、各サーバーには複数のコアがあります。この場合、コア ID をプライマリキー列として指定できます。次の表は、時系列データのサンプルを示しています。
_m_name、_data_source、_tags 列はカスタム時系列 ID のフィールドで、それぞれメトリック名、データソース、タグを格納します。
_time 列には、タイムスタンプが格納されます。
processor 列には、サーバー コア ID が格納されます。このデータフィールドは、プライマリキー列として指定されています。
cpu_usage 列には、CPU 使用率が格納されます。
_m_name | _data_source | _tags | _time | processor | cpu_usage |
cpu | host_1 | ["region=hangzhou"] | 1712476524000000 | 0 | 10.0 |
cpu | host_1 | ["region=hangzhou"] | 1712476524000000 | 1 | 10.0 |
cpu | host_1 | ["region=hangzhou"] | 1712476524000000 | 2 | 10.0 |
方法
Tablestore コンソールで、または Tablestore SDK を使用して、時系列テーブルのカスタム時系列 ID とプライマリキー列としてカスタムデータフィールドを指定できます。
時系列テーブルのカスタム時系列 ID とプライマリキー列としてカスタムデータフィールドを指定する前に、以下の準備が完了していることを確認してください。
Alibaba Cloud アカウントまたは Tablestore 操作権限を持つ RAM (Resource Access Management) ユーザーが作成されていること。RAM ユーザーに Tablestore 操作権限を付与する方法については、「RAM ポリシーを使用して RAM ユーザーに権限を付与する」をご参照ください。
Tablestore SDK を使用する際に AccessKey ペアがない場合は、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを作成する必要があります。詳細については、「AccessKey ペアを作成する」をご参照ください。
警告Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、すべてのリソースのセキュリティが危険にさらされます。アカウントのセキュリティを確保するため、RAM ユーザーの AccessKey ペアを使用し、Alibaba Cloud アカウントの AccessKey ペアを作成および使用しないことをお勧めします。
TimeSeries モデルのインスタンスが作成されていること。詳細については、「TimeSeries モデルのインスタンスを作成する」をご参照ください。
重要時系列テーブルのカスタム時系列 ID とプライマリキー列としてカスタムデータフィールドを指定するには、中国 (杭州)、中国 (上海)、中国 (北京)、または中国 (張家口) リージョンに TimeSeries モデルのインスタンスを作成する必要があります。
Tablestore SDK を使用する場合は、TimeseriesClient が初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。
カスタム時系列 ID を指定する
デフォルトでは、TimeSeries モデルの時系列データの 時系列 ID は、メトリック名、データソース、およびタグで構成されます。時系列テーブルでは、これらの 時系列 ID は _m_name、_data_source、_tags フィールドに対応します。タグは、String 型の複数のキーと値のペアで構成されます。
時系列 ID のデフォルトのフィールド名がビジネス要件を満たしていない場合は、カスタム時系列 ID を指定して実際のアプリケーション シナリオにより適合させ、データ処理と分析の直感性と効率性を向上させることができます。たとえば、サーバーの CPU 使用率を監視する場合、時系列 ID を使用して各 CPU コアを特定できます。カスタム時系列 ID を指定した後も、データ操作に 時系列 ID のデフォルト名を使用できます。
時系列テーブルを作成するときに、カスタム時系列 ID を指定する必要があります。その後、カスタム時系列 ID に基づいて時系列テーブルにデータを書き込むことができます。具体的なプロセスは次のとおりです。
Tablestore コンソールの使用
時系列テーブルを作成する際に、カスタム時系列 ID を指定します。詳細については、「時系列テーブルの操作」をご参照ください。
カスタム時系列 ID に基づいて時系列テーブルにデータを書き込みます。
時系列テーブルにデータを書き込む場合、クライアントのカスタム時系列 ID のフィールドは、キーと値のペアとして Tablestore サーバーに渡されます。Tablestore サーバーは、まずキーと値のペアからメトリック名とデータソースを抽出し、残りのキーと値のペアを時系列のタグとして使用します。詳細については、「時系列データを書き込む」をご参照ください。
重要時系列テーブルを作成するときにカスタム時系列 ID のフィールドに _tags フィールドが含まれていない場合でも、時系列データを書き込むときにメトリック名、データソース、カスタムフィールドを除くキーと値のペアが残っている場合、データの書き込みは失敗します。
時系列テーブルからデータを読み取ります。
時系列テーブルの SQL マッピングテーブルを作成します。詳細については、「時系列テーブルの複数値モデルでマッピングテーブルを作成する」をご参照ください。
[時系列テーブルの管理] ページで、[SQL 文を実行してクエリを実行] タブをクリックします。
[SQL 文を実行してクエリを実行] タブの左側で、TimeSeries モデルのインスタンス名の横にある + アイコンをクリックします。
[マッピングテーブルの作成] ダイアログボックスで、パラメータを構成します。次の表にパラメータを示します。
パラメータ
説明
テーブル名
時系列テーブルの名前。
マッピングテーブル名
マッピングテーブルの名前。
説明時系列テーブルの SQL マッピングテーブルを作成すると、システムは自動的にプレフィックス
時系列テーブル名::をマッピングテーブル名に追加します。分析ストアを有効にする
分析ストア機能は、長期間にわたって時系列データを保存し、時系列データを分析するシナリオで使用されます。分析ストア機能を使用すると、時系列データを低コストで保存し、時系列データを効率的にクエリおよび分析できます。詳細については、「 時系列の分析ストア」をご参照ください。
デフォルトでは、[分析ストアを有効にする] はオフになっています。ビジネス要件に基づいてパラメータを構成します。
分析ストアを使用して時系列データを保存および分析しない場合は、[分析ストアを有効にする] パラメータのデフォルト設定を保持します。
時系列データを低コストで保存するか、時系列データを効率的にクエリおよび分析する場合は、分析ストアが作成され、[分析ストアを有効にする] がオンになっていることを確認します。
重要分析ストア機能は、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口) の各リージョンでサポートされています。分析ストア機能を使用するには、上記のいずれかのリージョンに TimeSeries モデルのインスタンスを作成します。詳細については、「TimeSeries モデルのインスタンスを作成する」をご参照ください。
[分析ストアを有効にする] がオンになっているマッピングテーブルを作成する場合、分析ストアを削除するときに、マッピングテーブルも同時に削除する必要があります。そうしないと、分析ストアを削除できません。
[SQL 文を生成] をクリックします。システムは、マッピングテーブルを作成するための SQL 文を自動的に生成します。
カスタム時系列 ID を指定した後、SQL マッピングテーブルを作成する際に、時系列テーブルのプライマリキー列として使用されるカスタム時系列 ID とカスタムデータフィールドを SQL マッピングテーブルのプライマリキー列として指定します。
[SQL 文を実行 (F8)] をクリックします。
SELECT 文を実行してデータをクエリします。詳細については、「データをクエリする」をご参照ください。
コンソールの SQL エディターに SQL 文を入力し、[SQL 文を実行 (F8)] をクリックします。
次の SQL 文のサンプルは、
cpu::ts1という名前のマッピングテーブルを使用して、時系列テーブルで cpu_usage の値が 90.0 を超える時系列の情報をクエリする方法の例を示しています。SELECT `host`, `processor`, `_tags` , `_time` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
Tablestore SDK の使用
Tablestore SDK for Java V5.17.1 以降、最新バージョンの Tablestore SDK for Go、または Tablestore SDK for Python V6.1.0 以降を使用して、カスタム時系列識別子を指定できます。カスタム時系列識別子を指定する場合は、必ず正しいバージョンの Tablestore SDK を使用してください。
カスタム時系列識別子に基づいて時系列データを書き込む場合、メトリック名またはデータソースを追加したくない場合は、対応するフィールドを空のままにします。
この例では、Tablestore SDK for Java を使用します。
時系列テーブルを作成する場合は、カスタム時系列識別子を指定します。
次のサンプルコードは、分析ストアのない時系列テーブルを作成し、カスタム時系列識別子を指定する方法の例を示しています。
private static void createTimeseriesTable(TimeseriesClient client) { TimeseriesTableMeta timeseriesTableMeta = new TimeseriesTableMeta(""); timeseriesTableMeta.setTimeseriesTableOptions(new TimeseriesTableOptions(-1)); // カスタム時系列識別子を指定します。host フィールドにはメトリック名、processor フィールドにはデータソース、_tags フィールドにはタグが格納されます。 timeseriesTableMeta.addTimeseriesKey("host"); timeseriesTableMeta.addTimeseriesKey("processor"); timeseriesTableMeta.addTimeseriesKey("_tags"); CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(timeseriesTableMeta); request.setEnableAnalyticalStore(false); client.createTimeseriesTable(request); }カスタム時系列識別子に基づいて、時系列テーブルにデータを書き込みます。
時系列テーブルにデータを書き込む場合、クライアントのカスタム時系列識別子のフィールドは、キーと値のペアとして Tablestore サーバーに渡されます。 Tablestore サーバーは、まずキーと値のペアからメトリック名とデータソースを抽出し、残りのキーと値のペアを時系列のタグとして使用します。
重要時系列テーブルを作成するときに、カスタム時系列識別子のフィールドに _tags フィールドが含まれていない場合でも、時系列データを書き込むときに、キーと値のペアからメトリック名、データソース、およびカスタムフィールドを除外した後にキーと値のペアが残っている場合、データの書き込みは失敗します。
次のサンプルコードは、カスタム時系列識別子に基づいて、3 行の時系列データを時系列テーブルに書き込む方法の例を示しています。
private static void putTimeseriesData(TimeseriesClient client) { long timeInUs = System.currentTimeMillis() * 1000; List rows = new ArrayList(); for (int i = 0; i < 3; i++) { Map tags = new HashMap<>(); // カスタム時系列識別子のフィールドを追加します。 tags.put("host", "host_" + i); tags.put("processor", String.valueOf(i)); // カスタム時系列識別子に対応しないキーと値のペアは、時系列のタグとして使用されます。 tags.put("region", "hangzhou"); TimeseriesKey timeseriesKey = new TimeseriesKey("", "", tags); TimeseriesRow row = new TimeseriesRow(timeseriesKey, timeInUs); row.addField("cpu_usage", ColumnValue.fromDouble(10.0)); row.addField("cpu_sys", ColumnValue.fromDouble(5.0)); rows.add(row); } String tableName = ""; PutTimeseriesDataRequest putTimeseriesDataRequest = new PutTimeseriesDataRequest(tableName); putTimeseriesDataRequest.setRows(rows); client.putTimeseriesData(putTimeseriesDataRequest); }次の表は、データが正常に書き込まれた後の時系列テーブル内の時系列データを示しています。
host
processor
_tags
_time
cpu_usage
cpu_sys
host_0
0
["region=hangzhou"]
1712476524000000
10.0
5.0
host_1
1
["region=hangzhou"]
1712476524000000
10.0
5.0
host_2
2
["region=hangzhou"]
1712476524000000
10.0
5.0
SQL 文を実行して、時系列テーブルからデータを読み取ります。
時系列テーブルの SQL マッピングテーブルを作成します。詳細については、「時系列テーブルの複数値モデルでマッピングテーブルを作成する」をご参照ください。
カスタム時系列識別子を指定した後、SQL マッピングテーブルを作成する場合は、カスタム時系列識別子のフィールドとタイムスタンプフィールドを SQL マッピングテーブルのプライマリキー列として指定します。
構成例:
CREATE TABLE `cpu::ts1` ( `host` VARCHAR(1024), `processor` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `cpu_usage` DOUBLE, `cpu_sys` DOUBLE, PRIMARY KEY(`host`,`processor`,`_tags`,`_time`) );SELECT 文を実行してデータをクエリします。詳細については、「データをクエリする」をご参照ください。
次の SQL 文の例は、
cpu::ts1という名前のマッピングテーブルを使用して、時系列テーブル内で cpu_usage 値が 90.0 を超える時系列の情報をクエリする方法を示しています。SELECT `host`, `processor`, `_tags` , `_time` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
カスタムデータフィールドをプライマリキー列として指定する
時系列テーブルでは、時系列データの行は、時系列識別子とタイムスタンプによって一意に識別されます。これは、時系列データの2つの行が同じ時系列識別子とタイムスタンプを持つことができないことを意味します。
同じ時系列識別子とタイムスタンプを持つ時系列データの複数の行を保存する場合、カスタムデータフィールドを時系列テーブルのプライマリキー列として指定できます。たとえば、サーバーの CPU 使用率を監視する場合、時系列識別子を使用して各サーバーを特定する必要がありますが、各サーバーには複数のコアがあります。この場合、コア ID をプライマリキー列として指定できます。
時系列テーブルを作成するときに、最初にカスタムデータフィールドを時系列テーブルのプライマリキー列として指定する必要があります。次に、時系列テーブルにデータを書き込むときに、プライマリキー列として指定されたデータフィールドの値を指定する必要があります。具体的なプロセスは次のとおりです。
Tablestore コンソールを使用する
時系列テーブルを作成するときに、カスタムデータフィールドを時系列テーブルのプライマリキー列として指定します。詳細については、「時系列テーブルの操作」をご参照ください。
時系列テーブルに時系列データを書き込みます。
時系列テーブルにデータを書き込む場合、プライマリキー列として指定されたデータフィールドを空にすることはできません。カスタムデータフィールドをプライマリキー列として指定することで、同じ時系列識別子とタイムスタンプを持つ時系列データの複数の行を保存できます。詳細については、「時系列データの書き込み」をご参照ください。
時系列テーブルからデータを読み取ります。
時系列テーブルの SQL マッピングテーブルを作成します。詳細については、「時系列テーブルの複数値モデルでマッピングテーブルを作成する」をご参照ください。
[時系列テーブルの管理] ページで、[SQL 文を実行してクエリを実行する] タブをクリックします。
[SQL 文を実行してクエリを実行する] タブの左側で、TimeSeries モデルのインスタンス名の横にある + アイコンをクリックします。
[マッピングテーブルの作成] ダイアログボックスで、パラメーターを構成します。次の表にパラメーターを示します。
パラメーター
説明
テーブル名
時系列テーブルの名前。
マッピングテーブル名
マッピングテーブルの名前。
説明時系列テーブルの SQL マッピングテーブルを作成すると、システムはマッピングテーブル名にプレフィックス
time series table name::を自動的に追加します。分析ストアを有効にする
分析ストア機能は、長期間にわたって時系列データを保存し、時系列データを分析するシナリオで使用されます。分析ストア機能を使用すると、低コストで時系列データを保存し、時系列データを効率的にクエリおよび分析できます。詳細については、「 時系列の分析ストア」をご参照ください。
デフォルトでは、[分析ストアを有効にする] はオフになっています。ビジネス要件に基づいてパラメーターを構成します。
分析ストアを使用して時系列データを保存および分析しない場合は、[分析ストアを有効にする] パラメーターのデフォルト設定を保持します。
低コストで時系列データを保存したり、時系列データを効率的にクエリおよび分析したりする場合は、分析ストアが作成され、[分析ストアを有効にする] がオンになっていることを確認します。
重要分析ストア機能は、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口) の各リージョンでサポートされています。分析ストア機能を使用するには、上記のいずれかのリージョンに TimeSeries モデルのインスタンスを作成します。詳細については、「TimeSeries モデルのインスタンスを作成する」をご参照ください。
[分析ストアを有効にする] がオンになっているマッピングテーブルを作成する場合、分析ストアを削除するときに、マッピングテーブルも同時に削除する必要があります。そうしないと、分析ストアを削除できません。
[SQL 文の生成] をクリックします。システムは、マッピングテーブルを作成するための SQL 文を自動的に生成します。
カスタムデータフィールドを時系列テーブルのプライマリキー列として指定した後、SQL マッピングテーブルを作成するときに、時系列テーブルのプライマリキー列として使用される時系列識別子とカスタムデータフィールドを SQL マッピングテーブルのプライマリキー列として指定します。
[SQL 文の実行 (F8)] をクリックします。
SELECT 文を実行してデータをクエリします。詳細については、「データのクエリ」をご参照ください。
コンソールの SQL エディターに SQL 文を入力し、[SQL 文の実行 (F8)] をクリックします。
次の SQL 文の例は、
cpu::ts1という名前のマッピングテーブルを使用して、時系列テーブルで cpu_usage 値が 90.0 を超える時系列の情報をクエリする方法の例を示しています。SELECT `host`, `processor`, `_tags` , `_time` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
Tablestore SDK を使用する
カスタムデータフィールドをプライマリキー列として指定するには、Tablestore SDK for Java V5.17.1 以降、Tablestore SDK for Go の最新バージョン、または Tablestore SDK for Python V6.1.0 以降を使用できます。カスタムデータフィールドをプライマリキー列として指定する場合は、正しいバージョンの Tablestore SDK を使用していることを確認してください。
この例では、Tablestore SDK for Java を使用します。
時系列テーブルを作成するときに、カスタムデータフィールドを時系列テーブルのプライマリキー列として指定します。
次のサンプルコードは、分析ストアなしで時系列テーブルを作成し、カスタムデータフィールドを時系列テーブルのプライマリキー列として指定する方法の例を示しています。
private static void createTimeseriesTable(TimeseriesClient client) { TimeseriesTableMeta timeseriesTableMeta = new TimeseriesTableMeta(""); timeseriesTableMeta.setTimeseriesTableOptions(new TimeseriesTableOptions(-1)); // カスタムデータフィールドをプライマリキー列として指定します。 timeseriesTableMeta.addFieldPrimaryKey("processor", PrimaryKeyType.INTEGER); CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(timeseriesTableMeta); request.setEnableAnalyticalStore(false); client.createTimeseriesTable(request); }時系列テーブルに時系列データを書き込みます。
時系列テーブルにデータを書き込む場合、プライマリキー列として指定されたデータフィールドを空にすることはできません。カスタムデータフィールドをプライマリキー列として指定することで、同じ時系列識別子とタイムスタンプを持つ時系列データの複数の行を保存できます。
次のサンプルコードは、同じ時系列識別子とタイムスタンプを持つ時系列データの3行を時系列テーブルに書き込む方法の例を示しています。
private static void putTimeseriesData(TimeseriesClient client) { long timeInUs = System.currentTimeMillis() * 1000; List rows = new ArrayList(); for (int i = 0; i < 3; i++) { Map tags = new HashMap<>(); tags.put("region", "hangzhou"); TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags); TimeseriesRow row = new TimeseriesRow(timeseriesKey, timeInUs); // プライマリキー列として指定されたデータフィールドを空にすることはできません。 row.addField("processor", ColumnValue.fromLong(i)); row.addField("cpu_usage", ColumnValue.fromDouble(10.0)); row.addField("cpu_sys", ColumnValue.fromDouble(5.0)); rows.add(row); } String tableName = "<TIMESERIES_TABLE_NAME>"; PutTimeseriesDataRequest putTimeseriesDataRequest = new PutTimeseriesDataRequest(tableName); putTimeseriesDataRequest.setRows(rows); client.putTimeseriesData(putTimeseriesDataRequest); }次の表は、データが正常に書き込まれた後の時系列テーブルの時系列データを示しています。
_m_name
_data_source
_tags
_time
processor
cpu_usage
cpu_sys
cpu
host_0
["region=hangzhou"]
1712476524000000
0
10.0
5.0
cpu
host_1
["region=hangzhou"]
1712476524000000
1
10.0
5.0
cpu
host_2
["region=hangzhou"]
1712476524000000
2
10.0
5.0
SQL 文を実行して時系列テーブルからデータを読み取ります。
時系列テーブルの SQL マッピングテーブルを作成します。詳細については、「時系列テーブルの複数値モデルでマッピングテーブルを作成する」をご参照ください。
カスタムデータフィールドを時系列テーブルのプライマリキー列として指定した後、SQL マッピングテーブルを作成するときに、時系列テーブルのプライマリキー列として使用される時系列識別子とカスタムデータフィールドを SQL マッピングテーブルのプライマリキー列として指定します。
設定例:
CREATE TABLE `cpu::ts1` ( `_m_name` VARCHAR(1024), `_data_source` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `processor` BIGINT, `cpu_usage` DOUBLE, `cpu_sys` DOUBLE, PRIMARY KEY(`_m_name`,`_data_source`,`_tags`,`_time`,`processor`) );SELECT 文を実行してデータをクエリします。詳細については、「データのクエリ」をご参照ください。
次の SQL 文の例は、
cpu::ts1という名前のマッピングテーブルを使用して、時系列テーブルで cpu_usage 値が 90.0 を超える時系列の情報をクエリする方法の例を示しています。SELECT `_m_name`, `_data_source`, `_tags` , `_time`, `processor` FROM `cpu::ts1` WHERE cpu_usage > 90.0;