全部产品
云市场

利用 DataWorks 将数据迁移到 TSDB

更新时间:2019-07-12 16:18:59

背景

 本文介绍通过Dataworks 的数据集成功能,实现 OpenTSDB 到 TSDB 的数据迁移。

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

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

Quick Start

步骤一:入口

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

dataworks_workspace

图 1:工作空间列表

步骤二:在”数据开发”中创建”同步节点”

 右击左上角”业务流程”按钮,再点击”新建业务流程”。实际效果如图 2 所示:

dataworks_new_business_process

图 2:新建业务流程

 在弹窗中填入业务名称(例如:migration_from_opentsdb_to_tsdb)。实际效果如图 3 所示:

dataworks_business_name

图 3:业务名称

 按照图 4 中的三个步骤,完成数据同步任务的创建:

dataworks_create_migration_job

图 4:创建数据同步任务

 在弹窗中填入数据同步任务名(例如:node1)。实际效果如图 5 所示:

dataworks_create_migration_job_name

图 5:数据同步任务名

 数据同步任务创建成功之后,可以在右边空白处看到 node1 节点。通过双击 node1 按钮,可以进入到数据同步任务的配置页面。实际效果如图 6 所示:

dataworks_begin_edit_job

图 6:进入数据同步任务的配置页面

 数据同步任务 node1 的默认编辑模式是”向导模式”,我们可以通过点击最右边的按钮,直接进入到脚本编辑模式。实际效果如图 7 所示:

dataworks_script_mode

图 7:脚本编辑模式

 默认的同步任务是 Stream Reader 到 Stream Writer。大致流程是 Stream Reader 作为数据源,创建随机的字符串,而 Stream Writer 作为目标源,接受这些生成的字符串,并打印。更多相关的信息详见页面上方的帮助文档。具体效果如图 8 所示:

dataworks_default_job

图 8:默认同步任务

 因为 Stream Reader 和 Stream Writer 同步任务不需要依赖任何外部资源,所以可以直接点击左上角的执行按钮,直观地查看任务的执行过程。实际效果如图 9 所示:

dataworks_default_job_run

图 9:运行默认的同步任务

步骤三:修改配置

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

 首先,我们通过点击 dataworks_logo_import 按钮,开始导入配置模板。实际效果如图 10 所示:

dataworks_import_job_template

图 10:导入模板

 在弹窗中配置来源类型为 OpenTSDB,目标类型为 TSDB。实际效果如图 11 所示:

dataworks_import_template_opentsdb_2_tsdb

图 11:配置导入模板

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

dataworks_imported_template

图 12:导入配置模板后的效果

 此时,按照配置文档进行配置的调整。其中必填的参数只有 5 个,包括 OpenTSDB 的地址(endpoint)、需要同步的 metric(column)和 同步的时间范围(beginDateTime & endDateTime),以及 TSDB 的地址(endpoint)。例如:

  1. {
  2. "type": "job",
  3. "steps": [
  4. {
  5. "stepType": "opentsdb",
  6. "parameter": {
  7. "endpoint": "http://host:4242",
  8. "column": [
  9. "m"
  10. ],
  11. "beginDateTime": "20190101000000",
  12. "endDateTime": "20190101030000"
  13. },
  14. "name": "Reader",
  15. "category": "reader"
  16. },
  17. {
  18. "stepType": "tsdb",
  19. "parameter": {
  20. "endpoint": "http://host:8242"
  21. },
  22. "name": "Writer",
  23. "category": "writer"
  24. }
  25. ],
  26. "version": "2.0",
  27. "order": {
  28. "hops": [
  29. {
  30. "from": "Reader",
  31. "to": "Writer"
  32. }
  33. ]
  34. },
  35. "setting": {
  36. "errorLimit": {
  37. "record": "0"
  38. },
  39. "speed": {
  40. "throttle": false,
  41. "concurrent": 1,
  42. "dmu": 1
  43. }
  44. }
  45. }

步骤四:修改白名单

 使用 DataWorks 默认的资源组需要将 Region 对应的网段,增加到白名单中。以 OpenTSDB 到 TSDB 的数据迁移为例,需要给 OpenTSDB 和 TSDB 分别配置白名单。

  1. 参考《DataWorks V2.0 > 使用指南 > 数据集成 > 常见配置 > 添加白名单》文档,依据 DataWorks 工作区所在的 Region,找到需要配置的白名单网段。这里我们以华东 2 为例:

    dataworks_white_list

    图 13:不同的 Region 对应不同的 DataWorks 白名单
  2. 针对 ECS 上自建的 OpenTSDB 实例,请参考《ECS 安全组配置案例》和《VPC 常见问题》文档,将对应的网段配置到所有 OpenTSDB 实例所在的 ECS 的白名单列表中(包含底层存储 HBase 节点和引擎 TSD 节点);

  3. 最后,参考《时序数据库 TSDB 版 > 快速入门 > 设置网络白名单》文档,将对应的网段配置到云上 TSDB 实例的白名单列表中即可。

步骤五:数据同步

 点击运行按钮,即可启动数据同步任务。实际效果如图 14 所示:

dataworks_opentsdb_2_tsdb_run

图 14:运行 OpenTSDB 到 TSDB 的数据同步任务

步骤六:独享资源组

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