通过DataWorks控制台将表格存储中的全量数据同步到OSS中。同步到OSS中的文件可自由下载,也可作为表格存储数据的备份存于OSS中。
步骤一:新增表格存储数据源
将表格存储添加为数据源,具体操作步骤如下:
- 进入数据集成。
- 以项目管理员身份登录DataWorks控制台。说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
- 选择地域,在左侧导航栏,单击工作空间列表。
- 在工作空间列表页面,单击工作空间操作区域的进入数据集成。
- 以项目管理员身份登录DataWorks控制台。
- 新增数据源。
- 在数据集成控制台,单击数据源管理。
- 在数据源管理页面,单击新增数据源。
- 在新增数据源对话框的NoSQL区域,选择数据源类型为OTS。
- 在新增OTS数据源对话框,配置参数。
参数 说明 数据源名称 数据源的名称。 数据源描述 数据源的描述信息。 Endpoint 填写目标Tablestore实例的服务地址。 - 如果Tablestore实例和OSS在同一个地域,填写经典网地址。
- 如果Tablestore实例和OSS不在同一个地域,填写公网地址。
- 不能填写VPC地址。
Table Store实例名称 Tablestore实例的名称。 AccessKey ID 登录账户的AccessKey ID和AccessKey Secret,获取方式请参见为RAM用户创建访问密钥。 AccessKey Secret - 单击测试连通性,测试数据源的连通状态。
- 单击完成。在数据源管理页面,会显示该数据源信息。
步骤二:新增OSS数据源
操作与步骤一类似,只需在Semi-structuredstorage区域,选择数据源类型为OSS。
说明 配置OSS数据源的参数时,请注意Endpoint中不包括Bucket的名称。
本示例中,该数据源名称使用OTS2OSS,如下图所示。

步骤三:新建同步任务
新建并配置表格存储到OSS的同步任务,具体操作步骤如下:
- 进入数据集成。
- 以项目管理员身份登录DataWorks控制台。说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
- 选择地域,在左侧导航栏,单击工作空间列表。
- 在工作空间列表页面,单击工作空间操作区域的进入数据集成。
- 以项目管理员身份登录DataWorks控制台。
- 新建同步任务节点。每个同步任务都需创建一个相应的节点。
- 在数据集成控制台的首页,单击新建离线同步。
- 在新建节点对话框,输入节点名称,选择一个目标文件夹。
- 单击提交。
- 配置数据源。
- 在数据集成节点下,双击同步任务节点。
- 在同步任务节点的编辑页面的选择数据源区域,配置数据来源和数据去向。
- 配置数据来源。
选择数据来源的数据源为OTS。
- 配置数据去向。
选择数据去向的数据源为OSS,并配置数据源。
- 配置数据来源。
- 单击
图标或者点击转换为脚本,进行脚本配置。
表格存储仅支持脚本模式配置,使用过程中涉及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": "," # 每一列的分隔符。 } } } }
- 单击
图标,保存数据源配置。
说明- 由于全量导出一般是一次性的,所以无需配置自动调度参数。如果需要配置调度参数,请参见增量同步中的调度参数配置。
- 如果在脚本配置中存在变量,例如存在${date},则需要在运行同步任务时设置变量的具体值。
- 运行同步任务。
- 单击
图标。
- 在参数对话框,选择调度的资源组。
- 单击确定,开始运行任务。运行结束后,在运行日志页签中可以查看任务是否成功和导出的数据行数。
- 单击
步骤四:查看导出到OSS中的数据
- 登录OSS管理控制台。
- 选择相应Bucket和文件名,下载后可查看内容是否符合预期。