GreptimeDB 支持 InfluxDB line protocol v1 和 v2 写入 API,多数采集端只需要改 URL、鉴权和数据库名。
先起一个 GreptimeDB,把写入端点指过去。原应用用 v1 write API:
curl -XPOST "http://127.0.0.1:4000/v1/influxdb/write?db=public&precision=ns" \
--data-binary \
'readings,name=truck_0,fleet=South,driver=driver_0 latitude=37.7749,longitude=-122.4194,velocity=42.0 1451606400000000000'用 v2 write API:
curl -XPOST "http://127.0.0.1:4000/v1/influxdb/api/v2/write?db=public&precision=ns" \
--data-binary \
'readings,name=truck_0,fleet=South,driver=driver_0 latitude=37.7749,longitude=-122.4194,velocity=42.0 1451606400000000000'两个细节要提前确认:
db对应 GreptimeDB 的数据库名。InfluxDB v2 的 bucket 在这里也通过db参数承载,用官方客户端时通常把 bucket 设为 GreptimeDB 数据库名、organization 留空。GreptimeDB 不会自动建库,db不是预创建的public时,需要先CREATE DATABASE。precision要和原始时间戳精度一致。GreptimeDB 的 line protocol API 默认按纳秒解释时间戳,原请求写的是毫秒、微秒或秒时,要显式传precision=ms、precision=us、precision=s。
在线迁移建议双写加灰度:新写入同时进 InfluxDB 和 GreptimeDB,对比 count(*)、时间范围和关键聚合结果,再逐步切读流量,确认无误后停掉 InfluxDB 写入。
