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

DataWorks:イメージの管理

最終更新日:May 31, 2025

DataWorks は、タスク実行環境の作成と管理に使用できるイメージ管理機能を提供します。タスクの実行に特定の環境が必要な場合は、イメージ管理機能を使用して、必要な開発パッケージと依存関係を統合したカスタムイメージを作成できます。たとえば、カスタムイメージを使用して、PyODPS タスクの実行に必要なサードパーティの依存関係をインストールできます。このトピックでは、イメージ管理機能を使用してカスタムイメージを作成する方法について説明します。

背景情報

デフォルトでは、DataWorks はデフォルトの標準イメージを使用してタスクを実行します。DataWorks は、実行するタスクのタイプに基づいて適切なイメージを提供します。公式イメージは、事前構成されたベースイメージとして機能し、特定タイプのタスクに標準化されたランタイム環境を提供します。カスタムイメージは、公式イメージに基づいて強化された機能と柔軟性を提供します。実際のアプリケーションシナリオに基づいてベースイメージを拡張し、オンデマンドの機能カスタマイズを実現できます。これにより、データ処理タスクの実行効率と柔軟性が向上します。

  • カスタムイメージを作成する方法:

  • カスタムイメージとイメージ作成方法をサポートするノードタイプ:

    ノードタイプ

    Container Registry のイメージを参照して作成

    DataWorks 公式イメージに基づいて作成

    PyODPS 2

    image

    image

    PyODPS 3

    image

    image

    EMR Spark

    image

    image

    EMR Spark SQL

    image

    image

    EMR Shell

    image

    image

    Shell

    image

    image

    Python

    image

    image

    Notebook

    image

    image

注意事項

  • イメージ管理機能は、サーバーレスリソースグループとのみ併用できます。

    説明

    旧バージョンの専用スケジューリングリソースグループを使用して PyODPS ノードを実行する場合にサードパーティパッケージが必要な場合は、O&M アシスタント機能を使用してサードパーティパッケージをインストールできます。詳細については、「専用スケジューリングリソースグループを使用してサードパーティのオープンソースパッケージを設定する(非推奨)」をご参照ください。

  • 作成できるカスタムイメージの最大数は、DataWorks エディションによって異なります。

    • DataWorks Basic Edition および Standard Edition:10

    • DataWorks Professional Edition:50

    • DataWorks Enterprise Edition:100

  • DataWorks Professional Edition 以降のエディションのみが イメージビルド 機能をサポートしています。

  • 各リージョンで同時にビルドできるイメージは最大 2 つです。

前提条件

ステップ 1:イメージ管理ページに移動する

  1. DataWorks コンソール にログオンします。

  2. イメージ管理ページに移動します。

    左側のナビゲーションウィンドウで、[イメージ管理] をクリックします。

    image

ステップ 2:カスタムイメージを作成する

DataWorks コンソールでカスタムイメージを作成する場合は、「参照タイプ」パラメータを [DataWorks 公式イメージ] または [Alibaba Cloud Container Registry イメージ] に設定できます。カスタムイメージの作成のために構成されるパラメータは、選択した参照タイプによって異なります。

方法 1:DataWorks 公式イメージに基づいてカスタムイメージを作成する

  1. 次の表に示すパラメータを設定します。

    パラメータ

    説明

    イメージ名

    カスタムイメージの名前。

    イメージの説明

    カスタムイメージの説明。

    参照タイプ

    [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) SparkEMR Spark SQL、および EMR Shell タスクに使用可能

    インストールパッケージ

    使用するサードパーティパッケージ。次のいずれかの方法を使用して、サードパーティパッケージをインストールできます。

    • クイックインストール: [インストールパッケージ] ドロップダウンリストから Python2Python3、または Yum を選択し、目的の環境またはリソースを選択します。

    • 手動入力: [インストールパッケージ] ドロップダウンリストから スクリプト を選択します。次に、コマンドボックスにコマンドを記述して、目的のサードパーティパッケージをインストールします。次のコマンドのいずれかを実行して、サードパーティパッケージをインストールできます。

      • Python 2 の場合: pip install xx

      • Python 3 の場合: /home/tops/bin/pip3 install 'urllib3<2.0'

      • yum install -y git

      • wget git

  2. [OK] をクリックします。

方法 2:Container Registry のイメージを参照してカスタムイメージを作成する

制限事項

  • DataWorks では、Container Registry Enterprise Edition のイメージのみを参照できます。

  • DataWorks では、イメージのビルドに使用される Container Registry インスタンスに VPC 経由でのみ アクセスできます。

  • DataWorks で使用できる Container Registry インスタンスのサイズは 5 GB を超えることはできません。

  1. 次の表に示すパラメータを設定します。

    パラメータ

    説明

    イメージ名

    カスタムイメージの名前。

    イメージの説明

    カスタムイメージの説明。

    参照タイプ

    [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 が提供する基本ノートブックイメージを想定どおりに取得できます。

  2. [OK] をクリックします。

方法 3:個人開発環境インスタンスに基づいてカスタムイメージを作成する

新しいバージョンの Data Studio では、個人開発環境のイメージを作成できます。詳細については、「個人開発環境インスタンスのイメージを作成する」をご参照ください。

ステップ 3: カスタムイメージを公開する

作成したカスタムイメージを公開するには、次の操作を実行します。DataWorks コンソール にログオンします。左側のナビゲーションウィンドウで、[イメージ管理] をクリックします。[イメージ管理] ページで、[カスタムイメージ] タブをクリックします。次に、目的のカスタムイメージを見つけ、[テスト] し、[公開] します。テストおよび公開プロセスでは、次の項目に注意してください。

  • テスト用にサーバーレス リソースグループを選択します。

  • テストに合格した イメージのみを公開できます。

  • Alibaba Cloud Container Registry のイメージを参照して、または 個人の開発環境に基づいて カスタムイメージを作成する場合は、テストおよび公開用に選択したサーバーレス リソースグループが 関連付けられている VPC が、Container Registry インスタンスが関連付けられている VPC と同じであることを確認する必要があります

  • インターネット経由でデプロイされるサードパーティ製パッケージをカスタムイメージとして構成し、長期間テストに合格できない場合は、選択した [テスト リソースグループ] が関連付けられている VPC がインターネットにアクセスできるかどうかを確認します。VPC がインターネットにアクセスできない場合は、VPC のインターネットアクセスを有効にします

  • イメージがテストに合格しない場合は、次の操作を実行してイメージ構成を変更できます。目的のカスタムイメージを見つけ、 列の imageアクション アイコンにポインターを移動し、[変更] を選択します。

手順 4: カスタム イメージをワークスペースに関連付ける

カスタムイメージを公開した後、カスタムイメージが関連付けられているワークスペースを変更して、カスタムイメージを異なるワークスペースで使用できるようにすることができます。公開済みのカスタムイメージをワークスペースに関連付けるには、次の操作を実行します。

  1. [カスタム イメージ] タブで、公開されているカスタム イメージを見つけます。

  2. image アイコンの上にポインターを移動し、[アクション] 列で [ワークスペースの変更] を選択して、カスタムイメージをワークスペースに関連付けます。

ステップ 5: 永続イメージをビルドする

ステップ 4 の操作を完了すると、ビジネスでカスタムイメージを想定どおりに使用できます。ただし、カスタムイメージを使用するノードを実行するたびに、DataWorks はイメージ環境を再デプロイし、サードパーティ製パッケージをダウンロードします。その結果、ノードの実行時間が長くなり、より多くのコンピューティング料金が発生する可能性があります。この場合、DataWorks では、カスタムイメージを永続イメージとして作成できます。このように、ノードを実行するたびに同じイメージ環境を使用できるため、イメージ環境を繰り返しデプロイする必要がなくなります。これにより、ランタイム環境の一貫性が確保され、タスクの実行時間、コンピューティングコスト、およびトラフィックコストが削減されます。

説明

公式イメージに基づいて作成されたカスタムイメージのみを永続イメージとして作成できます。

永続イメージをビルドするには、次の手順を実行します。

  1. DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。次に、左側のナビゲーションウィンドウで [イメージ管理] をクリックします。

  2. [イメージ管理] ページで、[カスタムイメージ] タブをクリックします。[カスタムイメージ] タブで、公開されているカスタムイメージを見つけます。

  3. image アイコンにポインターを合わせ、[アクション] 列で [作成] を選択します。

  4. [イメージを作成するリソースグループ] ダイアログボックスで、ドロップダウンリストから使用するリソースグループを選択し、[続行] をクリックします。

    説明
    • イメージのビルドが完了するまで約 5 ~ 10 分かかります。必要な実際の時間は、ビルドするイメージのサイズによって異なります。

    • イメージを構築すると、コンピューティング料金が発生します。コンピューティング料金は、次の式を使用して計算されます。0.5 CUs × Duration for image building 。詳細については、「データコンピューティングの課金」をご参照ください。

    • ネットワークの例外により、イメージのビルドに失敗する場合があります。このような問題を防ぐために、[イメージを作成するリソースグループ] ダイアログボックスで選択したリソースグループが、このトピックの ステップ 3: カスタムイメージを公開する で選択した [テストリソースグループ] であることを確認してください。

ステップ 3:カスタムイメージを公開する

旧バージョンの DataStudio でカスタムイメージを使用する

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

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

  2. DataStudio ページで目的のノードを見つけ、ノードの構成タブに移動します。 右側のナビゲーションウィンドウで [プロパティ] をクリックし、パラメーターを構成します。

    • [リソースグループ]: サーバーレスリソースグループを選択します。

      説明
      • [リソースグループ] パラメーターが、[カスタムイメージを公開] したときに選択した [テストリソースグループ] に設定されていることを確認して、ノードがスムーズに実行されるようにします。

      • 目的のリソースグループが [リソースグループ] ドロップダウンリストに表示されない場合は、リソースグループが現在のワークスペースに関連付けられているかどうかを確認します。 リソースグループが現在のワークスペースに関連付けられていない場合は、次の操作を実行して関連付けを完了できます。リソースグループ ページに移動します。 目的のリソースグループを見つけ、[アクション] 列の [ワークスペースの関連付け] をクリックします。

    • [イメージ]: 公開されているカスタムイメージを選択します。

  3. ノードをデバッグします。

    ノードの構成タブの上部ツールバーにある image [(パラメーター付きで実行)] アイコンをクリックします。 [パラメーター] ダイアログボックスで、[リソースグループ名][実行用 CU][イメージ] パラメーターを構成し、[実行] をクリックします。

  4. ノードを本番環境にデプロイします。

    説明

    DataStudio で選択されたイメージは、本番環境に同期できません。 イメージを本番環境で有効にするには、ノードをデプロイする必要があります。

    詳細については、「ノードのデプロイ」をご参照ください。

新バージョンの Data Studio でカスタムイメージを使用する

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

    DataWorks コンソールの ワークスペースページ に移動します。 上部のナビゲーションバーで、目的のリージョンを選択します。 目的のワークスペースを見つけ、 列で [ショートカット] > [Data Studio]アクション を選択します。

  2. Data Studio ページで目的のノードを見つけ、ノードの構成タブに移動します。 右側のナビゲーションウィンドウで [プロパティ] をクリックし、パラメーターを構成します。

    • [スケジューリング用リソースグループ]: サーバーレスリソースグループを選択します。

      説明
      • [スケジューリング用リソースグループ] パラメーターが、[カスタムイメージを公開] したときに選択した [テストリソースグループ] に設定されていることを確認して、ノードがスムーズに実行されるようにします。

      • [スケジューリング用リソースグループ] ドロップダウンリストに目的のリソースグループが表示されない場合は、リソースグループが現在のワークスペースに関連付けられているかどうかを確認します。 リソースグループが現在のワークスペースに関連付けられていない場合は、次の操作を実行して関連付けを完了できます。 リソースグループ ページに移動します。 目的のリソースグループを見つけ、[アクション] 列の [ワークスペースの関連付け] をクリックします。

    • [イメージ]: 公開されているカスタムイメージを選択します。

  3. ノードをデバッグします。

    ノードの構成タブの右側のナビゲーションウィンドウにある [デバッグ構成] タブで、[コンピューティングリソース][リソースグループ][コンピューティング用 CU][イメージ] パラメーターを構成し、[スクリプトパラメーター] セクションのパラメーターを構成します。 その後、ノードの構成タブの上部ツールバーにある [実行] をクリックします。

  4. ノードを本番環境にデプロイします。

    説明

    Data Studio で選択されたイメージは、本番環境に同期できません。 イメージを本番環境で有効にするには、ノードをデプロイする必要があります。

    詳細については、「ノードまたはワークフローのデプロイ」をご参照ください。

ステップ 4:イメージをビルドする(オプション)

問題が発生した場合は、次の手順を試してください。

  1. テストデータを作成します。

    1. DataWorks ワークスペースを作成し、MaxCompute 計算リソースをワークスペースに関連付けます。詳細については、「ワークスペースを作成する」、「ワークスペースにデータソースを追加する、またはクラスターを登録する」、および「ワークスペースに計算リソースを関連付ける(Data Studioのパブリックプレビューへの参加が有効になっている)」をご参照ください。

    2. 旧バージョンの DataStudio で ODPS ノードを作成するか、新バージョンの Data Studio で MaxCompute SQL ノードを作成し、テストテーブルを作成してから、テストデータをテーブルに追加します。

      説明

      次の例では、スケジューリングパラメーターを使用しています。ノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブで、名前が bday で、値が $[yyyymmdd] のパラメーターを追加します。

      テストテーブルを作成します。

      -- テストテーブルを作成します。
      CREATE TABLE IF NOT EXISTS custom_img_test_tb
      (
          c_customer_id BIGINT NOT NULL,
          c_customer_text STRING NOT NULL,
          PRIMARY KEY (c_customer_id)
      )
      COMMENT 'テーブルコメント'
      PARTITIONED BY (ds STRING COMMENT 'パーティション')
      LIFECYCLE 90;
      
      -- テストテーブルにテストデータを挿入します。
      INSERT INTO custom_img_test_tb PARTITION (ds='${bday}') (c_customer_id, c_customer_text) VALUES
      (1, '晚来天欲雪,能饮一杯无? '),
      (2, '月落乌啼霜满天,江枫渔火对愁眠。 '),
      (3, '山重水复疑无路,柳暗花明又一村。 '),
      (4, '春眠不觉晓,处处闻啼鸟。 '),
      (5, '静夜思,床前明月光,疑是地上霜。 '),
      (6, '海上生明月,天涯共此时。 '),
      (7, '旧时王谢堂前燕,飞入寻常百姓家。 '),
      (8, '一行白鹭上青天,窗含西岭千秋雪。 '),
      (9, '人生得意须尽欢,莫使金樽空对月。 '),
      (10, '天生我材必有用,千金散尽还复来。 ');
    3. ノードを保存してデプロイします。

  2. カスタムイメージを作成します。

    このトピックの 手順 2:カスタムイメージを作成する に記載されている手順に従って、カスタムイメージを作成します。主要なパラメーターの設定:

    • イメージ名/IDdataworks_pyodps_task_pod を選択します。

    • サポートされているタスクタイプPyODPS 2PyODPS 3 を選択します。

    • インストールパッケージPython3jieba を選択します。

  3. カスタムイメージを公開し、ワークスペースに関連付けます。詳細については、このトピックの 手順 3:カスタムイメージを公開する セクションと 手順 4:カスタムイメージをワークスペースに関連付ける セクションをご参照ください。

  4. スケジューリングタスクでカスタムイメージを使用します。

    1. 旧バージョンの DataStudio または新バージョンの Data Studio で PyODPS 3 ノードを作成して構成します。

      カスタムイメージを使用する

      import jieba
      from odps import ODPS
      from odps.models import TableSchema as Schema, Column, Partition
      
      # テストテーブルからデータを読み取ります。
      table = o.get_table('custom_img_test_tb')
      partition_spec = f"ds={args['bday']}"
      with table.open_reader(partition=partition_spec) as reader:
          records = [record for record in reader]
      
      # 抽出したテキストをセグメント化します。
      participles = [' | '.join(jieba.cut(record['c_customer_text'])) for record in records]
      
      # デスティネーションテーブルを作成します。
      if not o.exist_table("participle_tb"):
          schema = Schema(columns=[Column(name='word_segment', type='string', comment='セグメント化結果')], partitions=[Column(name='ds', type='string', comment='パーティションフィールド')])
          o.create_table("participle_tb", schema)
      
      # セグメント化結果をデスティネーションテーブルに書き込みます。
      # 出力パーティションと出力テーブルを定義します。
      output_partition = f"ds={args['bday']}"
      output_table = o.get_table("participle_tb")
      
      # パーティションが存在しない場合は、最初にパーティションを作成します。
      if not output_table.exist_partition(output_partition):
          output_table.create_partition(output_partition)
      
      # セグメント化結果を出力テーブルに書き込みます。
      record = output_table.new_record()
      with output_table.open_writer(partition=output_partition, create_partition=True) as writer:
          for participle in participles:
              record['word_segment'] = participle
              writer.write(record)
    2. ノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブで、次の主要な設定を構成します。

      • 名前が bday で、値が $[yyyymmdd]スケジューリングパラメーター を追加します。

      • [カスタムイメージを公開] したときに使用した [テストリソースグループ] であるサーバーレスリソースグループを、スケジューリング用リソースグループ として選択します。

      • 現在のワークスペースに公開および関連付けられているカスタム イメージ を選択します。

    3. オプション。旧バージョンの DataStudio でアドホッククエリを作成するか、新バージョンの Data Studio の [個人ディレクトリ] セクションで SQL ファイルを作成し、次の SQL 文を実行して、出力テーブルにデータが含まれているかどうかを確認します。

      SELECT * FROM participle_tb WHERE ds=<パーティション日付>;

      image

    4. PyODPS ノードを本番環境にデプロイします。

      説明

      旧バージョンの DataStudio または新バージョンの Data Studio で選択されたイメージは、本番環境に同期できません。イメージを本番環境で有効にするには、ノードをデプロイする必要があります。詳細については、「ノードをデプロイする」または「ノードまたはワークフローのデプロイ」をご参照ください。

  5. カスタムイメージを永続イメージとして作成します。詳細については、このトピックの 手順 5:永続イメージをビルドする セクションをご参照ください。

付録: 公式イメージを表示する

次の表に、DataWorks でサポートされている公式イメージを示します。 [イメージ管理] ページに移動して、公式イメージを表示することもできます。

イメージ名

サポートされているタスクタイプ

説明

dataworks_pyodps_py311_task_pod

PyODPS 3

このイメージは PyODPS 3 タスクのみに適しています。

dataworks_pairec_task_pod

PyODPS 3

このイメージは、PAI-Rec エンジンによって生成されたアルゴリズムプロセスを実行する PyODPS 3 タスクに適しています。

dataworks_pyodps_task_pod

PyODPS 2PyODPS 3

-

dataworks_emr_datalake_5.15.1_task_pod

EMR SparkEMR Spark SQL、および EMR Shell

このイメージを使用して、V5.15.1 の EMR DataLake クラスタでタスクをコミットできます。

dataworks_shell_task_pod

Shell

-

dataworks_python_task_pod

Python

-

dataworks_cdh_custom_task_pod

CDH HiveCDH SparkCDH Spark SQLCDH MRCDH Presto、および CDH Impala

  • このイメージは、中国 (北京) リージョンと中国 (張家口) リージョンで利用できます。

  • このイメージの CDH Parcel ディレクトリをインストールする必要があります。

参照資料