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

DataWorks:MaxCompute UDF の作成と使用

最終更新日:Oct 28, 2025

MaxCompute が提供するビルトイン関数がビジネス要件を満たせない場合、ユーザー定義関数 (UDF) を作成して、多様なビジネス要件を満たすことができます。このトピックでは、DataWorks で視覚化された方法で MaxCompute UDF を作成する方法について説明します。

背景情報

UDF は、既存の関数ライブラリを拡張して、より多くのデータ処理機能を提供するために使用されます。クエリのビジネス要件に基づいて、タスクのコードロジックと計算メソッドを指定できます。詳細については、「概要」をご参照ください。DataWorks で UDF を作成するために使用できる視覚化されたメソッドに加えて、MaxCompute Studio または MaxCompute の CLI を使用して UDF を作成することもできます。詳細については、「MaxCompute Studio を使用して UDF を作成する」および「MaxCompute の CLI を使用して UDF を作成する」をご参照ください。

前提条件

MaxCompute UDF を作成する前に、既存のリソースをアップロードするか、リソースを作成して視覚化された方法で DataWorks にリソースを追加する必要があります。詳細については、「MaxCompute リソースの作成と使用」をご参照ください。

説明

MaxCompute リソースを作成する際、「Java で UDF を開発する」および「Python 3 で UDF を開発する」を参照して、必要な MaxCompute リソースファイルを準備できます。

制限事項

DataWorks では、DataWorks コンソールで視覚化された方法でアップロードされた UDF のみを表示および管理できます。MaxCompute Studio などの他のツールを使用して MaxCompute コンピュートエンジンに UDF を追加する場合、DataWorks DataStudio の [MaxCompute 関数] 機能を使用して、UDF を DataWorks に手動でロードする必要があります。ロードが完了すると、DataWorks で UDF を表示および管理できます。詳細については、「MaxCompute 関数を管理する」をご参照ください。

関数の登録

  1. DataStudio ページに移動します。

  2. DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、[データ開発と O&M] > [データ開発] を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発へ] をクリックします。

  3. ワークフローを作成します。詳細については、「自動トリガーワークフローの作成」をご参照ください。

  4. 関数を作成します。

    1. 目的のワークフローを展開し、[MaxCompute] を右クリックして、[関数の作成] を選択します。

    2. [関数の作成] ダイアログボックスで、[名前][パス] を入力します。

    3. [作成] をクリックします。

    4. 表示される構成タブの [関数の登録] セクションで、次の表で説明されているパラメーターを構成します。

      注册函数

      パラメーター

      説明

      関数タイプ

      関数のタイプ。有効な値: 数学演算関数集計関数文字列処理関数日付関数ウィンドウ関数、および その他の関数。詳細については、「ビルトイン関数の使用」をご参照ください。

      エンジンインスタンス MaxCompute

      MaxCompute コンピュートエンジン。このパラメーターの値は変更できません。

      関数名

      関数の名前。SQL 文で関数を参照するために関数名を使用できます。関数名はグローバルに一意である必要があり、関数の登録後は変更できません。

      オーナー

      関数のオーナー。デフォルトのオーナーは、DataWorks コンソールへのログインに使用されるアカウントです。このパラメーターの値は変更できます。

      クラス名

      UDF を実装するクラスの名前。このパラメーターは リソース名.クラス名 のフォーマットで構成します。リソース名は、Java または Python パッケージの名前にすることができます。

      DataWorks コンソールで UDF を登録する際、JAR パッケージや Python リソースなどの MaxCompute リソースを参照できます。このパラメーターの値のフォーマットは、リソースタイプによって異なります:

      • リソースタイプが JAR の場合、[クラス名] パラメーターを JAR パッケージ名.実際のクラス名 のフォーマットで構成します。IntelliJ IDEA で copy reference 文を実行してクラス名をクエリできます。

        たとえば、com.aliyun.odps.examples.udf が Java パッケージ名で、UDAFExample がクラス名の場合、[クラス名] パラメーターの値は com.aliyun.odps.examples.udf.UDAFExample です。

      • リソースタイプが Python の場合、[クラス名] パラメーターを Python リソース名.実際のクラス名 のフォーマットで構成します。

        たとえば、LcLognormDist_sh が Python リソース名で、LcLognormDist_sh がクラス名の場合、[クラス名] パラメーターの値は LcLognormDist_sh.LcLognormDist_sh です。

        説明
        • リソース名に .jar または .py サフィックスを含める必要はありません。

        • リソースは、コミットおよびデプロイされた後に使用できます。MaxCompute リソースの作成方法の詳細については、「MaxCompute リソースの作成と使用」をご参照ください。

      リソース

      関数を登録するために使用するリソースを選択します。

      • ビジュアルモード: このモードを選択した場合、DataWorks にアップロードまたは追加されたリソースのみを選択できます。

      • コードエディター: このモードを選択した場合、MaxCompute コンピュートエンジン内のすべてのリソースを選択できます。

      説明
      • 追加されたリソースのパスを指定する必要はありません。

      • UDF で複数のリソースが参照されている場合は、リソース名をコンマ (,) で区切ります。

      説明

      UDF の説明。

      式構文

      UDF の構文。例: test

      パラメーターの説明

      サポートされている入力および出力パラメーターの説明。

      戻り値

      任意。戻り値。例: 1。

      任意。関数の例。

  5. 上部のツールバーにある 保存 アイコンをクリックして UDF を保存します。

  6. UDF をコミットします。

    1. 上部のツールバーにある 提交 アイコンをクリックします。

    2. [送信] ダイアログボックスで、[変更の説明] フィールドにコメントを入力します。

    3. [確認] をクリックします。

MaxCompute コンピュートエンジン内の関数を表示する方法、関数の変更履歴、およびその他の操作を実行する方法の詳細については、「MaxCompute 関数を管理する」をご参照ください。

関数バージョンの表示と関数のロールバック

スケジュールされたワークフローペインのビジネスフローセクションにある MaxCompute フォルダで、MaxCompute 関数の名前を右クリックし、[以前のバージョンを表示] を選択して、関数の以前のバージョンを表示するか、関数をロールバックできます。

查看

ノードでの UDF の使用

ノードで UDF を使用する場合、ノードのコードで UDF の名前を直接参照できます。具体的には、スケジュールされたワークフローペインで UDF を見つけ、UDF 名を右クリックして [関数の挿入] を選択します。これにより、UDF がノードの構成タブに表示されます。节点中使用函数

付録 1: UDF の表示

  • SHOW FUNCTIONS コマンドを実行して、データソースとして DataWorks ワークスペースに追加された MaxCompute プロジェクトに登録されているすべての UDF を表示できます。

  • MaxCompute は、さまざまな種類のビルトイン関数を提供します。詳細については、「ビルトイン関数の概要」をご参照ください。

// 現在のプロジェクトの関数を表示します。
SHOW FUNCTIONS;

付録 2: UDF の詳細の表示

  • DESCRIBE または省略形の DESC コマンドの後に UDF 名を続けて実行すると、UDF の詳細を表示できます。

    // 省略形の DESC コマンドを使用して UDF の詳細を表示します。
    DESC FUNCTION <function_name>;
  • DataWorks で、ワークフローで必要な処理ロジックが既存の関数を使用して実装できない場合、MaxCompute UDF を作成し、JAR パッケージや Python ファイルなどの対応するリソースをアップロードして関連付けることで、データ処理機能を管理および拡張できます。詳細については、「MaxCompute リソースを管理する」をご参照ください。

ベストプラクティス

UDF を作成した後、「特定の UDF へのアクセスを特定のユーザーに許可する」で説明されている手順に従って、UDF のアクセスの制御を実装できます。

リファレンス

よくある質問

Q: DataWorks コンソールでアップロードされた特定のリソースに基づいて UDF が登録された後、その UDF は DataStudio の ODPS SQL ノードで使用できます。その UDF は DataAnalysis の SQL クエリでも使用できますか?

A: はい、その UDF は DataAnalysis の SQL クエリで使用できます。DataWorks コンソールで登録された UDF は MaxCompute プロジェクトに保存されます。したがって、UDF は ODPS SQL ノードだけでなく、DataAnalysis の SQL クエリでも使用できます。