Data Studio では、MaxCompute プロジェクトのリソースを管理できます。ローカルマシンまたは Object Storage Service (OSS) からリソースファイルをアップロードし、データ開発ノードや SQL クエリで使用するユーザー定義関数 (UDF) として登録します。
前提条件
開始する前に、次のことを確認してください:
アップロードするリソースファイルが準備されていること (ローカルマシンまたは OSS バケットから)
OSS からアップロードする場合は、次のことも確認してください:
OSS が有効化され、バケットが作成され、リソースファイルがそのバケットに保存されていること。詳細については、「バケットの作成」および「シンプルなアップロード」をご参照ください。
アップロードに使用する Alibaba Cloud アカウントがターゲットバケットへのアクセス権を持っていること。アップロードする前に必要な権限を付与してください。
リソース管理への移動
DataWorks コンソールの [Workspaces] ページに移動します。上部のナビゲーションバーでリージョンを選択します。対象のワークスペースを見つけ、[Actions] 列で [Shortcuts] > [Data Studio] を選択します。
左側のナビゲーションウィンドウで、リソース管理アイコン
をクリックして [リソース管理] ページを開きます。
アイコンをクリックしてリソースまたは関数を作成します。先にリソースを整理するには、[ディレクトリの作成] をクリックし、対象のフォルダを右クリックして作成するリソースまたは関数のタイプを選択します。
リソースの作成と管理
リソースタイプ
リソースは、MaxCompute でユーザー定義関数 (UDF) や MapReduce ジョブを実行するための基盤です。Data Studio は、ローカルマシンまたは OSS からリソースをアップロードするためのビジュアルインターフェイスを提供します。アップロードされたリソースは、UDF および MapReduce の実行中に読み取ることができます。
DataWorks を介して MaxCompute にリソースをアップロードすると、MaxCompute のストレージ料金が発生します。
サポートされているリソースタイプは次のとおりです:
| リソースタイプ | 説明 | ファイル拡張子 |
|---|---|---|
| Python | Python UDF を登録するための Python コード | .py |
| JAR | Java プログラムを実行するためのコンパイル済み Java JAR パッケージ | .jar |
| アーカイブ | 圧縮ファイルのみ | .zip、.tgz、.tar.gz、.tar、.jar |
| ファイル | 任意のファイルタイプ。実際の使用方法はエンジンに依存します | 任意 |
制限事項
| 制約 | 上限 |
|---|---|
| オンライン編集 — Python | 10 MB まで |
| オンライン編集 — ファイル | 500 KB まで |
| ローカルマシンからのアップロード | 500 MB まで |
| OSS からのアップロード | 500 MB まで |
公開:標準モードのワークスペースでは、リソースを本番環境に公開してから有効になります。
データソースの構成は、開発環境と本番環境で異なる場合があります。ある環境でテーブルやリソースをクエリする前に、その環境のデータソースを確認してください。
可視性:DataWorks は、そのインターフェイスを介してアップロードされたリソースのみを表示および管理します。他の方法でアップロードされたリソースはリソースリストに表示されませんが、「プロジェクト内のすべてのリソースの表示」で説明されている方法で表示できます。
リソースの作成
MaxCompute リソースは、ローカルマシンまたは OSS からアップロードできます。作成後、データ開発ノードで直接参照したり、関数として登録したりできます。
[リソース管理] ページの [リソースまたは関数の作成] ダイアログボックスで、リソースの [タイプ]、[パス]、[名前] を設定します。
ファイルソースを設定します:
パラメーター 説明 [ファイルソース] ローカルマシンからアップロードする場合は [オンプレミス] を、OSS バケット内のファイルを参照する場合は [OSS] を選択します。 [ファイルコンテンツ] [オンプレミス] の場合: [アップロード] をクリックしてローカルファイルを選択します。 [OSS] の場合: ドロップダウンリストからファイルを選択します。 [データソース] リソースが所属する MaxCompute データソースを選択します。 ツールバーの [保存] をクリックし、次に [公開] をクリックします。公開されたリソースのみがデータ開発で使用できます。
リソースの使用
リソースを作成した後、データ開発ノードでそれを参照します:
左側のナビゲーションウィンドウで、[リソース管理] をクリックします。
対象のリソースを見つけ、右クリックして [リソースの参照] を選択します。
次の参照コードがノードに追加されます:
##@resource_reference{"Resource Name"}たとえば、PyODPS 3 ノードでは次のように表示されます:
##@resource_reference{"example.py"}正確なフォーマットはノードタイプによって異なります。または、リソースを関数として登録し、開発ノードで呼び出すこともできます。
リソースの管理
[リソース管理] ページでリソースをクリックすると、次の操作を実行できます:
履歴バージョンの表示:公開されたリソースのバージョンを比較して変更を追跡します。比較を有効にするには、少なくとも 2 つのバージョンを選択します。
リソースの削除:開発環境からリソースを削除します。本番環境から削除するには、変更を公開します。公開タスクが成功すると、リソースは両方の環境から削除されます。詳細については、「タスクの公開」をご参照ください。
プロジェクト内のすべてのリソースの表示
DataWorks は、そのインターフェイスを介してアップロードされたリソースのみを表示します。MaxCompute プロジェクト内のすべてのリソース (他の方法でアップロードされたものを含む) を表示するには、次のいずれかの方法を使用します:
データカタログ:MaxCompute プロジェクトをデータカタログに追加した後、対応する MaxCompute フォルダを開き、リソースディレクトリを参照します。
MaxCompute SQL ノード:MaxCompute SQL ノードで次のコマンドを実行します。デフォルトでは、コマンドは開発環境にアタッチされたコンピューティングリソースにアクセスします。現在のプロジェクトのすべてのリソースを表示します:
list resources;特定のプロジェクトのすべてのリソースを表示します:
use MaxCompute_project_name; list resources;リソースコマンドの完全なリストについては、「リソース操作」をご参照ください。
関数の作成と管理
関数を作成する前に、まずリソースを作成して公開してください。
MaxCompute リソースファイルの準備に関するガイダンスについては、「UDF 開発 (Java)」および「UDF 開発 (Python 3)」をご参照ください。
UDF と組み込み関数の使い分け
ワークフローで必要な処理ロジックが既存の組み込み関数で表現できない場合は、UDF を使用します。集計、日付演算、文字列操作などの標準的な操作には、代わりにMaxCompute 組み込み関数を使用してください。
関数タイプ
Data Studio は、次の関数タイプをサポートしています。UDF の動作に一致するタイプを選択してください:
| 関数タイプ | 動作 |
|---|---|
| MATH | 数値に対する数学的演算 |
| AGGREGATE | 複数の行に対して操作を行い、単一の値を返す |
| STRING | 文字列の処理と変換 |
| DATE | 日付と時刻の操作 |
| ANALYTIC | 現在の行に関連する行のセットに対して結果を計算するウィンドウ関数 |
| OTHER | 上記のカテゴリに当てはまらない関数 |
関数の作成
[リソース管理] ページの [リソースまたは関数の作成] ダイアログボックスで、関数の [タイプ]、[パス]、[名前] を設定します。
関数を設定します:
パラメーター 説明 関数タイプ 関数タイプを選択します。「関数タイプ」をご参照ください。 クラス名 UDF のエントリポイントクラスを resource_name.class_name形式で指定します。「クラス名のフォーマット」をご参照ください。タイプ [リソース関数] または [埋め込み関数] を選択します。リソース関数は、アップロードされたリソースファイルを参照します。埋め込み関数にはインラインコードが含まれます。リソースに加えて、[言語] ( JAVA、PYTHON2、またはPYTHON3) と [コード] を設定します。リソースリスト 関数に関連付けるリソースを選択します。[ビジュアルモード] では、すでに DataWorks にアップロードされているリソースから選択します。[コードエディター] モードでは、リソース名を手動で入力します。複数のリソースはカンマで区切ります。DataWorks で管理されていないリソース (テーブルリソースや MaxCompute に直接アップロードされたリソースなど) の場合は、コードエディターモードを使用します。リソースファイルのパスは含めないでください。名前だけで十分です。 コマンド構文 UDF の呼び出し方法を示す例です。 ツールバーの [保存] をクリックし、次に [公開] をクリックします。公開された関数のみがデータ開発で利用できます。
クラス名のフォーマット
クラス名は UDF のエントリポイントを識別します。フォーマットはリソースタイプによって異なります:
JAR リソース — packageName.ActualClassName を使用します:
com.aliyun.odps.examples.udf.UDAFExampleこの値は、IntelliJ IDEA で [リファレンスのコピー] を使用して取得します。関数が ([名前] フィールドで設定された) 名前で公開された後、SQL でその名前で呼び出します:
SELECT your_function_name(column_name) FROM table;Python リソース — PythonResourceName.ActualClassName を使用します:
LcLognormDist_sh.LcLognormDist_sh関数が公開された後、SQL で登録された名前で呼び出します:
SELECT your_function_name(column_name) FROM table;リソース名を入力する際に、.jar または .py のサフィックスを追加しないでください。リソースは参照される前に公開されている必要があります。
ユーザー定義関数の使用
関数が公開された後、データ開発ノードまたは SQL クエリで使用します:
データ開発ノードで:左側のナビゲーションウィンドウで [リソース管理] をクリックし、関数を見つけて右クリックし、[関数の挿入] を選択します。関数名がエディターに挿入されます。例:
example_function()。SQL クエリで:関数を名前で直接呼び出します:
SELECT example_function(column_name) FROM table;
組み込み関数の使用
MaxCompute は、数学、文字列、日付、集計、ウィンドウ操作をカバーする一連の組み込み関数を提供します。
次のいずれかの方法で組み込み関数を参照します:
MaxCompute SQL ノードで次のコマンドを実行します:
show builtin functions [<function_name>];<function_name>を特定の組み込み関数の名前に置き換えて結果をフィルタリングします。このコマンドを MaxCompute クライアント (odpscmd) を使用して実行する場合、バージョン 0.43.0 以降が必要です。
使用上の注意と制限:
典型的なユースケース:
トラブルシューティング:
関数の管理
[リソース管理] ページで関数をクリックすると、次の操作を実行できます:
履歴バージョンの表示:関数編集ページの右側にある [バージョン] ボタンをクリックします。保存または公開されたバージョンを比較して変更を追跡します。比較を有効にするには、少なくとも 2 つのバージョンを選択します。
関数の削除:関数を右クリックして [削除] を選択します。本番環境から削除するには、変更を公開します。詳細については、「タスクの公開」をご参照ください。
SQL を介してユーザー定義関数を検査するには、MaxCompute SQL ノードで次のコマンドを実行します:
アタッチされた MaxCompute プロジェクトに登録されているすべての UDF を表示します:
SHOW FUNCTIONS;特定の UDF の詳細を表示します:
DESC FUNCTION <function_name>;よくある質問
Q:DataWorks でリソースをアップロードして UDF として登録した後、DataAnalysis の SQL クエリと MaxCompute SQL ノードの両方で使用できますか?
はい。DataWorks を介して登録された UDF は MaxCompute プロジェクトに保存されるため、MaxCompute SQL ノードと DataAnalysis の SQL クエリ (レガシー) の両方で利用できます。