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

Tablestore:UDF を使用したデータ処理

最終更新日:Jun 23, 2026

ご利用の Tablestore データが、解析が必要な JSON 文字列などのカスタム構造を持つ場合、ユーザー定義関数 (UDF) を使用して各行にカスタムロジックを適用できます。

仕組み

UDF は Tablestore 内ではなく、MaxCompute 内で実行されます。 MaxCompute は Tablestore から行データを読み取り、そのデータを UDF に渡し、結果を SQL クエリに返します。 開発プロセスでは、Java で UDF ロジックを記述し、それを JAR ファイルとしてパッケージ化し、MaxCompute に登録してから、SQL ステートメントから呼び出します。

前提条件

  • Tablestore インスタンスとテーブルが作成済みであること。

  • テーブルにアクセスする権限を持つ MaxCompute プロジェクトが作成済みであること。

  • ローカルマシンに IntelliJ IDEA がインストール済みであること。

    操作手順

    1. IntelliJ に MaxCompute-Java/MaxCompute-Studio プラグインをインストールします。 詳細については、「MaxCompute Studio のインストール」をご参照ください。

      プラグインをインストールすると、UDF の開発を開始できます。

      次の例は、2 つの文字列を連結する単純な UDF を示しています。 MaxCompute は、カスタムウィンドウ実行ロジックを持つものを含む、より複雑な UDF をサポートしています。 詳細については、「UDF の開発」をご参照ください。

      public class ExtractBusID extends UDF {
          // evaluate メソッドは、UDF のロジック、パラメーター、および戻り値の型を定義します。
          public String evaluate(String a, String b) {
              StringBuilder sb = new StringBuilder();
              sb.append(a);
              sb.append(":");
              sb.append(b);
              return sb.toString();
          }
      }
    2. JAR ファイルをパッケージ化して MaxCompute にアップロードします。 詳細については、「パッケージ化、アップロード、登録」をご参照ください。

    3. bin/odpscmd.bat を実行し、SQL クエリで UDF を呼び出します。

      次の例では、test_table から 1 行のデータを取得し、name 列を UDF に 2 回渡し、連結された結果を udf_test として返します。 cloud_metric_extract_md5 を実際の登録された関数名に置き換えてください。

      -- 1 行を選択し、name 列を UDF に 2 回渡し、連結された文字列を返します。
      select your_udf_name(name, name) as udf_test from test_table limit 1;                    

      結果は次のようになります。

      odps@ your_project>select your_udf_name(name, name) as udf_test from test_table limit 1;
      
      +-------------------+
      | udf_test          |
      +-------------------+
      | some_name:some_name |
      +-------------------+