Skip to content

Go

写入新数据

首先,我们需要准备一个 Series,它代表了一行数据。Series 中有三种字段类型可供使用:

KindDescription
Tag索引列,有助于更有效率地检索数据
Field值存储列, 用于数据分析、聚合、计算等
Timestamp时间戳列,每一个时序表都必须有一个时间戳列

然后,您可以将一个 Series 添加到 Metric 中,然后创建一个 InsertRequest 对象并调用 client.Insert 将数据存储到 GreptimeDB 中。

Metric 可以通过 metric.SetTimePrecision 更改 Timestamp 精度。以下是支持的选项:

PrecisionDescription
time.Second
time.Milliseconddefault
time.Microsecond
time.Nanosecond
go
func Insert() {
	series := greptime.Series{}
	series.AddStringTag("host", "localhost")
	series.AddFloatField("cpu", 0.90)
	series.AddIntField("memory", 1024)
	series.SetTimestamp(time.Now())

	metric := greptime.Metric{}
	metric.AddSeries(series)

	monitorReq := greptime.InsertRequest{}
	monitorReq.WithTable("monitor").WithMetric(metric)

	insertsRequest := greptime.InsertsRequest{}
	insertsRequest.Append(monitorReq)

	res, err := client.Insert(context.Background(), insertsRequest)
	if err != nil {
		fmt.Printf("fail to insert, err: %+v\n", err)
		return
	}
	fmt.Printf("AffectedRows: %d\n", res.GetAffectedRows().Value)
}
func Insert() {
	series := greptime.Series{}
	series.AddStringTag("host", "localhost")
	series.AddFloatField("cpu", 0.90)
	series.AddIntField("memory", 1024)
	series.SetTimestamp(time.Now())

	metric := greptime.Metric{}
	metric.AddSeries(series)

	monitorReq := greptime.InsertRequest{}
	monitorReq.WithTable("monitor").WithMetric(metric)

	insertsRequest := greptime.InsertsRequest{}
	insertsRequest.Append(monitorReq)

	res, err := client.Insert(context.Background(), insertsRequest)
	if err != nil {
		fmt.Printf("fail to insert, err: %+v\n", err)
		return
	}
	fmt.Printf("AffectedRows: %d\n", res.GetAffectedRows().Value)
}