使用UpdateTimeseriesMeta接口,您可以批量更新时间线元数据的属性。一次UpdateTimeseriesMeta调用支持更新多个时间线的元数据。

前提条件

  • 已写入时序数据。具体操作,请参见写入时序数据
  • 已初始化TimeseriesClient。具体操作,请参见初始化

参数

timeseriesMeta表示一个时间线元数据,每个timeseriesMeta包括timeseriesKey和attributes。详细参数说明请参见下表,

参数 描述
timeseriesKey 时间线标识。
attributes 时间线的属性信息,内容为字符串类型的key-value对。

示例

/**
 * UpdateTimeseriesMetaSample用于更新时间线中的Attributes信息。
 */
func UpdateTimeseriesMetaSample(tsClient *tablestore.TimeseriesClient, timeseriesTableName string) {
    fmt.Println("[Info]: Begin to update timeseries meta!")

    PutTimeseriesDataSample(tsClient , timeseriesTableName)

    updateTimeseriesMetaRequest := tablestore.NewUpdateTimeseriesMetaRequest(timeseriesTableName)

    timeseriesKey := tablestore.NewTimeseriesKey()
    timeseriesKey.SetMeasurementName("NETWORK")
    timeseriesKey.SetDataSource("127.0.0.1")
    timeseriesKey.AddTag("City" , "Hangzhou")
    timeseriesKey.AddTag("Region" , "Xihu")

    timeseriesMeta := tablestore.NewTimeseriesMeta(timeseriesKey)
    //timeseriesMeta.SetUpdateTimeInUs(96400)
    timeseriesMeta.AddAttribute("NewRegion" , "Yuhang")
    timeseriesMeta.AddAttribute("NewCity" , "Shanghai")

    updateTimeseriesMetaRequest.AddTimeseriesMetas(timeseriesMeta)

    updateTimeseriesMetaResponse , err := tsClient.UpdateTimeseriesMeta(updateTimeseriesMetaRequest)
    if err != nil {
        fmt.Println("[Error]: Update timeseries meta failed with error: " , err)
        return
    }

    if len(updateTimeseriesMetaResponse.GetFailedRowResults()) > 0 {
        fmt.Println("[Error]: Update timeseries meta failed row: ")
        for i := 0; i < len(updateTimeseriesMetaResponse.GetFailedRowResults()); i++ {
            fmt.Println("[Error]: " , updateTimeseriesMetaResponse.GetFailedRowResults()[i].Index , updateTimeseriesMetaResponse.GetFailedRowResults()[i].Error)
        }
    }

    QueryTimeseriesMetaSample(tsClient , timeseriesTableName)

    fmt.Println("[Info]: UpdateTimeseriesMetaSample finished!")
}