通过DataWorks控制台将表格存储中的全量数据同步到OSS中。同步到OSS中的文件可自由下载,也可作为表格存储数据的备份存于OSS中。

步骤一:新增表格存储数据源

将表格存储添加为数据源,具体操作步骤如下:

  1. 进入数据集成。
    1. 以项目管理员身份登录DataWorks控制台
      说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
    2. 选择地域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作区域的进入数据集成
  2. 新增数据源。
    1. 在数据集成控制台,单击数据源管理
    2. 数据源管理页面,单击新增数据源
    3. 新增数据源对话框的NoSQL区域,选择数据源类型为OTS
    4. 新增OTS数据源对话框,配置参数。
      fig_otssource
      参数 说明
      数据源名称 数据源的名称。
      数据源描述 数据源的描述信息。
      Endpoint 填写目标Tablestore实例的服务地址
      • 如果Tablestore实例和OSS在同一个地域,填写经典网地址。
      • 如果Tablestore实例和OSS不在同一个地域,填写公网地址。
      • 不能填写VPC地址。
      Table Store实例名称 Tablestore实例的名称。
      AccessKey ID 登录账户的AccessKey ID和AccessKey Secret,获取方式请参见为RAM用户创建访问密钥
      AccessKey Secret
    5. 单击测试连通性,测试数据源的连通状态。
  3. 单击完成
    数据源管理页面,会显示该数据源信息。

步骤二:新增OSS数据源

操作与步骤一类似,只需在Semi-structuredstorage区域,选择数据源类型为OSS
说明 配置OSS数据源的参数时,请注意Endpoint中不包括Bucket的名称。
本示例中,该数据源名称使用OTS2OSS,如下图所示。fig_oss_001

步骤三:新建同步任务

新建并配置表格存储到OSS的同步任务,具体操作步骤如下:

  1. 进入数据集成。
    1. 以项目管理员身份登录DataWorks控制台
      说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
    2. 选择地域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作区域的进入数据集成
  2. 新建同步任务节点。
    每个同步任务都需创建一个相应的节点。
    1. 在数据集成控制台的首页,单击新建离线同步
    2. 新建节点对话框,输入节点名称,选择一个目标文件夹。
      fig_Oss0002
    3. 单击提交
  3. 配置数据源。
    1. 数据集成节点下,双击同步任务节点。
    2. 在同步任务节点的编辑页面的选择数据源区域,配置数据来源和数据去向。
      • 配置数据来源。

        选择数据来源数据源OTS

      • 配置数据去向。

        选择数据去向数据源OSS,并配置数据源。

      fig_oss003
    3. 单击script图标或者点击转换为脚本,进行脚本配置。

      表格存储仅支持脚本模式配置,使用过程中涉及Tablestore(OTS) Reader和OSS Writer插件的配置。具体操作,请参见配置Tablestore(OTS) Reader配置OSS Writer

      在脚本配置页面,请根据如下示例完成配置。

      {
      "type": "job",    # 不能修改。
      "version": "1.0",  # 不能修改。
      "configuration": {
       "setting": {
         "errorLimit": {
           "record": "0"  # 当错误个数超过record个数时,导入任务会失败。
         },
         "speed": {
           "mbps": "1",  # 导入速率,单位是MB/s。
           "concurrent": "1"  # 并发度。
         }
       },
       "reader": {
         "plugin": "ots",  # 不能修改。
         "parameter": {
           "datasource": "",   # 数据集成中的数据源名称,需要提前配置完成,此处可选择配置Tablestore的数据源或者填写明文的AccessKeyID等鉴权信息,建议使用数据源。
           "table": "",    # Tablestore中的数据表名称。
           "column": [   # 需要导出到OSS的列名,不能设置为空。
             {
               "name": "column1"    # Tablestore中列名,此列需要导入到OSS。
             },
             {
               "name": "column2"   # Tablestore中列名,此列需要导入到OSS。
             }
           ],
           "range": {
             "begin": [
               {
                 "type": "INF_MIN"   # Tablestore中第一列主键的起始位置。如果需要导出全量,此处请配置为INF_MIN;如果只需导出部分,则按需要配置。当数据表存在多个主键列时,此处begin中需要配置对应主键列信息。
               }
             ],
             "end": [
               {
                 "type": "INF_MAX"   # Tablestore中第一列主键的结束位置。如果需要导出全量,此处请配置为INF_MAX;如果只需导出部分,则按需要配置。当数据表存在多个主键列时,此处end中需要配置对应主键列信息。
               }
             ],
             "split": [  # 用于配置Tablestore的数据表的分区信息,可以加速导出,下一个版本会自动处理。
             ]
           }
         }
       },
       "writer": {
         "plugin": "oss",
         "parameter": {
           "datasource": "",  # 配置OSS的数据源。
           "object": "",  # Object的前缀,无需包括Bucket名称,例如tablestore/20171111/。如果是定时导出,则此处需要使用变量,例如tablestore/${date},然后在配置调度参数时配置${date}的值。
           "writeMode": "truncate", # 当同名文件存在时系统进行的操作,全量导出时请使用truncate,可选值包括truncate、append和nonConflict,truncate表示会清理已存在的同名文件,append表示会加到已存在的同名文件内容后面,nonConflict表示当同名文件存在时会报错。
           "fileFormat": "csv", # 文件类型,可选值包括csv、txt和parquet格式。
           "encoding": "UTF-8",  # 编码类型。
           "nullFormat": "null", # 定义null值的字符串标识符方式,可以是空字符串。
           "dateFormat": "yyyy-MM-dd HH:mm:ss",  # 时间格式。
           "fieldDelimiter": "," # 每一列的分隔符。
         }
       }
      }
      }
    4. 单击save图标,保存数据源配置。
    说明
    • 由于全量导出一般是一次性的,所以无需配置自动调度参数。如果需要配置调度参数,请参见增量同步中的调度参数配置。
    • 如果在脚本配置中存在变量,例如存在${date},则需要在运行同步任务时设置变量的具体值。
  4. 运行同步任务。
    1. 单击start图标。
    2. 参数对话框,选择调度的资源组。
    3. 单击确定,开始运行任务。
      运行结束后,在运行日志页签中可以查看任务是否成功和导出的数据行数。

步骤四:查看导出到OSS中的数据

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