全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
MaxCompute

通过数据集成导入/导出

更新时间:2017-09-27 22:58:32

您可以通过大数据开发套件中的 数据集成 创建数据同步任务,对 MaxCompute 中的数据进行导入和导出操作。

前置条件

在开始数据的导入和导出操作前,您需要根据 准备阿里云账号购买并创建项目 中的操作,做好准备工作。

添加 MaxCompute 数据源

注意:

  • 只有项目管理员角色才能够新建数据源,其他角色的成员仅能查看数据源。

  • 若需要添加的数据源是当前 MaxCompute 项目,则无需进行此操作。该项目创建成功时,即在数据集成的数据源中,默认将该项目添加为数据源,数据源名为 odps_first。

操作步骤

  1. 以项目管理员身份进入 大数据开发套件管理控制台,单击 项目列表 下对应项目操作栏中的 进入工作区

  2. 单击顶部菜单栏中的 数据集成,导航至 数据源 页面。

  3. 单击 新增数据源

  4. 在新增数据源弹出框中填写相关配置项,如下图所示:

    配置项说明如下:

    • 数据源名称: 由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符。

    • 数据源描述: 对数据源进行简单描述,不得超过 80 个字符。

    • 数据源类型: 当前选择的数据源类型 MySQL。

    • ODPS Endpoint: 默认只读。从系统配置中自动读取。

    • ODPS项目名称: 对应的 MaxCompute Project 标识。

    • Access Id: 与 MaxCompute Project Owner 云账号对应的 AccessID。

    • Access Key: 与 MaxCompute Project Owner 云账号对应的 AccessKey,与 AccessID 成对使用。

  5. 单击 测试连通性

  6. 若测试连通性成功,单击 保存 即可。

    其他的数据源的配置请参见 数据源配置

通过数据集成导入数据

以将 MySQL 的数据导入到 MaxCompute 中为例,您可以通过 向导模式脚本模式 两种方式配置同步任务。

向导模式配置同步任务

  1. 新建向导模式的同步任务,如下图所示:

  2. 选择来源。

    选择 MySQL 数据源及源头表 mytest,数据浏览默认是收起的,选择后单击 下一步,如下图所示:

  3. 选择目标。

    目标即 MaxCompute(原 ODPS),表可以是提前创建,也可以在此处单击 快速建表,如下图所示:

    配置项说明:

    • 分区信息:必须指定到最后一级分区。例如:把数据写入一个三级分区表,必须配置到最后一级分区,例如 pt=20150101,type=1,biz=2。非分区表无此项配置。

    • 清理规则:

    • 写入前清理已有数据:导数据之前,清空表或者分区的所有数据,相当于 insert overwrite。

    • 写入前保留已有数据:导数据之前不清理任何数据,每次运行数据都是追加进去的,相当于 insert into。

  4. 映射字段。

    选择字段的映射关系。需对字段映射关系进行配置,左侧 源头表字段 和右侧 目标表字段 为一一对应的关系:

  5. 通道控制。

    单击 下一步,配置作业速率上限和脏数据检查规则。如下图所示:

    配置项说明:

    • 作业速率上限:是指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。

    • 作业并发数:从单同步作业来看,作业并发数*单并发的传输速率=作业传输总速率。

    当作业速率上限已选定的情况下,应该如何选择作业并发数?

    • 如果您的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响。

    • 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数。

  6. 预览保存。

    完成上述配置后,上下滚动鼠标可查看任务配置,如若无误,单击 保存,如下图所示:

运行同步任务

直接运行同步任务

只有在同步任务设置了系统变量参数,在运行时才会自动弹出弹框配置参数变量。如下图所示:

1

运行同步任务日志情况,如下图所示:

同步任务保存后,直接单击 运行,任务便会立刻运行。您也可以单击 提交,将同步任务提交到大数据开发套件的调度系统中,调度系统会按照配置属性在从第二天开始自动定时执行,相关调度的配置请参见 调度配置介绍

脚本模式配置同步任务

您可参考以下脚本进行配置同步任务操作,其他配置与任务运行同 向导模式 方式。

  1. {
  2. "type": "job",
  3. "version": "1.0",
  4. "configuration": {
  5. "reader": {
  6. "plugin": "mysql",
  7. "parameter": {
  8. "datasource": "mysql",
  9. "where": "",
  10. "splitPk": "id",
  11. "connection": [
  12. {
  13. "table": [
  14. "person"
  15. ],
  16. "datasource": "mysql"
  17. }
  18. ],
  19. "connectionTable": "person",
  20. "column": [
  21. "id",
  22. "name"
  23. ]
  24. }
  25. },
  26. "writer": {
  27. "plugin": "odps",
  28. "parameter": {
  29. "datasource": "odps_first",
  30. "table": "a1",
  31. "truncate": true,
  32. "partition": "pt=${bdp.system.bizdate}",
  33. "column": [
  34. "id",
  35. "col1"
  36. ]
  37. }
  38. },
  39. "setting": {
  40. "speed": {
  41. "mbps": "1",
  42. "concurrent": "1"
  43. }
  44. }
  45. }
  46. }

通过数据集成导出数据

以将 MaxCompute 的数据导出到 MySQL 中为例,您可以通过 向导模式脚本模式 两种方式配置同步任务。

新建向导模式同步任务

  1. 新建向导模式的同步任务,如下图所示:

  2. 选择来源。

    选择 MaxCompute(原 ODPS)数据源及源头表 mytest,数据浏览默认是收起的,选择后单击 下一步,如下图所示:

  3. 选择目标。

    选择 MySQL 数据源及目标表 a1,选择后单击 下一步,如下图所示:

  4. 映射字段。

    单击 下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧 源头表字段 和右侧 目标表字段 为一一对应的关系。

  5. 通道控制。

    单击 下一步,配置作业速率上限和脏数据检查规则。如下图所示:

    配置项说明:

    • 作业速率上限:指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。

    • 作业并发数:从单同步作业来看,作业并发数*单并发的传输速率=作业传输总速率。

    当作业速率上限已选定的情况下,应该如何选择作业并发数?

    • 如果您的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响。

    • 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数。

  6. 预览保存。

    完成上述配置后,上下滚动鼠标可查看任务配置,如若无误,单击 保存,如下图所示:

提交数据同步任务

直接运行同步任务

直接运行同步任务,运行日志如下图所示:

1

同步任务保存后,直接单击 运行,任务便会立刻运行。您也可以单击 提交,将同步任务提交到大数据开发套件的调度系统中,调度系统会按照配置属性在从第二天开始自动定时执行,相关调度的配置请参见 调度配置介绍

脚本模式配置同步任务

您可参考以下脚本进行配置同步任务操作,其他配置与任务运行同 向导模式 方式。

  1. {
  2. "type": "job",
  3. "version": "1.0",
  4. "configuration": {
  5. "reader": {
  6. "plugin": "odps",
  7. "parameter": {
  8. "datasource": "zz_odps",//数据源的名称,建议都添加数据源后进行同步
  9. "table": "mytest",//数据来源的表名
  10. "partition": "",分区信息
  11. "column": [
  12. "id",
  13. "name",
  14. "sex",
  15. "age"
  16. ]
  17. }
  18. },
  19. "writer": {
  20. "plugin": "mysql",
  21. "parameter": {
  22. "datasource": "mysql",//数据源的名称,建议都添加数据源后进行同步
  23. "table": "a1",
  24. "preSql": [],//导入前准备语句
  25. "postSql": [],//导入后准备语句
  26. "writeMode": "replace",//主键冲突配置
  27. "column": [
  28. "id",
  29. "col1",
  30. "col2",
  31. "col3"
  32. ]
  33. }
  34. },
  35. "setting": {
  36. "speed": {
  37. "mbps": "1",//一个并发的速率上线是1MB/S
  38. "concurrent": "1"//并发的数目
  39. }
  40. }
  41. }
  42. }

参考文档

本文导读目录