数据集成(Data Integration)产品提供数据同步服务,有脚本模式和向导模式两种方式。脚本模式更灵活,向导模式更简单。

本章介绍如何将Table Store中的全量数据通过数据集成的脚本模式导出到OSS中,从而用户可以自由下载文件自用,或者作为Table Store的备份存于OSS中。

途径

数据集成脚本模式
  • Reader:OTSReader
  • Writer:OSSWriter

步骤1. 创建Table Store数据源

说明 如果已经创建了Table Store的数据源,可以跳过这一步。

创建数据源的具体步骤,请参见创建Table Store数据源

步骤2. 创建OSS数据源

本操作与步骤1类似,区别只是选择OSS作为数据源。
说明 配置OSS数据源的参数时,注意Endpoint不包括bucketName。

步骤3. 创建导出任务

  1. 登录数据集成控制台
  2. 同步任务页面,选择脚本模式
  3. 在弹出的导入模板对话框中,来源类型选择OTS,目标类型选择OSS。
  4. 单击确认,进入配置页面。

步骤4. 完善配置项

  1. 在配置界面,已经提前嵌入了otsreader和osswriter的模板,请参考以下解释完成配置。
    {
    "type": "job",    # 不能修改
    "version": "1.0",  # 不能修改
    "configuration": {
     "setting": {
       "errorLimit": {
         "record": "0"  # 超过record个错误后,导入任务会失败。
       },
       "speed": {
         "mbps": "1",  # 导入速率,单位是MB。
         "concurrent": "1"  # 并发度。
       }
     },
     "reader": {
       "plugin": "ots",  # 不能修改
       "parameter": {
         "datasource": "",   # 数据集成中的数据源名称,需要提前设置好,这里有两种选择,一种是配置datasource数据源,一种写明文的AccessKeyID等鉴权信息,鼓励使用数据源。
         "table": "",    # Table Store中的表名
         "column": [   # 需要导出到OSS的列名,不能设置为空。
           {
             "name": "column1"    # Table Store中列名,此列需要导入到OSS
           },
           {
             "name": "column2"   # Table Store中列名,此列需要导入到OSS
           }
         ],
         "range": {
           "begin": [
             {
               "type": "INF_MIN"   # Table Store中第一列主键的起始位置。如果要导出全量,这里需要配置为INF_MIN,如何导出部分,则按需要配置。如果有几列主键列,这里begin中就需要几项配置。
             }
           ],
           "end": [
             {
               "type": "INF_MAX"   # Table Store中第一列主键的结束位置。如果要导出全量,这里需要配置为INF_MAX,如何导出部分,则按需要配置。
             }
           ],
           "split": [  # 用来配置Table Store的表的分区信息,可以加速导出,下一个版本会自动处理。
           ]
         }
       }
     },
     "writer": {
       "plugin": "oss",
       "parameter": {
         "datasource": "",  # 配置OSS的数据源
         "object": "",  # object 前缀,不需要包括bucket名字,比如:tablestore/20171111/,如果是定时导出,则这里需要使用变量,比如tablestore/${date},然后在配置调度参数的时候配置${date}的值。
         "writeMode": "truncate", # 支持truncate|append|nonConflict,truncate会清理已存在的同名文件;append会加到已存在的同名文件内容后面;nonConflict会报错当同名文件存在时。全量导出使用truncate。
         "fileFormat": "csv", # 支持csv和txt两种格式
         "encoding": "UTF-8",  # 编码
         "nullFormat": "null", # 定义null值的字符串标识符方式,也可以是空字符串
         "dateFormat": "yyyy-MM-dd HH:mm:ss",  # 时间格式
         "fieldDelimiter": "," # 每一列的分隔符
       }
     }
    }
    }
  2. 单击保存,保存任务。

步骤5. 运行任务

  1. 单击运行,开始执行任务。
    如果在配置里面有变量,比如存在 ${date},则会出现变量设置界面,只能设置具体值,如下图所示。

  2. 查看页面下方的日志。
    如果日志中没有报错,则说明执行成功,您可以到目标OSS中去检查数据了。
    说明 因为全量导出一般是一次性的,所以不需要配置自动调度参数。如果需要配置调度参数,请参考增量同步中的调度参数配置。

步骤6. 检查导出到OSS中的数据

  1. 登录OSS控制台
  2. 选择相应bucket和文件名,下载后查看内容是否符合预期。