您可以使用 Outflux 工具从 InfluxDB 迁移数据到 Timescale。Outflux 是 Timescale 构建的开源工具,用于快速、无缝的迁移。它将导出的数据直接管道传输到 Timescale,并管理模式发现、验证和创建。
重要提示
Outflux 适用于早期版本的 InfluxDB。它不适用于 InfluxDB 版本 2 及更高版本。
在开始之前,请确保您拥有
- 一个正在运行的 InfluxDB 实例以及连接到它的方法。
- Timescale 的安装以及连接到它的方法。
- InfluxDB 实例中的数据。
要从 Outflux 导入数据,请按照以下步骤操作
- 安装 Outflux
- 发现、验证和传输模式到 Timescale(可选)
- 迁移数据到 Timescale
从 GitHub 仓库安装 Outflux。有适用于 Linux、Windows 和 MacOS 的构建版本。
- 转到 Outflux 仓库的发布部分。
- 下载适用于您平台的最新压缩 tarball 文件。
- 将其解压到首选位置。
注意
如果您希望从源代码构建 Outflux,请参阅 Outflux README 获取说明。
要获取有关 Outflux 的帮助,请从安装目录运行 ./outflux --help
。
Outflux 可以
- 发现 InfluxDB measurement 的模式
- 验证是否存在可以容纳传输数据的 Timescale 表
- 如果不存在有效的表,则创建新表以满足模式要求
注意
Outflux 的 migrate
命令在一个步骤中完成模式传输和数据迁移。有关更多信息,请参阅迁移部分。如果您想独立于数据迁移验证和传输您的模式,请使用本节。
要将您的模式从 InfluxDB 传输到 Timescale,请运行 outflux schema-transfer
outflux schema-transfer <DATABASE_NAME> <INFLUX_MEASUREMENT_NAME> \--input-server=http://localhost:8086 \--output-conn="dbname=tsdb user=tsdbadmin"
要传输数据库中的所有 measurement,请省略 measurement 名称参数。
注意
此示例使用 postgres
用户和数据库连接到 Timescale 数据库。有关其他连接选项和配置,请参阅 Outflux Github 仓库。
Outflux 的 schema-transfer
可以使用 4 种模式策略之一
ValidateOnly
:检查是否安装了 Timescale,以及指定的数据库是否具有正确分区的超表以及正确的列,但不执行修改CreateIfMissing
:运行与ValidateOnly
相同的检查,并创建和正确分区任何缺失的超表DropAndCreate
:删除任何与 measurement 同名的现有表,并创建一个新的超表并正确分区DropCascadeAndCreate
:执行与DropAndCreate
相同的操作,并且如果存在与 measurement 同名的现有表,则还执行级联表删除
您可以通过在 schema-transfer
命令中传递一个值给 --schema-strategy
选项来指定您的模式策略。默认策略是 CreateIfMissing
。
默认情况下,InfluxDB 中的每个 tag 和 field 都被视为 Timescale 表中的单独列。要将 tag 和 field 作为单个 JSONB 列传输,请使用标志 --tags-as-json
。
使用 migrate
命令一次性传输您的模式和迁移您的数据。
例如,运行
outflux migrate <DATABASE_NAME> <INFLUX_MEASUREMENT_NAME> \--input-server=http://localhost:8086 \--output-conn="dbname=tsdb user=tsdbadmin"
模式策略和连接选项与 schema-transfer
相同。有关更多信息,请参阅发现、验证和传输模式。
此外,outflux migrate
还接受以下标志
--limit
:传递一个数字N
给--limit
以仅导出前N
行,按时间排序。--from
和to
:传递一个时间戳给--from
或--to
以指定要迁移的数据的时间窗口。chunk-size
:更改传输数据块的大小。数据以默认大小为 15000 的块从 InfluxDB 服务器拉取。batch-size
:更改插入批次中的行数。数据以默认 8000 行的批次插入到 Timescale 中。
有关更多标志,请参阅 outflux migrate
的 Github 文档。或者,参阅命令行帮助
outflux migrate --help
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。