Setelah membuat tabel deret waktu, Anda dapat memanggil operasi PutTimeseriesData untuk menulis beberapa baris data deret waktu ke dalam tabel tersebut secara bersamaan.
Prasyarat
Tabel deret waktu telah dibuat. Untuk informasi lebih lanjut, lihat Buat Tabel Deret Waktu.
Instansi TimeseriesClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Instansi OTSClient.
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:
|
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.