导出作业结果是将SQL作业分析后的数据结果按指定格式存储到指定位置。
DLI默认将SQL作业结果存储在DLI作业桶中。同时也支持下载作业结果到本地或导出作业结果到指定的OBS桶。
导出作业结果到DLI作业桶
DLI在指定了一个默认的OBS桶作为作业结果的存储位置,请在DLI管理控制台的“全局配置 > 工程配置”中配置桶信息。当作业完成后,系统会自动将结果存储到这个默认桶中。
使用DLI作业桶读取查询结果,需具备以下条件:
- 在DLI管理控制台“全局配置 > 工程配置”中完成作业桶的配置。作业桶配置请参考配置DLI作业桶。
- 提交工单申请开启查询结果写入桶特性的白名单。
- 确保执行作业的用户具备该作业桶的读写权限,或授予作业桶“jobs/result”路径的读写权限。
详细操作请参考自定义创建桶策略。
获取DLI桶中的作业结果请参考《对象存储用户指南》中“对象管理 > 下载”。
导出作业结果到指定桶地址
除了使用默认桶存储作业结果,用户还可以导出作业结果到指定的桶地址,提高作业结果管理的灵活性,便于作业结果的组织和管理。
控制台界面查询结果最多显示1000条数据,如果需要查看更多或者全量数据,则可以通过该功能将数据导出到OBS获取。具体操作步骤如下:
导出查询结果的操作入口有两个,分别在“SQL作业”和“SQL编辑器”页面。
- 在“作业管理”>“SQL作业”页面,可单击对应作业“操作”列“更多 > 导出结果”,可导出执行查询后的结果。
- 在“SQL编辑器”页面,查询语句执行成功后,在“查看结果”页签右侧,单击“导出结果”,可导出执行查询后的结果。
- 如果查询结果中无数值列,则无法导出查询结果。
- 确保执行导出作业结果的用户具备该OBS桶的读写权限。
表1 参数说明
参数 |
是否必选 |
说明 |
数据格式 |
是 |
选择导出结果的数据格式,当前支持json和csv格式。 |
队列 |
是 |
选择执行导出作业的队列。SQL作业只能在队列类型为“SQL队列”下执行。 |
压缩格式 |
否 |
导出查询结果数据的压缩方式,选择如下压缩方式。
|
存储路径 |
是 |
选择导出的作业结果的OBS桶路径。
- 如果导出方式选择的是“随导出创建指定路径”
在选择桶路径后,需手动输入自定义的指定路径的目录名称,且该目录名称不存在,否则系统将返回错误的信息,无法执行导出操作。
说明:
文件夹名称不能包含下列特殊字符:\ / : * ? " < > |,并且不能以“.”开头和结尾。
例如选择存储路径obs://bucket/src1/后,需手动补充路径名称为obs://bucket/src1/src2/,且确保src1下不存在src2的目录。
那么导出的作业结果的路径为obs://bucket/src1/src2/test.csv
- 如果导出方式选择的是“覆盖指定路径”
在选择桶路径后,将作业结果导出至该路径下,如有重名文件将自动覆盖。
例如选择存储路径obs://bucket/src1/
那么导出的作业结果的路径为obs://bucket/src1/test.csv
|
导出方式 |
是 |
- 随导出创建指定路径:
该方式导出作业结果时,会创建一个新的文件夹路径,并将作业结果保存在这个路径中。适用于当您希望在新的路径下保存本次的导出结果的场景,方便作业结果的管理的回溯。
选择“随导出创建指定路径”时,请务必在“存储路径”后手动输入指定的导出目录,且该目录必须不存在,如果指定目录已经存在,系统将返回错误信息,无法执行导出操作。
- 覆盖指定路径:当计划导出某一个结果时,您可以选择一个已有的文件路径作为输出目录,如果这个路径下已有同名文件,将会自动覆盖这个文件,即原有的作业结果会被新导出的作业结果文件所替代。
覆盖指定路径方式适用于在同一个路径下保存唯一的作业结果文件的场景,即不需要旧的作业结果的场景。
|
结果条数 |
否 |
指定导出的结果条数。
不填写数值或数值为“0”时,导出全部结果。 |
表头 |
否 |
设置导出查询结果数据是否含表头。 |
导出作业结果到本地
异步DDL和QUERY语句支持将结果下载到本地。下载到本地默认仅支持下载1000条数据。
具体操作如下:
- 单击执行成功的异步DDL或QUERY语句“操作”列中的“下载到本地”,在提示窗口单击“确认”。此时,“操作”列中的“下载到本地”将变为“立即下载”。
图1 下载到本地
- 单击“立即下载”将对应结果下载到本地。