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

MaxCompute:BufferedWriter を使用したデータアップロード

最終更新日:Mar 26, 2026

MaxCompute Tunnel SDK の BufferedWriter インターフェイスを使用して、Java アプリケーションから MaxCompute テーブルに直接レコードを書き込みます。この方法では、レコードをメモリ内にバッファーし、ライターを閉じる際にフラッシュすることで、1 レコードずつ書き込む場合と比べてネットワークの往復回数を削減できます。

前提条件

作業を開始する前に、以下の項目が完了していることを確認してください。

  • ご利用の Java プロジェクトで MaxCompute および MaxCompute Tunnel が初期化されていること

  • 対象テーブルに対してアップロードセッションが作成されていること

  • 対象テーブルのスキーマ(列名およびデータの型)が把握されていること

仕組み

アップロードフローは、以下のステップで実行されます。

  1. tunnel.createUploadSession(projectName, tableName) を使用してアップロードセッションを作成します。

  2. uploadSession.openBufferedWriter() を使用して BufferedWriter を開きます。

  3. uploadSession.newRecord() を使用して Record オブジェクトを作成します。

  4. レコードのフィールド値を設定し、各行に対して writer.write(record) を呼び出します。

  5. finally ブロック内でライターを閉じて、バッファーされたデータを MaxCompute にフラッシュします。

  6. uploadSession.commit() を使用してセッションをコミットし、アップロードを確定します。

データのアップロード

以下の例では、MaxCompute および MaxCompute Tunnel がすでに初期化済みであることを前提としています。itemsname、および id は、実際のデータおよび列定義に置き換えてください。

// この例を実行する前に、MaxCompute および MaxCompute Tunnel を初期化してください。
RecordWriter writer = null;
TableTunnel.UploadSession uploadSession = tunnel.createUploadSession(projectName, tableName);
try {
  int i = 0;
  // アップロードセッション用の BufferedWriter を開きます。
  writer = uploadSession.openBufferedWriter();
  Record product = uploadSession.newRecord();
  for (String item : items) {
    product.setString("name", item);
    product.setBigint("id", i);
    // 各レコードをバッファーに書き込みます。
    writer.write(product);
    i += 1;
  }
} finally {
  if (writer != null) {
    // ライターを閉じて、バッファーされたデータをフラッシュします。
    writer.close();
  }
}
// セッションをコミットして、アップロードを完了します。
uploadSession.commit();

パラメーター

変数説明
itemsString 配列アップロードするデータです。STRING 配列として定義します。例:String[] arr = {"s1", "s2"}
nameSTRING 列STRING データを書き込む列です。ビジネス要件に基づいて列名およびデータの型を指定してください。
idBIGINT 列BIGINT データを書き込む列です。ビジネス要件に基づいて列名およびデータの型を指定してください。

セッターメソッドと列の型

各 MaxCompute 列の型には、Record オブジェクトに対応するセッターメソッドがあります。以下の表は、この例で使用されるメソッドを示しています。

セッターメソッド列の型例となる値
setString(columnName, value)STRING"example"
setBigint(columnName, value)BIGINT42L

セッターメソッドおよびサポートされる列の型の完全な一覧については、MaxCompute Tunnel SDK リファレンスをご参照ください。

次のステップ

  • 完全な初期化コードおよび実行可能なサンプル全体については、Tunnel SDK ドキュメントをご参照ください。

  • 他の方法でデータをアップロードする場合は、データのアップロードおよびダウンロードに関するドキュメントをご参照ください。