すべてのプロダクト
Search
ドキュメントセンター

Tablestore:時系列データの書き込み

最終更新日:Dec 28, 2024

時系列テーブルを作成した後、PutTimeseriesDataオペレーションを呼び出して、複数行の時系列データを一度に時系列テーブルに書き込むことができます。

前提条件

パラメーター

時系列データの行(timeseriesRow)には、時系列識別子(timeseriesKey)と時系列データが含まれます。時系列データには、データポイント(フィールド)とデータポイントの時間(timeInUs)が含まれます。次の表にパラメーターを示します。

パラメーター

説明

timeseriesKey

時系列の識別子。識別子には、次のパラメーターが含まれます。

  • measurementName: 時系列のメジャーメント名。このパラメーターは空のままにすることができます。

  • dataSource: 時系列のデータソース。このパラメーターは空のままにすることができます。

  • tags: 時系列のタグ。タグはSTRING型のキーと値のペアです。

timeInUs

データポイントの時間。単位:マイクロ秒。

fields

名前(FieldKey)とデータ値(FieldValue)の複数のペアで構成されるデータポイント。

次のサンプルコードは、test_timeseries_tableという名前の時系列テーブルに複数行の時系列データを書き込む方法の例を示しています。

private static void putTimeseriesData(TimeseriesClient client) {
    List<TimeseriesRow> rows = new ArrayList<TimeseriesRow>();
    for (int i = 0; i < 10; i++) {
        Map<String, String> tags = new HashMap<String, String>();
        tags.put("region", "hangzhou");
        tags.put("os", "Ubuntu16.04");
        // 時系列のメジャーメント名、データソース、およびタグを指定して、時系列の識別子を構築します。
        TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags);
        // timeseriesKeyパラメーターとtimeInUsパラメーターを指定して、時系列データの行を作成します。
        TimeseriesRow row = new TimeseriesRow(timeseriesKey, System.currentTimeMillis() * 1000 + i);
        // データ値を追加します。
        row.addField("cpu_usage", ColumnValue.fromDouble(10.0));
        row.addField("cpu_sys", ColumnValue.fromDouble(5.0));
        rows.add(row);
    }
    String tableName = "test_timeseries_table";
    PutTimeseriesDataRequest putTimeseriesDataRequest = new PutTimeseriesDataRequest(tableName);
    putTimeseriesDataRequest.setRows(rows);
    // 複数行の時系列データを同時に書き込みます。
    PutTimeseriesDataResponse putTimeseriesDataResponse = client.putTimeseriesData(putTimeseriesDataRequest);
    // すべてのデータが時系列テーブルに書き込まれたかどうかを確認します。
    if (!putTimeseriesDataResponse.isAllSuccess()) {
        for (PutTimeseriesDataResponse.FailedRowResult failedRowResult : putTimeseriesDataResponse.getFailedRows()) {
            System.out.println(failedRowResult.getIndex());
            System.out.println(failedRowResult.getError());
        }
    }
}