全部产品
Search
文档中心

Tablestore:Tulis data deret waktu

更新时间:Jul 02, 2025

Setelah membuat tabel deret waktu, Anda dapat memanggil operasi PutTimeseriesData untuk menulis beberapa baris data deret waktu ke dalam tabel tersebut secara bersamaan.

Prasyarat

Parameter

Satu baris data deret waktu (timeseriesRow) terdiri dari pengenal deret waktu (timeseriesKey) dan data dalam deret waktu. Data dalam deret waktu mencakup waktu ketika titik data dihasilkan (timeInUs) dan titik data itu sendiri (fields). Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter

Diperlukan

Deskripsi

timeseriesKey

Ya

Pengenal deret waktu. Anda dapat menggunakan parameter berikut untuk menentukan pengenal:

  • measurementName: nama data deret waktu.

  • dataSource: sumber data deret waktu. Anda dapat membiarkan parameter ini kosong.

  • tags: tag deret waktu. Nilai parameter ini adalah pasangan kunci-nilai bertipe String.

timeInUs

Ya

Waktu ketika titik data dihasilkan. Satuan: mikrodetik.

fields

Ya

Titik data. Setiap titik data terdiri dari nama (FieldKey) dan nilai data (FieldValue)

Contoh

Kode sampel berikut menunjukkan cara menulis satu atau lebih baris data deret waktu ke tabel deret waktu:

func PutTimeseriesDataSample(client *tablestore.TimeseriesClient , timeseriesTableName string) {
    fmt.Println("[Info]: Mulai PutTimeseriesDataSample !")

    // Konstruksi timeseriesRow. 
    timeseriesKey := tablestore.NewTimeseriesKey()
    timeseriesKey.SetMeasurementName("CPU")
    timeseriesKey.SetDataSource("127.0.0.1")
    timeseriesKey.AddTag("City" , "Hangzhou")
    timeseriesKey.AddTag("Region" , "Xihu")

    timeseriesRow := tablestore.NewTimeseriesRow(timeseriesKey)
    timeseriesRow.SetTimeInus(time.Now().UnixNano() / 1000)
    timeseriesRow.AddField("temperature" , tablestore.NewColumnValue(tablestore.ColumnType_INTEGER , 98))
    timeseriesRow.AddField("status" , tablestore.NewColumnValue(tablestore.ColumnType_STRING , "ok"))

    // Konstruksi timeseriesRow1. 
    timeseriesKey1 := tablestore.NewTimeseriesKey()
    timeseriesKey1.SetMeasurementName("NETWORK")
    timeseriesKey1.SetDataSource("127.0.0.1")
    timeseriesKey1.AddTag("City" , "Hangzhou")
    timeseriesKey1.AddTag("Region" , "Xihu")

    timeseriesRow1 := tablestore.NewTimeseriesRow(timeseriesKey1)
    timeseriesRow1.SetTimeInus(time.Now().UnixNano() / 1000)
    timeseriesRow1.AddField("in" , tablestore.NewColumnValue(tablestore.ColumnType_INTEGER , 1000))
    timeseriesRow1.AddField("data" , tablestore.NewColumnValue(tablestore.ColumnType_BINARY , []byte("tablestore")))
    timeseriesRow1.AddField("program" , tablestore.NewColumnValue(tablestore.ColumnType_STRING , "tablestore.d"))
    timeseriesRow1.AddField("status" , tablestore.NewColumnValue(tablestore.ColumnType_BOOLEAN, true))
    timeseriesRow1.AddField("lossrate" , tablestore.NewColumnValue(tablestore.ColumnType_DOUBLE , float64(1.9098)))

    // Konstruksi permintaan untuk menulis data deret waktu. 
    putTimeseriesDataRequest := tablestore.NewPutTimeseriesDataRequest(timeseriesTableName)
    putTimeseriesDataRequest.AddTimeseriesRows(timeseriesRow , timeseriesRow1)

    // Panggil operasi API terkait klien deret waktu untuk menulis data deret waktu. 
    putTimeseriesDataResponse , err := client.PutTimeseriesData(putTimeseriesDataRequest)
    if err != nil {
        fmt.Println("[Error]: Penulisan data deret waktu gagal dengan kesalahan: " , err)
        return
    }
    if len(putTimeseriesDataResponse.GetFailedRowResults()) > 0 {
        fmt.Println("[Peringatan]: Penulisan data deret waktu selesai! Beberapa baris deret waktu gagal ditulis: ")
        for i := 0; i < len(putTimeseriesDataResponse.GetFailedRowResults()); i++ {
            FailedRow := putTimeseriesDataResponse.GetFailedRowResults()[i]
            fmt.Println("[Peringatan]: Baris Gagal: Indeks: " , FailedRow.Index , " Kesalahan: " , FailedRow.Error)
        }
    } else {
        fmt.Println("[Info]: PutTimeseriesDataSample selesai! RequestId: " , putTimeseriesDataResponse.RequestId)
    }
}

FAQ

Referensi

  • Untuk informasi lebih lanjut tentang operasi API, lihat PutTimeseriesData.

  • Setelah menulis data deret waktu, Anda dapat membaca data tersebut dari tabel deret waktu sesuai dengan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Kueri Data Deret Waktu.

  • Anda dapat mengambil deret waktu yang memenuhi kondisi tertentu. Untuk informasi lebih lanjut, lihat Ambil Deret Waktu.

  • Jika atribut dalam metadata deret waktu tidak memenuhi kebutuhan bisnis Anda, Anda dapat memperbarui atau menghapus metadata tersebut. Untuk informasi lebih lanjut, lihat Perbarui Deret Waktu dan Hapus Deret Waktu.

  • Jika ingin memigrasi data dari Apache Kafka ke tabel deret waktu di Tablestore, Anda dapat menggunakan Tablestore Sink Connector. Untuk informasi lebih lanjut, lihat Sinkronisasi Data ke Tabel Deret Waktu.