InfluxDB全量迁移至时序引擎

如果您想将InfluxDB(云TSDB for InfluxDB)中的数据迁移至Lindorm,可以通过LTS服务完成历史数据的迁移。本文介绍将InfluxDB中的数据全量迁移至Lindorm时序引擎的方法。

前提条件

  • InfluxDB1.8.13及以上版本。

  • 已开通Lindorm时序引擎。

  • 已开通LTS。如何开通,请参见购买并登录LTS

注意事项

  • 建议InfluxDB实例、Lindorm实例、LTS实例使用相同的专有网络,以保证网络的连通性。具体说明,请参见网络打通

  • 迁移过程中,系统会读取InfluxDB实例中的数据,并将其写入Lindorm时序引擎。如果以下数值过高,可能会加重系统负载进而影响系统稳定性,因此,在迁移前请根据InfluxDB实例规格和负载,结合以下数值评估迁移影响:

    说明

    如果当前实例负载过高,建议您升级配置后再进行迁移。

    • 时间线数量

    • 数据总量

    • 平均每条时间线数据的上报频率

    • 需要迁移的数据总时间范围

    • 每个迁移作业切分周期的时间间隔

  • InfluxDB实例默认使用19Unix时间戳,单位为纳秒(ns),Lindorm时序引擎仅支持13Unix时间戳,单位为毫秒(ms)。数据迁移后源数据的时间会自动截断为13Unix时间戳,单位为毫秒(ms)。

  • LTS支持迁移历史数据至Lindorm实例,支持自定义时间范围,但无法保证增量数据的迁移。因此,建议您将数据同时写入InfluxDBLindorm后再迁移历史数据。

  • InfluxDB中的数据可以通过设置数据保留策略实现物理隔离,Lindorm时序引擎中的数据可以通过设置冷热分离策略、数据有效期(TTL)等实现物理隔离,因此,Lindorm时序引擎中的数据库和InfluxDB中每个数据库的数据保留策略一一对应。

    说明

    具体说明,请参见设置数据保留策略数据建模

  • 迁移任务内部无并发,您可以在数据库保留策略和时间范围上拆分迁移任务,提交多个迁移任务来提高迁移并发度。

  • 如果想将自建InfluxDB中的数据迁移至Lindorm时序引擎,请联系Lindorm技术支持(钉钉号:s0s3eg3)。

配置数据源

配置Lindorm TSDB数据源

  1. 访问LTS操作页面,具体操作请参见购买并登录LTS

  2. 在左侧导航栏中,选择数据源管理 > 添加数据源

  3. 添加数据源页面,配置以下参数。

    • 名称:输入数据源的名称。

    • 数据源类型:固定选择Lindorm-TSDB

    • 数据源参数:代码如下。

      {
        "address": "http://ld-bp17j28j2y7pm****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242",
        "client":"sdk",
        "schemaPolicy":"WEAK",
        "accessId": "",
        "accessKey": "",
      }

      参数说明

      参数

      说明

      address

      Lindorm时序引擎的时序HTTP地址。如何获取,请参见查看时序引擎连接地址

      client

      固定填写为sdk

      schemaPolicy

      填写为WEAK

      说明

      该参数为可选字段。如果不添加该参数,则必须手动创建Table Schema,详细说明请参见Schema约束

      accessId

      填写为空即可。

      accessKey

  4. 单击确定,状态为已关联表示数据源已添加成功。

配置InfluxDB数据源

  1. 添加数据源页面,配置以下参数。

    • 名称:输入数据源的名称。

    • 数据源类型:固定选择Lindorm-TSDB

    • 数据源参数:代码如下。

      {
        "address": "https://ts-xxxxx:8086",
        "hdfsUri":"file:///",
        "accessId": "",
        "accessKey": "",
      }

      参数说明

      参数

      说明

      address

      TSDB for InfluxDBHTTPS地址。

      hdfsUri

      固定填写为file:///

配置并启动迁移任务

  1. Lindorm时序引擎中创建目标数据库(对应InfluxDB中的Database)和目标表(对应InfluxDB中的measurement)。如何创建,请参见CREATE DATABASECREATE TABLE

    说明

    数据只会迁移至已创建的数据库和表中。如果配置Lindorm TSDB数据源时,schemaPolicy参数的值设置为WEAK,则系统会自动创建目标表。

  2. LTS界面的左侧导航栏,选择Lindorm TSDB > 历史数据同步

  3. LINDORM TSDB历史数据同步页面,单击创建任务,填写以下参数:

    • 源集群:选择InfluxDB数据源。

    • 目标集群:选择Lindorm TSDB数据源。

    • 同步/迁移的表:配置待迁移的数据范围。格式如下:

      {
        "type": "shard",
        "source_database": "test.autogen",
        "sink_database": "test",
        "startTime": 1,
        "endTime": 0
      }

      参数

      说明

      source_database

      配置为InfluxDB数据库中需要迁移的源数据库及数据保留策略。格式为<数据库名>.<数据保留策略名>,例如test.autogen

      说明

      若仅指定了数据库名,则系统将仅迁移保留策略为autogen的数据,即只填写数据库名时效果等同于填写<数据库名>.autogen

      sink_database

      配置为已创建的Lindorm时序目标数据库。

      startTime

      配置待迁移数据的开始范围。格式为13Unix时间戳,单位为毫秒(ms)。

      endTime

      配置待迁移数据的结束范围。默认值为0,表示迁移当前时间之前的数据。格式为13Unix时间戳,单位为毫秒(ms)。

      type

      无意义,可忽略。

查看迁移进度

  1. 在左侧导航栏,选择Lindorm TSDB > 历史数据迁移

  2. 单击需要查看的任务名,查看对应任务的执行情况。