TableTunnelは、MaxCompute Tunnelサービスのエントリクラスです。 TableTunnelを使用して、テーブルデータのみをアップロードまたはダウンロードできます。 ビューはアップロードまたはダウンロードできません。
定義
次のコードは、TableTunnelを定義します。 詳細については、Java-sdk-docをご参照ください。
public class TableTunnel {
public DownloadSession createDownloadSession(String projectName, String tableName);
public DownloadSession createDownloadSession(String projectName, String tableName, PartitionSpec partitionSpec);
public UploadSession createUploadSession(String projectName, String tableName,boolean overwrite);
public UploadSession createUploadSession(String projectName, String tableName, PartitionSpec partitionSpec,boolean overwrite);
public DownloadSession getDownloadSession(String projectName, String tableName, PartitionSpec partitionSpec, String id);
public DownloadSession getDownloadSession(String projectName, String tableName, String id);
public UploadSession getUploadSession(String projectName, String tableName, PartitionSpec partitionSpec, String id);
public UploadSession getUploadSession(String projectName, String tableName, String id);
}次の表に、インターフェイスを示します。
実装プロセス
RecordWriter.write()メソッドは、データをファイルとして一時ディレクトリにアップロードします。RecordWriter.close()メソッドは、一時ディレクトリからデータディレクトリにファイルを移動します。session.com mit()は、データディレクトリから必要なテーブルが保存されているディレクトリにすべてのファイルを移動し、テーブルのメタデータを更新します。 これにより、現在のジョブによってテーブルに移動されたデータは、SQLやMapReduceジョブなどの他のMaxComputeジョブに表示されます。
制限事項
ブロックIDの値は0以上で20000未満でなければなりません。 ブロックにアップロードするデータのサイズは、100 GBを超えることはできません。
セッションは、そのIDによって一意に識別される。 セッションのライフサイクルは24時間です。 大量のデータの転送によりセッションがタイムアウトした場合は、複数のセッションでデータを転送する必要があります。
RecordWriterに対応するHTTPリクエストのライフサイクルは120秒です。 120秒以内にHTTP接続を介してデータが流れない場合、サーバーは接続を閉じます。
説明HTTPには8 KBのバッファがあります。
RecordWriter.write()メソッドを呼び出すと、データがバッファに保存され、HTTP接続を介してインバウンドトラフィックが流れない場合があります。 この場合、TunnelRecordWriter.flush()メソッドを呼び出して、バッファからデータを強制的にフラッシュできます。RecordWriterを使用してMaxComputeにログを書き込むと、予期しないトラフィックの変動により書き込み操作がタイムアウトすることがあります。 次の操作を実行することを推奨します。
データレコードごとにRecordWriterを使用しないことを推奨します。 各データレコードにRecordWriterを使用すると、各RecordWriterがファイルに対応するため、多数の小さなファイルが生成されます。 これはMaxComputeのパフォーマンスに影響します。
キャッシュされたコードのサイズが64 MBに達する場合は、RecordWriterを使用して一度に複数のデータレコードを書き込むことを推奨します。
RecordReaderのライフサイクルは300秒です。
MaxComputeサービスへのアクセスに使用されるエンドポイントがパブリックエンドポイントの場合、ユーザーはデータのダウンロードに対して課金されます。 パブリックエンドポイントの詳細については、「エンドポイント」をご参照ください。
ダウンロード制御機能が有効になっている場合、パブリックエンドポイントを使用してデータをダウンロードするユーザーには、関連するダウンロード権限が必要です。 権限付与の詳細については、「ダウンロードコントロール」をご参照ください。