全部產品
Search
文件中心

MaxCompute:DownloadSession

更新時間:Feb 28, 2024

本文向您介紹DownloadSession介面,此介面用於下載MaxCompute表資料。

DownloadSession介面定義

public class DownloadSession {
    DownloadSession(Configuration conf, String projectName, String tableName,
                    String partitionSpec) throws TunnelException
    DownloadSession(Configuration conf, String projectName, String tableName,
                    String partitionSpec, String downloadId) throws TunnelException
    public String getId()
    public long getRecordCount()
    public TableSchema getSchema()
    public TableTunnel.DownloadStatus getStatus()
    public RecordReader openRecordReader(long start, long count)
    public RecordReader openRecordReader(long start, long count, boolean compress)
}

DownloadSession介面說明

  • 生命週期:從建立Download執行個體到下載結束。
  • 建立Download執行個體:您可以通過調用構造方法和TableTunnel兩種方式進行建立。
    • 請求方式:同步。
    • Server端會為該Download建立一個Session,產生唯一DownloadId標識該Download,用戶端可以通過getId擷取。
    • 該操作開銷較大,Server端會對資料檔案建立索引,當檔案數很多時,該時間會比較長。
    • 同時Server端會返回總Record數,可以根據總Record數啟動多個並發同時下載。
  • 下載資料:
    • 請求方式:非同步。
    • 調用openRecordReader方法,產生RecordReader執行個體,其中參數start標識本次下載的Record的起始位置,從0開始,取值範圍是>= 0, count標識本次下載的記錄數,取值範圍是>0。
  • 查看下載:
    • 請求方式:同步。
    • 調用getStatus,可以擷取當前Download狀態。
  • 四種狀態說明如下:
    • UNKNOWN:Server端剛建立一個Session時設定的初始值。
    • NORMAL:建立Download對象成功。
    • CLOSED:下載結束後。
    • EXPIRED:下載逾時。