从 InfluxDB 迁移
如果你使用 AI coding agent 迁移查询,可以为其提供
influxql-to-greptimedb-sql Skill,
将 InfluxQL 转换为 GreptimeDB SQL,并识别其中的语义差异。
本文档将帮助你了解 GreptimeDB 和 InfluxDB 的数据模型之间的区别,并指导你完成迁移过程。
数据模型的区别
要了解 InfluxDB 和 GreptimeDB 的数据模型之间的差异,请参考写入数据文档中的数据模型。
InfluxDB 行协议数据与 GreptimeDB 表的映射关系如下:
| InfluxDB | GreptimeDB |
|---|---|
| Measurement | 表 |
| Tag | 主键列 |
| Field | 字段列 |
| Timestamp | greptime_timestamp 时间索引列 |
写入有代表性的样本数据后,请在开始完整迁移前检查每个自动创建的表。将 measurement_name 替换为样本数据中的 measurement 名称:
DESC TABLE measurement_name;
SHOW CREATE TABLE measurement_name;
确认列类型和主键列符合预期,尤其是 measurement 包含高基数 tag 时。如果需要使用不同的表结构,请在导入数 据前手动创建表。
数据库连接信息
在写入或查询数据之前,需要了解 InfluxDB 和 GreptimeDB 之间的数据库连接信息的差异。
- Token:InfluxDB API 中的 token 用于身份验证,与 GreptimeDB 身份验证相同。
当使用 InfluxDB 的客户端库或 HTTP API 与 GreptimeDB 交互时,你可以使用
<greptimedb_user:greptimedb_password>作为 token。 - Organization:GreptimeDB 中没有组织。
- Bucket:InfluxDB 的 bucket 对应 GreptimeDB 数据库。v2 写入 API 使用
bucket,v1 写入 API 使用db。 - Database:写入前请确认目标数据库已经存在。自托管 GreptimeDB 默认提供
public数据库;其他数据库需要通过CREATE DATABASE创建。
写入数据
GreptimeDB 兼容 InfluxDB 的行协议格式,包括 v1 和 v2。 这意味着你可以轻松地从 InfluxDB 迁移到 GreptimeDB。