全部產品
Search
文件中心

Tablestore:寫入時序資料

更新時間:Aug 04, 2026

使用 Java SDK 批量寫入時序資料,並擷取寫入失敗行的錯誤資訊。

前提條件

安裝Tablestore Java SDK並初始化時序模型用戶端。

功能說明

調用 putTimeseriesData 方法向時序表寫入一行或多行時序資料。每行資料由時間軸標識、資料點時間和資料欄位組成;響應會返回寫入失敗的行及其錯誤資訊。

public PutTimeseriesDataResponse putTimeseriesData(PutTimeseriesDataRequest request) throws TableStoreException, ClientException

以下樣本向 example_timeseries_table 寫入同一時間軸的 3 個資料點,並檢查各行的寫入結果。

TimeseriesClient timeseriesClient = client.asTimeseriesClient();

String tableName = "example_timeseries_table";
List<TimeseriesRow> rows = new ArrayList<>();

Map<String, String> tags = new HashMap<>();
tags.put("region", "cn-hangzhou");
tags.put("host", "host_0");
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "source_0", tags);

long baseTimeInUs = System.currentTimeMillis() * 1000L;
for (int i = 0; i < 3; i++) {
    TimeseriesRow row = new TimeseriesRow(timeseriesKey, baseTimeInUs + i * 1000L);
    row.addField("cpu_usage", ColumnValue.fromDouble(10.0 + i));
    row.addField("status", ColumnValue.fromString("ok"));
    rows.add(row);
}

PutTimeseriesDataRequest request = new PutTimeseriesDataRequest(tableName);
request.setRows(rows);
PutTimeseriesDataResponse response = timeseriesClient.putTimeseriesData(request);

for (PutTimeseriesDataResponse.FailedRowResult result : response.getFailedRows()) {
    System.out.println(result.getIndex());
    System.out.println(result.getError());
}

參數說明

PutTimeseriesDataRequest 包含以下參數。

名稱

類型

說明

timeseriesTableName(必選)

String

時序表名稱。

rows(必選)

List<TimeseriesRow>

要寫入的時序資料行列表。

metaUpdateMode(可選)

PutTimeseriesDataRequest.MetaUpdateMode

時間軸中繼資料更新模式。預設值為 NORMAL,由服務端判斷是否更新時間軸中繼資料索引。設定為 IGNORE 時,本次寫入不更新時間軸中繼資料索引,可能影響時間軸中繼資料檢索和 SQL 查詢。

時序資料行

rows[] 中每個元素的類型為 TimeseriesRow,包含以下參數。

名稱

類型

說明

timeseriesKey(必選)

TimeseriesKey

時間軸標識。

timeInUs(必選)

long

資料點時間,格式為從 1970-01-01 00:00:00 UTC 開始計算的微秒時間戳記,取值大於等於 0。

fields(必選)

SortedMap<String, ColumnValue>

資料欄位,由一個或多個欄位名稱和欄位值組成。

時間軸標識

rows[].timeseriesKey 的類型為 TimeseriesKey,包含以下參數。

名稱

類型

說明

measurementName(必選)

String

度量名稱。Java SDK 5.17.2 及以上版本支援將其設定為空白。

dataSource(可選)

String

資料來源標識,可以為空白。

tags(可選)

SortedMap<String, String>

標籤資訊,由字串類型的索引值對組成。未設定時使用空映射。

傳回值

PutTimeseriesDataResponse 包含以下業務返回欄位。

欄位

類型

說明

failedRows

List<PutTimeseriesDataResponse.FailedRowResult>

通過 getFailedRows() 擷取寫入失敗的行。全部寫入成功時返回空列表,也可以通過 isAllSuccess() 判斷是否全部成功。

失敗行資訊

failedRows[] 中每個元素的類型為 PutTimeseriesDataResponse.FailedRowResult,包含以下欄位。

欄位

類型

說明

index

int

通過 getIndex() 擷取失敗行在請求 rows 列表中的下標。

error

Error

通過 getError() 擷取失敗原因。