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 DownloadSession.Status getStatus()
        public RecordReader openRecordReader(long start, long count)
        public RecordReader openRecordReader(long start, long count, boolean compress)
    }
パラメーター:
  • ライフサイクル: ダウンロードインスタンスの作成から始まり、ダウンロードが完了すると終わります。
  • ダウンロードインスタンスの作成: インスタンスを作成するには、Constructor を呼び出すか、TableTunnel を使用します。
    • リクエストモード: 同期
    • このダウンロードインスタンスのセッションがサーバーで作成され、一意のダウンロード ID が生成されます。 クライアントから getId を実行して、ダウンロード ID を取得します。
    • この操作はコストが高くなります。 データファイルのインデックスが、サーバーで作成されます。 大容量ファイルは、通常ダウンロードに時間がかかります。
    • 同時に、サーバーによってレコード総数が返されます。このレコード総数に基づいて、複数の同時ダウンロードが開始されます。
  • データのダウンロード:
    • リクエストモード: 非同期
    • RecordReader インスタンスを作成するには、openRecordReader メソッドを呼び出します。「start」は、レコードのダウンロード開始位置を示し、0 より小さくはできません。「count」はダウンロード対象のレコード数を示します。0 より大きくする必要があります。
  • ダウンロード情報の照会:
    • リクエストモード: 同期
    • 現行のダウンロードステータスを取得するには、getStatus を呼び出します。
  • ステータスは、次の 4 種類です。
    • UNKNOWN: セッションが作成されたときの初期値です。
    • NORMAL: ダウンロードオブジェクトは、正常に作成されています。
    • CLOSED: ダウンロードは完了しています。
    • EXPIRED: ダウンロードセッションはタイムアウトしています。