背景

本文介绍通过Dataworks 的数据集成功能,实现 OpenTSDB 到 TSDB 的数据迁移。DataWorks 是阿里云数加重要的 PaaS 平台产品,提供数据集成数据开发数据服务数据分析数据治理等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。本文档介绍的数据迁移主要涉及”数据开发”部分。不熟悉 DataWorks 的用户可以参阅 DataWorks 的产品文档,做进一步地了解。等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。本文档介绍的数据迁移主要涉及”数据开发”部分。不熟悉 DataWorks 的用户可以参阅 DataWorks 的

目前,DataWorks 支持 TSDBOpenTSDBPrometheusInfluxDBMySQL等多种数据源到TSDB的数据迁移。

Quick Start

  1. 入口

    首先,通过单击链接,我们可以访问 DataWorks 的管理控制台。如果您尚未在控制台创建工作空间,需要先按照《创建工作空间》文档创建好一个工作空间。创建完成之后,便可以在管理控制台看到工作空间列表。实际效果如下图所示:

    图 1. 工作空间列表
    工作空间列表
  2. 在”数据开发”中创建”同步节点”
    右击左上角”业务流程”按钮,再点击”新建业务流程”。实际效果如下图所示:
    图 2. 新建业务流程
    新建业务流程
    在弹窗中填入业务名称(例如:migration_from_opentsdb_to_tsdb)。实际效果如下图所示:
    图 3. 业务名称
    业务名称
    按照图 4 中的三个步骤,完成数据同步任务的创建:
    图 4. 创建数据同步任务
    创建数据同步任务
    在弹窗中填入数据同步任务名(例如:node1)。实际效果如下图所示:
    图 5. 数据同步任务名
    数据同步任务名
    数据同步任务创建成功之后,可以在右边空白处看到 node1 节点。通过双击 node1 按钮,可以进入到数据同步任务的配置页面。实际效果如下图所示:
    图 6. 进入数据同步任务的配置页面
    进入数据同步任务的配置页面
    数据同步任务 node1 的默认编辑模式是”向导模式”,我们可以通过点击最右边的按钮,直接进入到脚本编辑模式。实际效果如下图所示:
    图 7. 脚本编辑模式
    脚本编辑模式
    默认的同步任务是 Stream Reader 到 Stream Writer。大致流程是 Stream Reader 作为数据源,创建随机的字符串,而 Stream Writer 作为目标源,接受这些生成的字符串,并打印。更多相关的信息详见页面上方的帮助文档。具体效果如图下图所示:
    图 8. 默认同步任务
    默认同步任务
    因为 Stream Reader 和 Stream Writer 同步任务不需要依赖任何外部资源,所以可以直接点击左上角的执行按钮,直观地查看任务的执行过程。实际效果如下图所示:
    图 9. 运行默认的同步任务
    运行默认的同步任务
  3. 修改配置

    现在,我们将默认的同步任务,修改为 OpenTSDB 到 TSDB 的同步任务。

    首先,我们通过点击下图中箭头所指按钮,开始导入配置模板。实际效果如下图所示:
    图 10. 导入模板
    导入模板
    在弹窗中配置来源类型为 OpenTSDB,目标类型为 TSDB。实际效果如下图所示:
    图 11. 配置导入模板
    配置导入模板

    点击确认之后,可以看到 stepType 已经调整为 opentsdb 和 tsdb,而整个配置都已经自动调整为对应的配置项。并且帮助文档已经调整为 OpenTSDB ReaderTSDB Writer。实际效果如下图所示:

    图 12. 导入配置模板后的效果
    导入配置模板后的效果
    此时,按照配置文档进行配置的调整。其中必填的参数只有 5 个,包括 OpenTSDB 的地址(endpoint)、需要同步的 metric(column)和 同步的时间范围(beginDateTime & endDateTime),以及 TSDB 的地址(endpoint)。例如:
    {
        "type": "job",
        "steps": [
            {
                "stepType": "opentsdb",
                "parameter": {
                    "endpoint": "http://host:4242",
                    "column": [
                        "m"
                    ],
                    "beginDateTime": "20190101000000",
                    "endDateTime": "20190101030000"
                },
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "tsdb",
                "parameter": {
                    "endpoint": "http://host:8242"
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "version": "2.0",
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        },
        "setting": {
            "errorLimit": {
                "record": "0"
            },
            "speed": {
                "throttle": false,
                "concurrent": 1,
                "dmu": 1
            }
        }
    }
  4. 修改白名单
    使用 DataWorks 默认的资源组需要将 Region 对应的网段,增加到白名单中。以 OpenTSDB 到 TSDB 的数据迁移为例,需要给 OpenTSDB 和 TSDB 分别配置白名单。
    1. 参考《DataWorks V2.0 > 数据集成 > 网络连通 > 添加白名单 》文档,依据 DataWorks 工作区所在的 Region,找到需要配置的白名单网段。这里我们以华东 2 为例:
      图 13. 不同的 Region 对应不同的 DataWorks 白名单
      不同的 Region 对应不同的 DataWorks 白名单
    2. 针对 ECS 上自建的 OpenTSDB 实例,请参考《ECS 安全组配置案例》和《VPC 常见问题》文档,将对应的网段配置到所有 OpenTSDB 实例所在的 ECS 的白名单列表中(包含底层存储 HBase 节点和引擎 TSD 节点);
    3. 最后,参考设置白名单,将对应的网段配置到云上 TSDB 实例的白名单列表中即可。
  5. 数据同步
    点击运行按钮,即可启动数据同步任务。实际效果如下图所示:
    图 14. 运行 OpenTSDB 到 TSDB 的数据同步任务
    运行 OpenTSDB 到 TSDB 的数据同步任务
  6. 独享资源组

    默认使用 DataWorks 的公共资源组,可能会存在资源抢占的情况,所以并不会保证数据迁移任务的高性能。如果您对数据迁移性能要求很高,建议配置独享资源组。可以参考《DataWorks 独享资源》文档了解该特性的细节,同时,还可以参考《独享资源模式》文档完成购买和使用。