DataWorks は、タスク実行環境の作成と管理に使用できるイメージ管理機能を提供します。タスクの実行に特定の環境が必要な場合は、イメージ管理機能を使用して、必要な開発パッケージと依存関係を統合したカスタムイメージを作成できます。たとえば、カスタムイメージを使用して、PyODPS タスクの実行に必要なサードパーティの依存関係をインストールできます。このトピックでは、イメージ管理機能を使用してカスタムイメージを作成する方法について説明します。
背景情報
デフォルトでは、DataWorks はデフォルトの標準イメージを使用してタスクを実行します。DataWorks は、実行するタスクのタイプに基づいて適切なイメージを提供します。公式イメージは、事前構成されたベースイメージとして機能し、特定タイプのタスクに標準化されたランタイム環境を提供します。カスタムイメージは、公式イメージに基づいて強化された機能と柔軟性を提供します。実際のアプリケーションシナリオに基づいてベースイメージを拡張し、オンデマンドの機能カスタマイズを実現できます。これにより、データ処理タスクの実行効率と柔軟性が向上します。
カスタムイメージを作成する方法:
DataWorks 公式イメージに基づく
Alibaba Cloud Container Registry のイメージを参照する
個人開発環境 に基づく
カスタムイメージとイメージ作成方法をサポートするノードタイプ:
ノードタイプ
Container Registry のイメージを参照して作成
DataWorks 公式イメージに基づいて作成
PyODPS 2
PyODPS 3
EMR Spark
EMR Spark SQL
EMR Shell
Shell
Python
Notebook
注意事項
イメージ管理機能は、サーバーレスリソースグループとのみ併用できます。
説明旧バージョンの専用スケジューリングリソースグループを使用して PyODPS ノードを実行する場合にサードパーティパッケージが必要な場合は、O&M アシスタント機能を使用してサードパーティパッケージをインストールできます。詳細については、「専用スケジューリングリソースグループを使用してサードパーティのオープンソースパッケージを設定する(非推奨)」をご参照ください。
作成できるカスタムイメージの最大数は、DataWorks エディションによって異なります。
DataWorks Basic Edition および Standard Edition:10
DataWorks Professional Edition:50
DataWorks Enterprise Edition:100
DataWorks Professional Edition 以降のエディションのみが イメージビルド 機能をサポートしています。
各リージョンで同時にビルドできるイメージは最大 2 つです。
前提条件
サーバーレスリソースグループが作成されていること。イメージ管理機能は、サーバーレスリソースグループと併用する必要があります。サーバーレスリソースグループの詳細については、「サーバーレスリソースグループを作成して使用する」をご参照ください。
オプション。サーバーレスリソースグループが関連付けられている VPC(Virtual Private Cloud)がインターネットにアクセスできること。この前提条件は、タスクを実行する環境がインターネット経由でデプロイされたサードパーティパッケージに依存している場合に必要です。詳細については、「インターネット NAT ゲートウェイの SNAT 機能を使用してインターネットにアクセスする」をご参照ください。
使用するアカウントに、AliyunDataWorksFullAccess ポリシー、または ModifyResourceGroup 権限を含むポリシーがアタッチされていること。詳細については、「RAM ポリシーを使用して DataWorks サービスおよび DataWorks コンソール内のエンティティに対する権限を管理する」をご参照ください。
Container Registry がアクティブ化されていること。この前提条件は、Container Registry のイメージを参照してカスタムイメージを作成する場合に必要です。Container Registry の詳細については、「Container Registry とは」をご参照ください。
ステップ 1:イメージ管理ページに移動する
DataWorks コンソール にログオンします。
イメージ管理ページに移動します。
左側のナビゲーションウィンドウで、[イメージ管理] をクリックします。
ステップ 2:カスタムイメージを作成する
DataWorks コンソールでカスタムイメージを作成する場合は、「参照タイプ」パラメータを [DataWorks 公式イメージ] または [Alibaba Cloud Container Registry イメージ] に設定できます。カスタムイメージの作成のために構成されるパラメータは、選択した参照タイプによって異なります。
方法 1:DataWorks 公式イメージに基づいてカスタムイメージを作成する
次の表に示すパラメータを設定します。
パラメータ
説明
イメージ名
カスタムイメージの名前。
イメージの説明
カスタムイメージの説明。
参照タイプ
[DataWorks 公式イメージ] を選択します。
イメージの名前空間
このパラメータの値は [DataWorks デフォルト] に固定されています。
イメージリポジトリ
このパラメータの値は [DataWorks デフォルト] に固定されています。
イメージ名/ID
カスタムイメージの作成元となる DataWorks 公式イメージを選択します。
表示範囲
カスタムイメージが表示される範囲。有効な値:[作成者のみ表示] および [全員に表示]。
モジュール
カスタムイメージを適用できるサービス。このパラメータは [DataStudio] にのみ設定できます。
サポートされているタスクタイプ
dataworks_shell_task_pod:
Shell
タスクに使用可能dataworks_pyodps_task_pod:
PyODPS 2
およびPyODPS 3
タスクに使用可能dataworks_emr_datalake_5.15.1_task_pod:
E-MapReduce (EMR) Spark
、EMR Spark SQL
、およびEMR Shell
タスクに使用可能
インストールパッケージ
使用するサードパーティパッケージ。次のいずれかの方法を使用して、サードパーティパッケージをインストールできます。
クイックインストール: [インストールパッケージ] ドロップダウンリストから
Python2
、Python3
、またはYum
を選択し、目的の環境またはリソースを選択します。手動入力: [インストールパッケージ] ドロップダウンリストから
スクリプト
を選択します。次に、コマンドボックスにコマンドを記述して、目的のサードパーティパッケージをインストールします。次のコマンドのいずれかを実行して、サードパーティパッケージをインストールできます。Python 2 の場合:
pip install xx
Python 3 の場合:
/home/tops/bin/pip3 install 'urllib3<2.0'
yum install -y git
wget git
[OK] をクリックします。
方法 2:Container Registry のイメージを参照してカスタムイメージを作成する
制限事項
DataWorks では、Container Registry Enterprise Edition のイメージのみを参照できます。
DataWorks では、イメージのビルドに使用される Container Registry インスタンスに VPC 経由でのみ アクセスできます。
DataWorks で使用できる Container Registry インスタンスのサイズは 5 GB を超えることはできません。
次の表に示すパラメータを設定します。
パラメータ
説明
イメージ名
カスタムイメージの名前。
イメージの説明
カスタムイメージの説明。
参照タイプ
[Alibaba Cloud Container Registry イメージ] を選択します。
イメージインスタンス ID
インスタンス ID によって Alibaba Cloud Container Registry で作成された Container Registry Enterprise Edition インスタンスを選択します。インスタンスの作成方法については、「Container Registry Enterprise Edition インスタンスを作成する」をご参照ください。
イメージの名前空間
選択したインスタンスに基づいて名前空間を選択します。名前空間の作成方法については、「名前空間を作成する」をご参照ください。
イメージリポジトリ
選択したインスタンスに基づいてイメージリポジトリを選択します。イメージリポジトリの作成方法については、「イメージリポジトリを作成する」をご参照ください。
イメージバージョン
選択したイメージリポジトリに基づいて、作成するカスタムイメージのバージョンを選択します。
関連付ける VPC
インスタンスを関連付ける VPC を選択します。VPC の設定方法については、「VPC ACL を設定する」をご参照ください。
表示範囲
カスタムイメージが表示される範囲。有効な値:[作成者のみ表示] および [全員に表示]。
モジュール
カスタムイメージを適用できるサービス。このパラメータは [DataStudio] にのみ設定できます。
サポートされているタスクタイプ
Container Registry イメージは、
起動コマンドとタスクコードファイルパス を使用して起動されます。サポートされているタスクタイプとデフォルトの起動コマンドについては、以下で説明します。
Shell
Python
Alibaba Cloud Container Registry イメージに基づいて作成されたカスタムイメージを Python タスクに適用する場合は、目的の Container Registry インスタンスに Python 環境が含まれていることを確認する必要があります。
Notebook
Alibaba Cloud Container Registry イメージに基づいて作成されたカスタムイメージをノートブックタスクに適用する場合は、DataWorks が提供する次の基本ノートブックイメージを Container Registry イメージのベースイメージとして使用して、ノートブックタスクのランタイム環境を提供します:
dataworks-public-registry.cn-shanghai.cr.aliyuncs.com/public/dataworks-notebook:py3.11-ubuntu22.04-20241202
イメージの作成に使用する環境がインターネットにアクセスできることを確認してください。これにより、DataWorks が提供する基本ノートブックイメージを想定どおりに取得できます。
[OK] をクリックします。
方法 3:個人開発環境インスタンスに基づいてカスタムイメージを作成する
新しいバージョンの Data Studio では、個人開発環境のイメージを作成できます。詳細については、「個人開発環境インスタンスのイメージを作成する」をご参照ください。
ステップ 3: カスタムイメージを公開する
作成したカスタムイメージを公開するには、次の操作を実行します。DataWorks コンソール にログオンします。左側のナビゲーションウィンドウで、[イメージ管理] をクリックします。[イメージ管理] ページで、[カスタムイメージ] タブをクリックします。次に、目的のカスタムイメージを見つけ、[テスト] し、[公開] します。テストおよび公開プロセスでは、次の項目に注意してください。
テスト用にサーバーレス リソースグループを選択します。
テストに合格した イメージのみを公開できます。
Alibaba Cloud Container Registry のイメージを参照して、または 個人の開発環境に基づいて カスタムイメージを作成する場合は、テストおよび公開用に選択したサーバーレス リソースグループが 関連付けられている VPC が、Container Registry インスタンスが関連付けられている VPC と同じであることを確認する必要があります。
インターネット経由でデプロイされるサードパーティ製パッケージをカスタムイメージとして構成し、長期間テストに合格できない場合は、選択した [テスト リソースグループ] が関連付けられている VPC がインターネットにアクセスできるかどうかを確認します。VPC がインターネットにアクセスできない場合は、VPC のインターネットアクセスを有効にします。
イメージがテストに合格しない場合は、次の操作を実行してイメージ構成を変更できます。目的のカスタムイメージを見つけ、 列の
アクション アイコンにポインターを移動し、[変更] を選択します。
手順 4: カスタム イメージをワークスペースに関連付ける
カスタムイメージを公開した後、カスタムイメージが関連付けられているワークスペースを変更して、カスタムイメージを異なるワークスペースで使用できるようにすることができます。公開済みのカスタムイメージをワークスペースに関連付けるには、次の操作を実行します。
[カスタム イメージ] タブで、公開されているカスタム イメージを見つけます。
アイコンの上にポインターを移動し、[アクション] 列で [ワークスペースの変更] を選択して、カスタムイメージをワークスペースに関連付けます。
ステップ 5: 永続イメージをビルドする
ステップ 4 の操作を完了すると、ビジネスでカスタムイメージを想定どおりに使用できます。ただし、カスタムイメージを使用するノードを実行するたびに、DataWorks はイメージ環境を再デプロイし、サードパーティ製パッケージをダウンロードします。その結果、ノードの実行時間が長くなり、より多くのコンピューティング料金が発生する可能性があります。この場合、DataWorks では、カスタムイメージを永続イメージとして作成できます。このように、ノードを実行するたびに同じイメージ環境を使用できるため、イメージ環境を繰り返しデプロイする必要がなくなります。これにより、ランタイム環境の一貫性が確保され、タスクの実行時間、コンピューティングコスト、およびトラフィックコストが削減されます。
公式イメージに基づいて作成されたカスタムイメージのみを永続イメージとして作成できます。
永続イメージをビルドするには、次の手順を実行します。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。次に、左側のナビゲーションウィンドウで [イメージ管理] をクリックします。
[イメージ管理] ページで、[カスタムイメージ] タブをクリックします。[カスタムイメージ] タブで、公開されているカスタムイメージを見つけます。
アイコンにポインターを合わせ、[アクション] 列で [作成] を選択します。
[イメージを作成するリソースグループ] ダイアログボックスで、ドロップダウンリストから使用するリソースグループを選択し、[続行] をクリックします。
説明イメージのビルドが完了するまで約 5 ~ 10 分かかります。必要な実際の時間は、ビルドするイメージのサイズによって異なります。
イメージを構築すると、コンピューティング料金が発生します。コンピューティング料金は、次の式を使用して計算されます。
0.5 CUs × Duration for image building
。詳細については、「データコンピューティングの課金」をご参照ください。ネットワークの例外により、イメージのビルドに失敗する場合があります。このような問題を防ぐために、[イメージを作成するリソースグループ] ダイアログボックスで選択したリソースグループが、このトピックの ステップ 3: カスタムイメージを公開する で選択した [テストリソースグループ] であることを確認してください。
ステップ 3:カスタムイメージを公開する
旧バージョンの DataStudio でカスタムイメージを使用する
DataStudio ページに移動します。
DataWorks コンソール にログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
DataStudio ページで目的のノードを見つけ、ノードの構成タブに移動します。 右側のナビゲーションウィンドウで [プロパティ] をクリックし、パラメーターを構成します。
[リソースグループ]: サーバーレスリソースグループを選択します。
説明[リソースグループ] パラメーターが、[カスタムイメージを公開] したときに選択した [テストリソースグループ] に設定されていることを確認して、ノードがスムーズに実行されるようにします。
目的のリソースグループが [リソースグループ] ドロップダウンリストに表示されない場合は、リソースグループが現在のワークスペースに関連付けられているかどうかを確認します。 リソースグループが現在のワークスペースに関連付けられていない場合は、次の操作を実行して関連付けを完了できます。リソースグループ ページに移動します。 目的のリソースグループを見つけ、[アクション] 列の [ワークスペースの関連付け] をクリックします。
[イメージ]: 公開されているカスタムイメージを選択します。
ノードをデバッグします。
ノードの構成タブの上部ツールバーにある
[(パラメーター付きで実行)] アイコンをクリックします。 [パラメーター] ダイアログボックスで、[リソースグループ名]、[実行用 CU]、[イメージ] パラメーターを構成し、[実行] をクリックします。
ノードを本番環境にデプロイします。
説明DataStudio で選択されたイメージは、本番環境に同期できません。 イメージを本番環境で有効にするには、ノードをデプロイする必要があります。
詳細については、「ノードのデプロイ」をご参照ください。
新バージョンの Data Studio でカスタムイメージを使用する
Data Studio ページに移動します。
DataWorks コンソールの ワークスペースページ に移動します。 上部のナビゲーションバーで、目的のリージョンを選択します。 目的のワークスペースを見つけ、 列で アクション を選択します。
Data Studio ページで目的のノードを見つけ、ノードの構成タブに移動します。 右側のナビゲーションウィンドウで [プロパティ] をクリックし、パラメーターを構成します。
[スケジューリング用リソースグループ]: サーバーレスリソースグループを選択します。
説明[スケジューリング用リソースグループ] パラメーターが、[カスタムイメージを公開] したときに選択した [テストリソースグループ] に設定されていることを確認して、ノードがスムーズに実行されるようにします。
[スケジューリング用リソースグループ] ドロップダウンリストに目的のリソースグループが表示されない場合は、リソースグループが現在のワークスペースに関連付けられているかどうかを確認します。 リソースグループが現在のワークスペースに関連付けられていない場合は、次の操作を実行して関連付けを完了できます。 リソースグループ ページに移動します。 目的のリソースグループを見つけ、[アクション] 列の [ワークスペースの関連付け] をクリックします。
[イメージ]: 公開されているカスタムイメージを選択します。
ノードをデバッグします。
ノードの構成タブの右側のナビゲーションウィンドウにある [デバッグ構成] タブで、[コンピューティングリソース]、[リソースグループ]、[コンピューティング用 CU]、[イメージ] パラメーターを構成し、[スクリプトパラメーター] セクションのパラメーターを構成します。 その後、ノードの構成タブの上部ツールバーにある [実行] をクリックします。
ノードを本番環境にデプロイします。
説明Data Studio で選択されたイメージは、本番環境に同期できません。 イメージを本番環境で有効にするには、ノードをデプロイする必要があります。
詳細については、「ノードまたはワークフローのデプロイ」をご参照ください。
ステップ 4:イメージをビルドする(オプション)
問題が発生した場合は、次の手順を試してください。
テストデータを作成します。
DataWorks ワークスペースを作成し、MaxCompute 計算リソースをワークスペースに関連付けます。詳細については、「ワークスペースを作成する」、「ワークスペースにデータソースを追加する、またはクラスターを登録する」、および「ワークスペースに計算リソースを関連付ける(Data Studioのパブリックプレビューへの参加が有効になっている)」をご参照ください。
旧バージョンの DataStudio で ODPS ノードを作成するか、新バージョンの Data Studio で MaxCompute SQL ノードを作成し、テストテーブルを作成してから、テストデータをテーブルに追加します。
説明次の例では、スケジューリングパラメーターを使用しています。ノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブで、名前が
bday
で、値が$[yyyymmdd]
のパラメーターを追加します。ノードを保存してデプロイします。
カスタムイメージを作成します。
このトピックの 手順 2:カスタムイメージを作成する に記載されている手順に従って、カスタムイメージを作成します。主要なパラメーターの設定:
イメージ名/ID:
dataworks_pyodps_task_pod
を選択します。サポートされているタスクタイプ:
PyODPS 2
とPyODPS 3
を選択します。インストールパッケージ:
Python3
とjieba
を選択します。
カスタムイメージを公開し、ワークスペースに関連付けます。詳細については、このトピックの 手順 3:カスタムイメージを公開する セクションと 手順 4:カスタムイメージをワークスペースに関連付ける セクションをご参照ください。
スケジューリングタスクでカスタムイメージを使用します。
旧バージョンの DataStudio または新バージョンの Data Studio で PyODPS 3 ノードを作成して構成します。
ノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブで、次の主要な設定を構成します。
名前が
bday
で、値が$[yyyymmdd]
の スケジューリングパラメーター を追加します。[カスタムイメージを公開] したときに使用した [テストリソースグループ] であるサーバーレスリソースグループを、スケジューリング用リソースグループ として選択します。
現在のワークスペースに公開および関連付けられているカスタム イメージ を選択します。
オプション。旧バージョンの DataStudio でアドホッククエリを作成するか、新バージョンの Data Studio の [個人ディレクトリ] セクションで SQL ファイルを作成し、次の SQL 文を実行して、出力テーブルにデータが含まれているかどうかを確認します。
SELECT * FROM participle_tb WHERE ds=<パーティション日付>;
PyODPS ノードを本番環境にデプロイします。
説明旧バージョンの DataStudio または新バージョンの Data Studio で選択されたイメージは、本番環境に同期できません。イメージを本番環境で有効にするには、ノードをデプロイする必要があります。詳細については、「ノードをデプロイする」または「ノードまたはワークフローのデプロイ」をご参照ください。
カスタムイメージを永続イメージとして作成します。詳細については、このトピックの 手順 5:永続イメージをビルドする セクションをご参照ください。
付録: 公式イメージを表示する
次の表に、DataWorks でサポートされている公式イメージを示します。 [イメージ管理] ページに移動して、公式イメージを表示することもできます。
イメージ名 | サポートされているタスクタイプ | 説明 |
dataworks_pyodps_py311_task_pod |
| このイメージは PyODPS 3 タスクのみに適しています。 |
dataworks_pairec_task_pod |
| このイメージは、PAI-Rec エンジンによって生成されたアルゴリズムプロセスを実行する PyODPS 3 タスクに適しています。 |
dataworks_pyodps_task_pod |
| - |
dataworks_emr_datalake_5.15.1_task_pod |
| このイメージを使用して、V5.15.1 の EMR DataLake クラスタでタスクをコミットできます。 |
dataworks_shell_task_pod |
| - |
dataworks_python_task_pod |
| - |
dataworks_cdh_custom_task_pod |
|
|