数据湖探索 DLI-使用SDK提交SQL作业:查询作业结果
查询作业结果
- 相关链接:
- 关键SDK API:
com.huawei.dli.sdk.read.ResultSet,纯OBS读数据相关API调用,DLI提供了一个默认 OBS csv reader实现,可依据业务需求自定义实现。具体操作参考OBS API参考。
com.huawei.dli.sdk.SQLJob#submitQuery(),需要开启结果写作业桶特性,否则默认只预览前1000条数据。
您可以通过查询作业状态API响应体中的 result_path 来判断是否已开启作业结果写作业桶特性。
待作业运行结束后,如果result_path 以 obs:// 开头,则已开启作业结果写作业桶特性,否则未开启。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
private static String queryData(DLIInfo dliInfo, String selectSql) throws DLIException { SQLJob sqlJob = new SQLJob(dliInfo, selectSql); // 如有需要,您可在此处设置作业参数,比如:sqlJob.setConf() // 1. 提交查询作业到DLI,使用DLI封装实现提交并等待结果。 // 注1:此处需要根据SQL执行时长预取设置超时时间,默认5min。 // 注2:此处需要开启作业结果写作业桶特性,否则默认只预览前1000条数据。 sqlJob.setJobTimeout(30 * 60); ResultSet resultSet1 = null; try { resultSet1 = sqlJob.submitQuery(); handleResult(resultSet1); } finally { if (resultSet1 != null) { resultSet1.close(); } } return sqlJob.getJobId(); }