DataStudio では、MaxCompute プロジェクトのリソースを管理できます。ローカルファイルまたは Object Storage Service (OSS) ファイルからリソースを作成し、データ開発ノードで使用する関数として登録できます。このトピックでは、Resource Management でさまざまな種類の MaxCompute リソースと関数を作成する方法について説明します。
前提条件
リソースファイルが開発済みであること。ファイルはローカルマシンからアップロードするか、Object Storage Service (OSS) から取得できます。OSS からファイルをアップロードしてリソースを作成する場合は、次の条件を満たす必要があります。
OSS が有効化され、バケットが作成され、アップロードしたいリソースファイルが OSS バケットに保存されていること。詳細については、「バケットの作成」および「簡易アップロード」をご参照ください。
説明サポートされているリソースファイルの詳細については、「リソースの説明」をご参照ください。
ファイルのアップロードに使用する Alibaba Cloud アカウントに、ターゲットバケットへのアクセス権限が付与されていること。権限の問題を回避するため、ファイルをアップロードする前に、関連アカウントに権限を付与してください。
Resource Management への移動
DataWorks コンソールの ワークスペースページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[操作] 列の を選択します。
左側のナビゲーションウィンドウで、Resource Management アイコン
をクリックして、[Resource Management] ページに移動します。[Resource Management] ページで、
アイコンをクリックして新しいリソースまたは関数を作成します。または、まず [新しいフォルダー] をクリックしてリソースを整理することもできます。次に、ターゲットフォルダーを右クリックし、[新規作成] を選択して、作成するリソースまたは関数のタイプを選択します。
リソースの作成と管理
リソースの説明
MaxCompute のリソースは、ユーザー定義関数 (UDF) や MapReduce 機能を実装するための基盤です。DataStudio では、可視化インターフェイスを使用して、ローカルマシンまたは OSS に保存されているリソースをアップロードできます。これらのリソースは、UDF と MapReduce の実行中に読み取って使用できます。以下の MaxCompute リソースタイプがサポートされています。
DataWorks を使用して MaxCompute にリソースをアップロードすると、MaxCompute のストレージ料金が発生します。
リソースタイプ | 説明 |
Python | Python UDF の登録に使用される Python コードを格納します。ファイル名拡張子は |
[JAR] | Java プログラムの実行に使用される、コンパイル済みの Java JAR パッケージです。ファイル名拡張子は |
[アーカイブ] |
|
ファイル |
|
制限事項
リソースをアップロードする際は、以下の制限事項にご注意ください。
リソースサイズ:
オンライン編集:Python リソースは最大 10 MB、ファイルリソースは最大 500 KB です。
ローカルマシンからのアップロード:最大 500 MB のリソースをアップロードできます。
OSS からのアップロード:最大 500 MB のリソースをアップロードできます。
リソースの公開:標準モードのワークスペースを使用する場合、リソースを有効にするには本番環境に公開する必要があります。
説明データソース情報は、開発環境と本番環境で異なる場合があります。ある環境でテーブルやリソースをクエリする前に、その環境のデータソース情報を確認してください。
リソース管理:DataWorks では、DataWorks インターフェイスを使用してアップロードしたリソースのみを表示および管理できます。
リソースの作成
MaxCompute リソースは、ローカルマシンまたは OSS からアップロードできます。作成したリソースは、データ開発で直接参照したり、それらから関数を作成したりできます。
Resource Management ページで、表示される [リソースと関数の作成] ダイアログボックスで、リソースの [タイプ]、[パス]、[名前] を設定します。
ソースとしてローカルファイルまたは OSS ファイルをアップロードします。次の表に、リソースのアップロードに関する主要なパラメーターを示します。
設定項目
設定内容
ファイルソース
オブジェクトファイルのソース。サポートされているソースは [ローカル] と [OSS] です。
ファイルコンテンツ
[ローカル] を選択した場合、[ファイルのアップロード] で [クリックしてアップロード] をクリックしてローカルファイルをアップロードします。
[OSS] を選択した場合、[ファイルの選択] ドロップダウンリストから対応する OSS ファイルを選択します。
データソース
アップロードされた MaxCompute リソースが属するデータソースを選択します。
上部のツールバーで [保存] をクリックし、次に [公開] をクリックしてリソースを公開します。公開済みのリソースのみがデータ開発で使用できます。
リソースの使用
リソースを作成した後、データ開発ノードでそれを参照できます。これを行うには、左側のナビゲーションウィンドウで [Resource Management] をクリックし、ターゲットリソースを見つけて右クリックし、[リソースの参照] を選択します。リソースが正常に参照されると、##@resource_reference{"リソース名"} 形式のコードがノードに追加されます。
たとえば、PyODPS 3 ノードでは、コードは ##@resource_reference{"example.py"} のように表示されます。表示形式はノードタイプによって異なります。
または、リソースから関数を作成し、開発者ノードで使用することもできます。
リソースの管理
DataWorks では、可視化インターフェイスを使用してアップロードしたリソースのみを表示および管理できます。Resource Management ページでリソースをクリックすると、管理操作を実行できます。
履歴バージョンの表示:公開されたリソースバージョンを表示および比較して、それらの間の変更点を確認します。
説明バージョンを比較するには、少なくとも 2 つのバージョンを選択する必要があります。
リソースの削除:この操作により、開発環境からリソースが削除されます。本番環境からリソースを削除するには、この変更を公開する必要があります。公開タスクが成功すると、リソースは本番環境からも削除されます。詳細については、「タスクの公開」をご参照ください。
他のリソースの表示
MaxCompute には、DataWorks 以外の方法でアップロードされたリソースが含まれている場合があります。これらのリソースは、次の方法で表示できます。
データカタログを使用して、MaxCompute プロジェクト内のすべてのリソースを表示します。
MaxCompute プロジェクトをデータカタログに追加した後、データカタログで対応する MaxCompute フォルダーを開き、リソースディレクトリの下にある現在のプロジェクトのすべてのリソースを表示できます。
MaxCompute SQL ノードを使用して、MaxCompute プロジェクト内の他のリソースを表示します。
現在のプロジェクトのすべてのリソースを表示します。データ開発で MaxCompute SQL スクリプトを作成してこのコマンドを実行すると、システムはデフォルトで開発環境にアタッチされている MaxCompute 計算リソースにアクセスします。
list resources;指定したプロジェクトのすべてのリソースを表示します。
use MaxCompute_project_name; list resources;
コマンド操作の詳細については、「リソース操作」をご参照ください。
関数の作成と管理
関数を作成する前に、リソースが作成されていることを確認してください。
MaxCompute リソースファイルの準備については、「UDF 開発 (Java)」および「UDF 開発 (Python 3)」をご参照ください。
関数の説明
DataStudio では、Resource and Function Management でリソースを関数として登録できます。データ開発または SQL クエリでは、アップロードおよび公開されたリソースから関数を作成したり、JAVA、PYTHON2、または PYTHON3 を使用して埋め込み関数を作成したり、直接 MaxCompute ビルトイン関数を使用したりすることもできます。
関数の作成
Resource Management ページで、表示される [リソースと関数の新規作成] ダイアログボックスで、関数の [タイプ]、[パス]、[名前] を設定します。
関数リソースを作成し、その情報を設定します。
MaxCompute 関数を設定する前に、MaxCompute プロジェクトが DataWorks の計算リソースとして登録され、MaxCompute リソースがアップロードされていることを確認してください。次の表に、MaxCompute 関数の主要なパラメーターを示します。
パラメーター
説明
機能タイプ
関数タイプを選択します。有効な値:[MATH] (算術演算関数)、[AGGREGATE] (集計関数)、[STRING] (文字列処理関数)、[DATE] (日付関数)、[ANALYTIC] (ウィンドウ関数)、[OTHER] (その他の関数)。
クラス名
UDF のクラス名。
resource_name.class_name形式です。リソース名は Java パッケージ名または Python リソース名にすることができます。DataWorks でユーザー定義関数を作成する場合、JAR および Python タイプの MaxCompute リソースを使用できます。クラス名は、リソースタイプごとに異なって設定されます。
リソースタイプが JAR の場合、[クラス名] は
packageName.ActualClassName形式である必要があります。この値は、IntelliJ IDEAからCopy Reference文を使用して取得できます。たとえば、
com.aliyun.odps.examples.udfが Java パッケージ名で、UDAFExampleが実際のクラス名の場合、[クラス名] パラメーターはcom.aliyun.odps.examples.udf.UDAFExampleに設定されます。リソースタイプが Python の場合、[クラス名] の形式は
PythonResourceName.ActualClassNameです。たとえば、Python リソース名が
LcLognormDist_shで、実際のクラス名がLcLognormDist_shの場合、[クラス名] パラメーターはLcLognormDist_sh.LcLognormDist_shに設定されます。
説明リソース名を入力する際に、
.jarまたは.pyのサフィックスを追加しないでください。リソースは、使用する前に送信して公開する必要があります。
タイプ
[リソース関数] または [埋め込み関数] を選択します。
[リソース関数] を選択した場合は、[リソースリスト] を設定するだけで済みます。
埋め込み関数を選択した場合、[リソース] の選択に加えて、[言語] (
JAVA、PYTHON2、またはPYTHON3) と [コード] も設定する必要があります。
[リソースリスト]
関数の登録に使用するリソースを選択します。
可視化モード:DataWorks にアップロードまたは追加されたリソースのみを選択できます。
スクリプトモード:対応するデータソース内のすべてのリソースを入力できます。UDF が複数のリソースを呼び出す場合は、コンマ (,) で区切ります。
説明追加されたリソースのパスを入力する必要はありません。
テーブルリソースなど、DataWorks が可視化機能によるアップロードをサポートしていないリソースや、他の方法で MaxCompute にアップロードされ、DataWorks の可視化で管理されていないリソースは、スクリプトモードで手動で入力できます。
[コマンド形式]
この UDF の使用方法の例。
上部のツールバーで [保存] をクリックし、次に [公開] をクリックして関数を公開します。公開済みの関数のみがデータ開発で使用できます。
関数の使用
ユーザー定義関数の使用
関数が作成され公開された後、データ開発または SQL クエリで直接参照できます。
データ開発ノードを編集する際、左側のナビゲーションウィンドウで [Resource Management] をクリックします。次に、ターゲットのリソースまたは関数を見つけて右クリックし、[関数の参照] を選択します。
関数が正常に参照されると、ユーザー定義関数の名前がノード編集ページに自動的に挿入されます。例:
example_function()。SQL クエリを編集する際、作成した関数を直接使用できます。
SELECT example_function(column_name) FROM table;ビルトイン関数の使用
DataWorks は、ユーザー定義関数と MaxCompute ビルトイン関数の 2 種類の関数をサポートしています。ビルトイン関数をタイプ別に表示したり、アルファベット順に表示したりできます。
注意事項:ビルトイン関数の使用に関する注意事項については、「注意事項」をご参照ください。
制限事項:ビルトイン関数の制限事項については、「JSON 関数の制限事項」および「文字列関数の制限事項」をご参照ください。
ビルトイン関数は、次の 3 つの方法のいずれかで表示できます。
MaxCompute SQL ノードで次のコマンドを使用して、ビルトイン関数を表示します。
show builtin functions [<function_name>]; --<function_name> は特定のビルトイン関数の名前です。説明<function_name>はプレースホルダーです。ビルトイン関数の名前に置き換えてください。MaxCompute クライアント (odpscmd) を使用して
show builtin functions;コマンドを実行する場合、odpscmd のバージョンは 0.43.0 以降である必要があります。
ビルトイン関数の典型的な使用例については、以下をご参照ください。
ビルトイン関数の使用中に発生した問題のトラブルシューティングについては、以下をご参照ください。
関数の管理
Resource Management ページで関数をクリックすると、管理操作を実行できます。
履歴バージョンの表示:関数編集ページの右側にあるバージョンボタンをクリックします。保存または公開された関数バージョンを表示および比較して、それらの間の変更点を確認できます。
説明バージョンを比較するには、少なくとも 2 つのバージョンを選択する必要があります。
関数の削除:ターゲット関数を右クリックし、[削除] を選択します。
本番環境から関数を削除するには、この変更を公開する必要があります。公開タスクが成功すると、関数は本番環境からも削除されます。詳細については、「タスクの公開」をご参照ください。
ユーザー定義関数リストの表示
// 現在の DataWorks ワークスペースにアタッチされている MaxCompute 計算リソースプロジェクト内の関数を表示します。
SHOW FUNCTIONS;ユーザー定義関数の詳細の表示
DESCRIBEコマンドまたはその省略形DESCの後に関数名を入力して、ユーザー定義関数の詳細を表示します。// 省略形を使用してユーザー定義関数の詳細を表示します DESC FUNCTION <function_name>;DataWorks では、ビジネスワークフローで必要な処理ロジックが既存の関数で実装できない場合、MaxCompute ユーザー定義関数を作成できます。その後、JAR パッケージや Python ファイルなどの対応するリソースをアップロードして関連付けることで、データ処理能力を拡張できます。
よくある質問
Q:DataWorks を通じてリソースをアップロードし、それをユーザー定義関数 (UDF) として定義した後、データ分析の SQL クエリやデータ開発の ODPS SQL ノードで使用できますか?
A:はい、できます。DataWorks を通じて登録された UDF は MaxCompute プロジェクトに保存されるため、MaxCompute SQL ノードとデータ分析のSQL クエリ (レガシー)の両方で使用できます。