全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
MaxCompute

DownloadSession

更新时间:2017-09-27 23:03:36

接口定义如下:

  1. public class DownloadSession {
  2. DownloadSession(Configuration conf, String projectName, String tableName,
  3. String partitionSpec) throws TunnelException
  4. DownloadSession(Configuration conf, String projectName, String tableName,
  5. String partitionSpec, String downloadId) throws TunnelException
  6. public String getId()
  7. public long getRecordCount()
  8. public TableSchema getSchema()
  9. public DownloadSession.Status getStatus()
  10. public RecordReader openRecordReader(long start, long count)
  11. public RecordReader openRecordReader(long start, long count, boolean compress)
  12. }

Download 对象:

  • 生命周期:从创建 Download 实例到下载结束。

  • 创建 Download 实例:您可以通过 调用构造方法 和 TableTunnel 两种方式进行创建。

    • 请求方式:同步。

    • Server 端会为该 Download 创建一个 Session,生成唯一 DownloadId 标识该 Download,客户端可以通过 getId 获取。

    • 该操作开销较大,Server 端会对数据文件创建索引,当文件数很多时,该时间会比较长。

    • 同时 Server 端会返回总 Record 数,可以根据总 Record 数启动多个并发同时下载。

  • 下载数据:

    • 请求方式:异步。
    • 调用 openRecordReader 方法,生成 RecordReader 实例,其中参数 start 标识本次下载的 Record 的起始位置,从 0 开始,取值范围是 >= 0, count 标识本次下载的记录数,取值范围是 >0。
  • 查看下载:

    • 请求方式:同步。

    • 调用 getStatus,可以获取当前 Download 状态。

  • 4 种状态说明:

    • UNKNOWN:Server 端刚创建一个 Session 时设置的初始值。

    • NORMAL:创建 Download 对象成功。

    • CLOSED:下载结束后。

    • EXPIRED:下载超时。

本文导读目录