写入时序数据

在创建时序表后,您可以通过调用PutTimeseriesData接口向时序表写入时序数据。该接口支持批量写入操作,单次调用即可完成多行数据的写入。

注意事项

表格存储Python SDK6.1.0版本开始支持时序模型功能,请确保已获取正确的Python SDK版本。

说明

关于Python SDK历史迭代版本的详细信息,请参见Python SDK历史迭代版本

前提条件

初始化Tablestore Client

参数说明

参数

说明

timeseriesTableName(必选

时序表名称。

timeseriesRows(必选

时序数据列表。一行时序数据由时间线标识和时间线数据两部分组成。

  • timeseries_key(必选):时间线标识。包括如下内容:

    • measurement_name(必选):时间线的度量名称。

    • data_source(必选):数据源信息。

    • tags(必选):时间线的标签信息,由多个键值对(key-value)组成。

  • time_in_us(必选):数据点的时间戳,单位为微秒。

  • fields(必选):数据点,由多个名称(FieldKey)和数据值(FieldValue)对组成。

示例

以下示例用于向时序表中写入多个时序数据。

# 时间线的标签信息。
tags = {"tag1": "t1", "tag2": "t2"}
# 时间线标识。
key1 = TimeseriesKey("measure1", "datasource1", tags)
key2 = TimeseriesKey("measure2", "datasource2", tags)
# 时间线数据。
field1 = {"long_field": 1, "string_field": "string", "bool_field": True, "double_field": 0.3}
field2 = {"binary_field2": bytearray(b'a')}

try:
    # 时序数据。
    row1 = TimeseriesRow(key1, field1, int(time.time() * 1000000))
    row2 = TimeseriesRow(key2, field2, int(time.time() * 1000000))
    rows = [row1, row2]

    # 调用接口写入时序数据。
    ots_client.put_timeseries_data("<TIMESERIES_TABLE_NAME>", rows)
    print("put timeseries data succeeded.")
except Exception as e:
    # 如果抛出异常,则说明执行失败,处理异常。
    print("put timeseries data failed. %s" % e)