Go
GreptimeDB 使用不同的客户端库来写入和查询数据。 你根据需求可以选择合适的客户端库。
写入数据
GreptimeDB 提供了一个 ingester 库来帮助你写入数据。 它使用 gRPC 协议,支持自动生成表结构,无需在写入数据前创建表。 更多信息请参考 自动生成表结构。
GreptimeDB 提供的 Go Ingest SDK 是一个轻量级、并发安全的库,使用起来非常简单。
安装
使用下方的命令安装 Go Ingest SDK:
go get -u github.com/GreptimeTeam/greptimedb-ingester-go
引入到代码中:
import (
greptime "github.com/GreptimeTeam/greptimedb-ingester-go"
"github.com/GreptimeTeam/greptimedb-ingester-go/table"
"github.com/GreptimeTeam/greptimedb-ingester-go/table/types"
)
连接数据库
连接 GreptimeDB 时,通常需要用户名和密码。 关于如何设置 GreptimeDB 的鉴权方式,请参考鉴权。 这里我们在使用 ingester 库连接 GreptimeDB 时设置用户名和密码。
cfg := greptime.NewConfig("127.0.0.1").
// 将数据库名称更改为你的数据库名称
WithDatabase("public").
// 设置鉴权信息
WithAuth("username", "password")
cli, _ := greptime.NewClient(cfg)
数据模型
表中的每条行数据包含三种类型的列:Tag
、Timestamp
和 Field
。更多信息请参考 数据模型。
列值的类型可以是 String
、Float
、Int
、Timestamp
等。更多信息请参考 数据类型。
低层级 API
GreptimeDB 的低层级 API 通过向具有预定义模式的 table
对象添加 row
来写入数据。
创建行数据
以下代码片段首先构建了一个名为 cpu_metric
的表,其中包括 host
、cpu_user
、cpu_sys
和 ts
列。
随后,它向表中插入了一行数据。
该表包含三种类型的列:
Tag
:host
列,值类型为String