全部产品
阿里云办公

MongoDB通过数据集成导入/导出

更新时间:2017-12-04 16:43:40

数据集成(Data Integration)是阿里巴巴集团提供的数据同步平台。该平台具备可跨异构数据存储系统、可靠、安全、低成本、可弹性扩展等特点,可为20多种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。详情请参见 支持的数据源类型

本文将为您介绍如何通过数据集成在云产品 MongoDB 中进行数据的 导入导出 操作。

应用场景

  • MongoDB 可以通过数据集成的同步任务将数据同步到到其他的数据源中,并对数据进行相应的处理。

  • 也可以通过数据集成的同步任务将处理好的其他数据源数据同步到 MongoDB。

流程概述

liu3.jpg

步骤1:数据源端新建表。

步骤2:新增数据源。

步骤3:向导模式或脚本模式配置同步任务。

步骤4:运行同步任务,检查目标端的数据质量。

准备工作

  1. 开通阿里云主账号,并建好账号的访问秘钥,即 AccessKeys。

  2. 开通 MaxCompute,这样会自动产生一个默认的 MaxCompute 数据源,并使用主账号登录 DataWorks。

  3. 创建项目。您可以在项目中协作完成工作流,共同维护数据和任务等,因此使用 DataWorks 之前需要先创建一个项目。

    注意

    如果您想通过子账号创建数据集成任务,可以赋予其相应的权限。详情请参见 准备 RAM 子账号项目成员管理

操作步骤

数据源端新建表

您可以使用 建表语句 或直接通过 客户端建表,不同的数据源清参见相应数据库的官方文档进行创建。

新增数据源

注意:

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

  • 新增 MongoDB 数据源时要添加相应的白名单,详情请参见 添加白名单

本文以添加 MongoDB 的数据源为例:

  1. 以开发者身份进入 DataWorks 管理控制台,单击对应项目操作栏中的 进入工作区

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

  3. 单击 新增数据源,弹出支持的数据源类型。如下图所示:


  4. 选择数据源类型为 MongoDB。

  5. 配置 MongoDB 数据源的各个信息项。

    MongoDB 数据源类型分为:阿里云数据库和有公网 IP 的自建数据库。

    • 阿里云数据库:一般使用的网络是经典网络类型,同地区的经典网络能连通,跨地区的经典网络连接不保证能通。

    • 有公网 IP 的自建数据库:一般使用的网络是公网,然而公网可能产生一定的费用。

    以新增 mongDB > 阿里云数据库 类型的数据源为例,如下图所示:

    1

    配置项说明:

    • 数据源类型:当前选择的数据源类型 MongoDB:阿里云数据库。

      注意:

      如果您尚未授权数据集成系统默认角色,需要主账号前往 RAM 进行角色授权,然后刷新此页面。

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

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

    • 地区:是指在购买 MongoDB 时所选的区域。

    • 实例 ID:MongoDB 管控台里面可以找到 MongoDB 实例 ID。

    • 数据库名:MongoDB 管控台里新创建了数据库,可以设置相应的数据名、用户名、密码。

    • 用户名/密码:数据库对应的用户名和密码。

    以新增 MongoDB > 有公网 IP 的自建数据库 类型的数据源为例,如下图所示:

    1

    配置项说明:

    • 数据源类型:当前选择的数据源类型 MongoDB:有公网 IP 的自建数据库。

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

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

    • 访问地址:格式为:host:port。

    • 添加访问地址:添加访问地址,格式为:host:port。

    • 数据库名:该数据源对应的数据库名。

    • 用户名/密码:数据库对应的用户名和密码。

  6. 单击 测试连通性

  7. 测试连通性通过后,单击 确定

脚本模式配置同步任务

  1. 进入 数据集成 页面,单击 脚本模式 新建同步任务,如下图所示:

    1

    • 向导模式:向导模式是可视化界面配置同步任务,共五步:选择来源,选择目标,字段映射,通道控制,预览保存。在每个不同的数据源之间,这几步的界面可能有不同的内容,向导模式可以转换成脚本模式。

    • 脚本模式:进入脚本界面你可以选择相应的模板,此模板包含了同步任务的主要参数,将相关的信息填写完整,但是脚本模式不能转化成向导模式。

  2. 选择 导入模板 弹出框中的 来源类型目标类型。如下图所示:

    1

  3. 单击 确认,进入脚本模式配置页面,可根据自身情况进行配置。若有问题,可单击右上方的 帮助手册 进行查看。如下图所示:

    1

MongoDB Reader 脚本示例:

  1. {
  2. "type": "job",
  3. "configuration": {
  4. "setting": {
  5. "speed": {
  6. "concurrent": "1",//并发数
  7. "mbps": "1"//同步能达到的最大数率
  8. },
  9. "errorLimit": {
  10. "record": "0"//错误记录数
  11. }
  12. },
  13. "reader": {
  14. "parameter": {
  15. "column": [
  16. {
  17. "name": "name",
  18. "type": "string"
  19. },
  20. {
  21. "name": "year",
  22. "type": "int"
  23. }
  24. ],
  25. "datasource": "px_mongodb_datasource",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  26. "collectionName": "px"
  27. },
  28. "plugin": "mongodb"
  29. },
  30. "writer": {
  31. "parameter": {
  32. "writeMode": "insert",//写入模式
  33. "preSql": [],//导入前准备语句
  34. "column": [
  35. "name",
  36. "year"
  37. ],
  38. "table": "person",//
  39. "datasource": "px_mysql",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  40. "postSql": []
  41. },
  42. "plugin": "mysql"
  43. }
  44. },
  45. "version": "1.0"
  46. }

MongoDB Writer 脚本示例

  1. {
  2. "configuration": {
  3. "setting": {
  4. "speed": {
  5. "concurrent": "1",//并发数
  6. "mbps": "1"//同步能达到的最大数率
  7. },
  8. "errorLimit": {
  9. "record": "0"//错误记录数
  10. }
  11. },
  12. "reader": {
  13. "parameter": {
  14. "splitPk": "id",//切分键
  15. "column": [
  16. "id",
  17. "name",
  18. "year"
  19. ],
  20. "table": "person",//
  21. "where": "",
  22. "datasource": "px_mysql"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  23. },
  24. "plugin": "mysql"
  25. },
  26. "writer": {
  27. "parameter": {
  28. "writeMode": {
  29. "replaceKey": "_id",//replaceKey指定了每行记录的业务主键,用来做覆盖时使用
  30. "isReplace": "true"//当设置为true时,表示针对相同的replaceKey做覆盖操作;当设置为false时表示不覆盖
  31. },
  32. "column": [
  33. {
  34. "name": "_id",
  35. "type": "int"
  36. },
  37. {
  38. "name": "name",
  39. "type": "string"
  40. },
  41. {
  42. "name": "year",
  43. "type": "int"
  44. }
  45. ],
  46. "collectionName": "px",
  47. "datasource": "px_mongodb_datasource"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  48. },
  49. "plugin": "mongodb"
  50. }
  51. },
  52. "type": "job",
  53. "version": "1.0"
  54. }

运行同步任务,检查目标端的数据质量

运行结果,如下图所示:

1

注意:

同步任务保存后,直接单击 运行,任务会立刻运行或单击右边的 提交,将同步任务提交到调度系统中,调度系统会按照配置属性在从第二天开始自动定时执行,相关调度的配置请参见 调度配置介绍

其他的配置同步任务详细信息请参见下述文档:

本文导读目录