全量导出(脚本模式)
通过DataWorks控制台将表格存储中的全量数据同步到OSS中。同步到OSS中的文件可自由下载,也可作为表格存储数据的备份存储于OSS中。
步骤一:新增表格存储数据源
将表格存储添加为数据源,具体步骤如下:
进入管理中心。
以项目管理员身份登录DataWorks控制台。
在左侧导航栏,单击工作空间列表后,选择地域。
在工作空间列表页面,单击目标工作空间操作列的
图标后选择工作空间配置,进入目标空间的工作空间管理页面。
说明您也可以单击目标工作空间操作列的数据开发、数据集成等模块。在模块界面顶部菜单栏右侧单击
图标,默认进入工作空间管理页面。
在左侧导航栏,单击数据源。
在数据源页面,单击新增数据源。
在新增数据源对话框的NoSQL区域,单击OTS。
在新增OTS数据源对话框,根据下表配置数据源参数。
参数
说明
数据源名称
数据源名称必须以字母、数字、下划线(_)组合,且不能以数字和下划线(_)开头。
数据源描述
对数据源进行简单描述,不得超过80个字符。
Endpoint
Tablestore实例的服务地址。更多信息,请参见服务地址。
如果Tablestore实例和目标数据源的资源在同一个地域,填写经典网地址;如果Tablestore实例和目标数据源的资源不在同一个地域,填写公网地址。不能填写VPC地址。
Table Store实例名称
Tablestore实例的名称。更多信息,请参见实例。
AccessKey ID
阿里云账号或者RAM用户的AccessKey ID和AccessKey Secret。获取方式请参见创建AccessKey。
AccessKey Secret
测试资源组连通性。
创建数据源时,您需要测试资源组的连通性,以保证同步任务使用的资源组能够与数据源连通,否则将无法正常执行数据同步任务。
重要数据同步时,一个任务只能使用一种资源组。资源组列表默认仅显示独享数据集成资源组,为确保数据同步的稳定性和性能要求,推荐使用独享数据集成资源组。
如果未创建资源组,请单击新建独享数据集成资源组进行创建。具体操作,请参见新增和使用独享数据集成资源组。
在数据集成页签下,单击相应资源组后的测试连通性,连通状态为可连通时,表示连通成功。
测试连通性通过后,单击完成。
在数据源列表中,可以查看新建的数据源。
步骤二:新增OSS数据源
具体操作与步骤一类似,只需在新增数据源对话框的半结构化存储区域,选择数据源类型为OSS。
配置OSS数据源的参数时,请注意Endpoint中不包括Bucket的名称,且必须以
http://
或者https://
开头。对OSS的访问支持Access Key模式和RAM角色授权模式,请根据实际选择。
Access Key模式:通过阿里云账号或者RAM用户的AccessKey ID和AccessKey Secret访问数据源。
RAM角色授权模式:通过STS授权的方式允许云产品服务账号扮演相关角色来访问数据源,具备更高安全性。更多信息,请参见通过RAM角色授权模式配置数据源。
首次选择访问模式为RAM角色授权模式时,系统会显示警告对话框,提示创建相关服务关联角色的信息,单击开启授权进行授权。开启授权后,选择角色为新建的服务关联角色。
本示例中,该数据源名称使用OTS2OSS,如下图所示。

步骤三:新建同步任务节点
进入数据开发页面。
以项目管理员身份登录DataWorks控制台。
选择地域,在左侧导航栏,单击工作空间列表。
在工作空间列表页面,单击工作空间操作列的数据开发。
在DataStudio控制台的数据开发页面,单击业务流程节点下的目标业务流程。
如果需要新建业务流程,请参见创建业务流程。
在数据集成节点上右键选择新建节点 > 离线同步。
在新建节点对话框,选择路径并填写节点名称。
单击确认。
在数据集成节点下会显示新建的离线同步节点。
步骤四:配置离线同步任务并启动
配置表格存储到OSS的同步任务,具体步骤如下:
在数据集成节点下,双击打开新建的离线同步任务节点。
配置同步网络链接。
选择离线同步任务的数据来源、数据去向以及用于执行同步任务的资源组,并测试连通性。
重要数据同步任务的执行必须经过资源组来实现,请选择资源组并保证资源组与读写两端的数据源能联通访问。
在网络与资源配置步骤,选择数据来源为OTS,并选择数据源名称为新增的表格存储数据源。
选择资源组。
选择资源组后,系统会显示资源组的地域、规格等信息以及自动测试资源组与所选数据源之间连通性。
重要请与新增数据源时选择的资源组保持一致。
选择数据去向为OSS,并选择数据源名称为新增的OSS数据源。
系统会自动测试资源组与所选数据源之间连通性。
测试可连通后,单击下一步。
在提示对话框,单击确认使用脚本模式。
重要表格存储仅支持脚本模式。当存在不支持向导模式的数据源时,如果继续编辑任务,将强制使用脚本模式进行编辑。
任务转为脚本模式后,将无法转为向导模式。
配置任务并保存。
表格存储仅支持脚本模式配置,使用过程中涉及Tablestore(OTS) Reader和OSS Writer插件的配置。具体操作,请参见Tablestore(OTS)数据源和OSS数据源。
在脚本配置页面,请根据如下示例完成配置。
重要由于全量导出一般是一次性的,所以无需配置自动调度参数。如果需要配置调度参数,请参见增量同步(脚本模式)中的调度参数配置。
如果在脚本配置中存在变量,例如存在
${date}
,则需要在运行同步任务时设置变量的具体值。为了便于理解,在配置示例中增加了注释内容,实际使用脚本时请删除所有注释内容。
{ "type": "job", #不能修改。 "version": "2.0", #不能修改。 "steps": [ { "stepType": "ots", #不能修改。 "parameter": { "datasource": "", #表格存储数据源名称,请根据实际填写。 "column": [ #需要导出到OSS的列名,不能设置为空。 { "name": "column1" #Tablestore中列名,此列需要导入到OSS。 }, { "name": "column2" }, { "name": "column3" }, { "name": "column4" }, { "name": "column5" } ], "range": { "split": [ #用于配置Tablestore的数据表的分区信息,可以加速导出。一般情况下无需配置。 ], "end": [ { "type": "INF_MAX" #Tablestore中第一列主键的结束位置。如果需要导出全量数据,此处请配置为INF_MAX;如果只需导出部分数据,则按需配置。当数据表存在多个主键列时,此处end中需要配置对应主键列信息。 }, { "type": "INF_MAX" }, { "type": "STRING", "value": "end1" }, { "type": "INT", "value": "100" } ], "begin": [ { "type": "INF_MIN" #Tablestore中第一列主键的起始位置。如果需要导出全量数据,此处请配置为INF_MIN;如果只需导出部分数据,则按需配置。当数据表存在多个主键列时,此处begin中需要配置对应主键列信息。 }, { "type": "INF_MIN" }, { "type": "STRING", "value": "begin1" }, { "type": "INT", "value": "0" } ] }, "table": "" #Tablestore中的数据表名称。 }, "name": "Reader", "category": "reader" }, { "stepType": "oss", #不能修改。 "parameter": { "nullFormat": "null", #定义null值的字符串标识符方式,可以是空字符串。 "dateFormat": "yyyy-MM-dd HH:mm:ss", #日期格式。 "datasource": "", #OSS数据源名称,请根据实际填写。 "writeMode": "truncate", #当同名文件存在时系统进行的操作,全量导出时请使用truncate,可选值包括truncate、append和nonConflict。truncate表示会清理已存在的同名文件,append表示会增加到已存在的同名文件内容后面,nonConflict表示当同名文件存在时会报错。 "encoding": "UTF-8", #编码类型。 "fieldDelimiter": ",", #每一列的分隔符。 "fileFormat": "csv", #导出的文本类型,取值范围包括csv、text、parquet和ORC。 "object": "" #Object的前缀,无需包括Bucket名称,例如tablestore/20171111/。如果是定时导出,则此处需要使用变量,例如tablestore/${date},然后在配置调度参数时配置${date}的值。 }, "name": "Writer", "category": "writer" }, { "name": "Processor", "stepType": null, "category": "processor", "parameter": {} } ], "setting": { "executeMode": null, "errorLimit": { "record": "0" #当错误个数超过record个数时,导入任务会失败。 }, "speed": { "concurrent": 2, #并发度。 "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
单击
图标,保存脚本。
说明执行后续操作时,如果未保存脚本,则系统会出现保存确认的提示,单击确认即可。
执行同步任务。
说明全量数据一般只需要同步一次,无需配置调度属性。
单击
图标。
在参数对话框,选择运行资源组的名称。
单击运行。
运行结束后,在同步任务的运行日志页签,单击Detail log url对应的链接后。在任务的详细运行日志页面,查看
Current task status
对应的状态。当
Current task status
的值为FINISH时,表示任务运行完成。
步骤五:查看导出到OSS中的数据
登录OSS管理控制台。
在Bucket列表页面,找到目标Bucket后,单击Bucket名称。
在文件列表页签,选择相应文件,下载后可查看内容是否符合预期。