public class InstanceTunnel.DownloadSession extends Object
DownloadSession 表示从 ODPS Instance 中下载数据的会话,一般通过InstanceTunnel
来创建。
Session ID 是 Session 的唯一标识符,可通过 getId()
获取。
Instance 中Record总数可通过 getRecordCount()
得到,用户可根据 Record 总数来启动并发下载。
DownloadSession 通过创建 RecordReader
来完成数据的读取,需指定读取记录的起始位置和数量
RecordReader 对应HTTP请求的超时时间为 300S,超时后 service 端会主动关闭。
Constructor and Description |
---|
DownloadSession(String projectName,
String instanceID,
String downloadId)
根据已有downloadId构造一个
InstanceTunnel.DownloadSession 对象。 |
Modifier and Type | Method and Description |
---|---|
boolean |
getEnableLimit() |
String |
getId()
获取会话ID
|
String |
getInstanceID()
获取 instanceID
|
boolean |
getIsLongPolling() |
String |
getProjectName()
获取 project name
|
int |
getQueryId()
获取SQL_RT_TASK的subqueryId
|
String |
getQuotaName() |
long |
getRecordCount()
获取可下载的记录总数
|
TableSchema |
getSchema()
获取数据对应的表结构
|
InstanceTunnel.DownloadStatus |
getStatus()
获取会话状态
|
String |
getTaskName()
获取SQL_RT_TASK_NAME
|
TunnelRecordReader |
openRecordReader(long start,
long count)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
boolean compress)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
boolean compress,
List<Column> columns)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
CompressOption compress)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
CompressOption compress,
List<Column> columns)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
long sizeLimit)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
long sizeLimit,
boolean compress)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
long sizeLimit,
boolean compress,
List<Column> columns)
打开
RecordReader 用来读取记录 |
TunnelRecordReader |
openRecordReader(long start,
long count,
long sizeLimit,
CompressOption compress,
List<Column> columns)
打开
RecordReader 用来读取记录 |
void |
setRecordCount(long count) |
void |
setSchema(TableSchema schema) |
public DownloadSession(String projectName, String instanceID, String downloadId) throws TunnelException
InstanceTunnel.DownloadSession
对象。projectName
- 下载数据表所在project名称instanceID
- 下载数据 instanceIDdownloadId
- Download的唯一标识符TunnelException
public TunnelRecordReader openRecordReader(long start, long count) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, long sizeLimit) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量sizeLimit
- 本次要读取记录的大小(Bytes)
如果超过count大小会截断
如果超过sizeLimit会直接抛出异常TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, boolean compress) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, long sizeLimit, boolean compress) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量sizeLimit
- 本次要读取记录的大小(Bytes)
如果超过count大小会截断
如果超过sizeLimit会直接抛出异常compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, CompressOption compress) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, boolean compress, List<Column> columns) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩columns
- 本次需要下载的列TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, long sizeLimit, boolean compress, List<Column> columns) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量sizeLimit
- 本地要读取记录的大小(Bytes)
如果超过count大小会截断
如果超过sizeLimit会直接抛出异常compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩columns
- 本次需要下载的列TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, CompressOption compress, List<Column> columns) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩columns
- 本次需要下载的列TunnelException
IOException
public TunnelRecordReader openRecordReader(long start, long count, long sizeLimit, CompressOption compress, List<Column> columns) throws TunnelException, IOException
RecordReader
用来读取记录start
- 本次要读取记录的起始位置count
- 本次要读取记录的数量sizeLimit
- 本次要读取记录的大小(Bytes)
如果超过count大小会截断
如果超过sizeLimit会直接抛出异常compress
- 数据传输是否进行压缩;即使设置了压缩选项,如果server 不支持压缩,传输数据也不会被压缩columns
- 本次需要下载的列TunnelException
IOException
public TableSchema getSchema()
TableSchema
public void setSchema(TableSchema schema)
public long getRecordCount()
public void setRecordCount(long count)
public String getProjectName()
public String getInstanceID()
public String getTaskName()
public int getQueryId()
public boolean getIsLongPolling()
public String getId()
public InstanceTunnel.DownloadStatus getStatus() throws TunnelException, IOException
TunnelException
IOException
public boolean getEnableLimit()
public String getQuotaName()
Copyright © 2023 Alibaba Cloud Computing. All rights reserved.