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