すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:マルチスレッドモードでBufferedWriterを使用したデータのアップロード

最終更新日:Jan 24, 2025

このトピックでは、サンプルコードを使用して、BufferedWriterクラスを使用してマルチスレッドデータのアップロードを実装する方法について説明します。

// This example shows how to implement multi-threaded data uploading to MaxCompute by using the BufferedWriter class.
class UploadThread extends Thread {
  private UploadSession session;
  private static int RECORD_COUNT = 1200;
  public UploadThread(UploadSession session) {
    this.session = session;
  }
  @Override
  public void run() {
    // Generate a TunnelBufferedWriter instance
    RecordWriter writer = up.openBufferedWriter();
    Record r = up.newRecord();
    for (int i = 0; i < RECORD_COUNT; i++) {
      r.setBigint(0, i);
      // Call the write interface to write data
      writer.write(r);
    }
    // Close the TunnelBufferedWriter
    writer.close();
  }
};
public class Example {
  public static void main(String args[]) {
   // Initialize the code of MaxCompute and Tunnel.
   TableTunnel.UploadSession uploadSession = tunnel.createUploadSession(projectName, tableName);
   UploadThread t1 = new UploadThread(up);
   UploadThread t2 = new UploadThread(up);
   t1.start();
   t2.start();
   t1.join();
   t2.join();
   // Commit,the upload process is completed.
   uploadSession.commit();
}