Timescale Cloud:性能、扩展、企业级

自托管产品

MST

您可以使用 Outflux 工具将数据从 InfluxDB 迁移到 Timescale。 Outflux 是由 Timescale 构建的一款开源工具,用于快速、无缝迁移。它将导出的数据直接传输到 Timescale,并管理 schema 的发现、验证和创建。

重要提示

Outflux 适用于 InfluxDB 的早期版本,不适用于 InfluxDB 2 及更高版本。

开始之前,请确保您已具备以下条件:

  • 一个正在运行的 InfluxDB 实例以及连接它的方法。
  • 一个 Timescale 安装以及连接它的方法。
  • 您的 InfluxDB 实例中存在数据。

要从 Outflux 导入数据,请遵循以下步骤:

  1. 安装 Outflux
  2. 发现、验证和传输 schema 到 Timescale(可选)
  3. 迁移数据到 Timescale

从 GitHub 仓库安装 Outflux。它有适用于 Linux、Windows 和 MacOS 的构建版本。

  1. 前往 Outflux 仓库的发布页面
  2. 下载适用于您平台的最新压缩包(tarball)。
  3. 将其解压到首选位置。
注意

如果您倾向于从源代码构建 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 行。
  • --fromto:向 --from--to 传递时间戳,以指定要迁移数据的时间窗口。
  • chunk-size:更改传输数据块的大小。数据以默认大小 15,000 的块从 InfluxDB 服务器拉取。
  • batch-size:更改插入批次中的行数。数据默认以 8,000 行的批次插入到 Timescale 中。

有关更多标志,请参阅 outflux migrate 的 Github 文档。或者,查看命令行帮助

outflux migrate --help

关键词

此页面有问题?报告问题 或 编辑此页面 在 GitHub 上。