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

DataWorks:個人開発環境での MaxCompute イメージのビルド

最終更新日:May 29, 2025

DataWorks は、個人開発環境のカスタムイメージを作成する際に、MaxCompute カスタムイメージの同時生成をサポートしており、DataWorks ノード(PyODPS 3 ノードや Notebook ノードなど)で MaxCompute カスタムイメージを便利に使用できます。このトピックでは、DataWorks で MaxCompute カスタムイメージをビルドして使用する方法について説明します。

背景情報

MaxCompute イメージ管理 機能を使用すると、複雑なリソースのパッケージ化とアップロードのプロセスを実行することなく、SQL UDF、PyODPS、および MaxFrame 開発シナリオで直接参照できるカスタムイメージを作成できます。DataWorks では、個人開発環境に基づいて DataWorks イメージをビルドするのと同時に、MaxCompute イメージをビルドできます。

前提条件

MaxCompute カスタムイメージの作成

準備

考慮事項

MaxCompute カスタムイメージの作成:

  • イメージサイズ:単一の MaxCompute イメージの最大サイズは 10 GB です。

  • イメージ数:単一の MaxCompute テナントは最大 10 個のイメージをアップロードできます。

MaxCompute イメージの使用:DataWorks は Python 3.11 環境に基づいて MaxCompute イメージをビルドします。DataWorks を介してビルドされた MaxCompute イメージを実行するには、Python 環境がバージョン 3.11 であることを確認してください。

個人開発環境インスタンスの作成

Data Studio に入り、以下の手順に従って、特定のイメージ dataworks-maxcompute:py3.11-ubuntu20.04 を使用して個人開発環境インスタンスを作成し、同時に MaxCompute カスタムイメージを作成します。

  1. Data Studio にアクセスします。

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

    2. Data Studio ページの左側のナビゲーションウィンドウで、image ボタンをクリックして [データ開発] ページにアクセスします。

  2. 個人開発環境の作成ページにアクセスします。上部の [個人開発環境·選択してください] をクリックし、必要に応じて個人開発環境インスタンスを作成します。

    • 個人開発環境インスタンスがない場合は、自分で作成する必要があります。[新規作成] をクリックします。

    • 既に個人開発環境インスタンスがある場合は、[インスタンスの管理] をクリックし、個人開発環境インスタンスリストで [インスタンスの作成] をクリックします。

  3. 個人開発環境を構成します。DataWorks で MaxCompute カスタムイメージを作成する場合、個人開発環境には次の構成が必要です。その他のパラメータ構成については、「個人開発環境インスタンスの作成」をご参照ください。

    • イメージ構成dataworks-maxcompute:py3.11-ubuntu20.04 を選択します。

      説明
      • dataworks-maxcompute:py3.11-ubuntu20.04 イメージを選択することによってのみ、MaxCompute カスタムイメージを作成できます。

      • ベースイメージとして dataworks-maxcompute:py3.11-ubuntu20.04 を使用してビルドされた DataWorks カスタムイメージは、DataWorks Notebook、汎用 Python、および Shell ノードでの MaxFrame ジョブ開発に使用できます。

    • ネットワーク設定:ACR インスタンス用に構成された VPC(Virtual Private Cloud)を選択して、後続のイメージビルド中に個人開発環境インスタンスがイメージを ACR インスタンスに正しくプッシュできるようにします。

イメージ関連環境の構成

次の手順に従って、個人開発環境インスタンスタミナルで MaxCompute 開発に必要なサードパーティの依存関係をインストールします。このトピックでは、例として jieba を使用します。

  1. Data Studio ページの上部にある [個人開発環境·選択してください] をクリックし、個人開発環境インスタンスの作成 で作成した個人開発環境インスタンスをクリックして入力します。

  2. Data Studio 下部ツールバーの左側にある image アイコンをクリックして、ターミナルコマンド実行ボックスにアクセスします。

  3. 個人開発環境ターミナルで次のコマンドを順番に実行して、サードパーティの依存関係 jieba をダウンロードし、正常にインストールされたかどうかを確認します。

    ## サードパーティの依存関係をインストールする
    pip install jieba;
    
    ## サードパーティの依存関係を表示する
    pip show jieba;

カスタムイメージの保存

次の手順に従って、個人開発環境から DataWorks イメージを作成し、同時に MaxCompute イメージを作成することを選択します。生成されたイメージは、システムによって同じアカウントの ACR インスタンスに自動的にアップロードされます。

  1. 個人開発環境インスタンス管理ページにアクセスします。

    1. 上部にある元の [個人開発環境·選択してください] の位置をクリックし、作成した個人開発環境インスタンスの名前をクリックします。

    2. ポップアップウィンドウで、[環境の管理] を選択して [個人開発環境インスタンス] ページにアクセスします。

  2. イメージ作成ページにアクセスします。

    1. 個人開発環境インスタンスページで、作成した個人開発環境インスタンスを見つけます。

    2. インスタンスの右側にある アクション 列の [イメージの作成] をクリックします。

  3. スタックの更新

    パラメータ

    説明

    イメージ名

    カスタム DataWorks イメージ名。イメージが MaxCompute に同期される場合、ここで定義された名前が MaxCompute イメージ名になります(例:image_jieba)。

    イメージインスタンス

    Standard Edition 以上バージョンの ACR インスタンスを選択します。ACR インスタンスの作成の詳細については、「Enterprise Edition インスタンスの作成」をご参照ください。

    説明

    Standard Edition 以上バージョンの ACR インスタンスのみを使用して、MaxCompute カスタムイメージをビルドできます。

    名前空間

    ACR インスタンスの名前空間を選択します。作成の詳細については、「名前空間の作成」をご参照ください。

    イメージリポジトリ

    ACR インスタンスのイメージリポジトリを選択します。作成の詳細については、「イメージリポジトリの作成」をご参照ください。

    イメージバージョン

    カスタムイメージバージョン。

    MaxCompute に同期

    この場合は、[はい] を選択します。MaxCompute への同期を選択すると、DataWorks イメージの公開時に、イメージが MaxCompute イメージとして同時にビルドされます。

    説明

    このオプションは、選択した イメージインスタンス に関連しています。インスタンスタイプStandard Edition 以上バージョンの ACR イメージインスタンスは選択可能ですが、それ以外はデフォルトで選択できません。

    タスクタイプ

    作成中の DataWorks イメージで使用可能なタスクタイプを選択します。この例では、Notebook 開発にイメージを使用することを選択できます。

    • Notebook

    • Python

    • Shell

  4. イメージの保存ステータスを確認します。

    イメージインスタンスリストページの上記の個人開発環境のイメージ列で、イメージの保存ステータスを確認できます。

  5. [確認] をクリックしてイメージを作成します。

  6. 個人開発環境インスタンスの右側にある image アイコンをクリックし、[イメージ] 列を確認します。

  7. イメージの作成が完了するまで待ちます。[保存成功] image の右側にあるアイコンにマウスポインタを置き、ポップアップで [ここ] をクリックして [イメージ管理] ページにアクセスします。

    image

カスタムイメージの公開

個人開発環境インスタンスによって作成されたイメージが Data Studio に正常に保存された後、次の手順に従ってカスタムイメージの公開操作を完了します。この操作により、ACR イメージインスタンスを介して作成されたイメージが DataWorks および MaxCompute に同期され、DataWorks カスタムイメージと MaxCompute カスタムイメージの両方が生成されます。

  1. DataWorks ワークスペースリストページ にアクセスし、上部でターゲットリージョンに切り替えます。

  2. 左側のナビゲーションバーにある [イメージ管理] > [カスタムイメージ] タブを見つけ、対象イメージを [テスト] し、対象イメージが テスト成功 した後、対象イメージを [公開] します。

    説明
    • カスタムイメージをテストする場合は、[テストリソースグループ] にサーバーレスリソースグループを選択します。

    • テストおよび公開用に選択されたサーバーレスリソースグループにバインドされた VPC は、Alibaba Cloud Container Registry で構成された VPC と一致している必要があります。

    • 構成したカスタムイメージがパブリックネットワークからサードパーティパッケージを取得し、テストが長時間合格しない場合は、[テストリソースグループ] にバインドされた VPC にパブリックネットワークアクセス機能があるかどうかを確認してください。VPC のパブリックネットワークを構成するには、「NAT ゲートウェイの SNAT 機能を使用してインターネットにアクセスする」をご参照ください。

  3. ページを更新して、イメージリストで公開したイメージの [公開ステータス][公開済み] に変更されたことを確認します。

  4. ターゲットイメージの 操作 列で、image > [ワークスペースの変更] をクリックして、カスタムイメージをワークスペースにアタッチします。

MaxCompute イメージステータスの確認

DataWorks イメージが公開されると、MaxCompute イメージが同時に作成されます。DataWorks コンソールの [イメージ管理] > [カスタムイメージ] タブのイメージステータスが公開済みステータスに変更されたら、MaxCompute にカスタムイメージを追加する 手順に従って MaxCompute コンソール に移動して、正常に作成された MaxCompute カスタムイメージを確認できます。

MaxCompute カスタムイメージの使用

考慮事項

  • MaxFrame を使用した開発には、イメージに MaxFrame サービスが必要です。DataWorks で MaxCompute カスタムイメージを実行するには、イメージが Python 3.11 環境でビルドされている必要があります。

  • DataWorks で MaxFrame ジョブ開発に MaxCompute カスタムイメージを使用するには、タスクが MaxFrame ランタイム環境を持つ DataWorks イメージで実行されていることを確認してください。具体的には:

    • Notebook ノード:公式イメージ dataworks-notebook:py3.11-ubuntu22.04、またはこの公式イメージもしくは dataworks-maxcompute:py3.11-ubuntu20.04 イメージに基づいてビルドされた DataWorks カスタムイメージを選択します。

    • PyODPS 3 ノード:公式イメージ dataworks_pyodps_py311_task_pod、またはこの公式イメージに基づいてビルドされた DataWorks カスタムイメージを選択します。

    • Python ノードdataworks-maxcompute:py3.11-ubuntu20.04 イメージに基づいて MaxFrame サービスで作成された個人開発環境インスタンス を選択し、Python タスクタイプをサポートする DataWorks カスタムイメージとして保存 します。

    • その他のノード: DataWorks カスタムイメージに MaxFrame ランタイム環境が含まれており、Python 3.11 でビルドされていることを確認します。

データ開発へのアクセス

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

  2. Data Studio ページの左側のナビゲーションウィンドウで、image ボタンをクリックして [データ開発] ページにアクセスします。

Notebook ノードでの使用

次の例では、Notebook ノードを使用して、MaxFrame で MaxCompute カスタムイメージを使用する方法を示します。この例では、MaxCompute カスタムイメージの jieba パッケージを使用する方法を示します。次の手順を実行します。

  1. Notebook ノードを作成します。

    1. 上部にある [個人開発環境·選択してください] をクリックし、作成した個人開発環境インスタンスを選択します。

    2. [プロジェクトディレクトリ] image の右側をクリックし、[ノードの作成] > [Notebook] を選択して [ノードの作成] ダイアログボックスにアクセスします。

    3. [ノードの作成] ダイアログボックスで、ノードの [名前] を入力し、[確認] をクリックしてノード編集ページにアクセスします。

  2. Notebook ノードコードを編集します。

    # -*- coding: utf-8 -*-
    from odps import ODPS
    from maxframe.session import new_session
    import maxframe.dataframe as md  # maxframe.dataframe モジュールが正しくインポートされていることを確認してください
    from maxframe import config
    
    # データセットを準備する
    test_data = [
        "古の平原に草が生い茂る"
    ]
    # MaxCompute カスタムイメージの jieba パッケージを使用してデータを処理する関数を定義する:
    # MaxCompute カスタムイメージを使用する場合
    def image_test():
        config.options.sql.settings = {
            "odps.session.image": "image_jieba"  # この例の MaxCompute イメージ名は image_jieba です。MaxCompute コンソールでイメージ名を確認できます。
        }
        def process(row):
            import jieba
            result = jieba.cut(row, cut_all=False)
            return "/".join(result)
        # MaxFrame 接続を確立する
        odps = %odps
        session = new_session(odps) 
        # 実行の詳細を表示するためのログビューを出力する
        logview = session.get_logview_address()
        print("logview:", logview)
        # MaxFrame DataFrame を作成する
        # ローカルテストデータ(例:["古の平原に草が生い茂る"])を MaxFrame DataFrame オブジェクトとしてカプセル化する。
        df = md.DataFrame(test_data, columns=["raw_text"])
        # トークン化関数を適用して DataFrame オブジェクトデータを処理する
        df["processed_text"] = df["raw_text"].map(process, dtype='object')
        print("Print",df.execute().fetch())
    image_test()
    print("データ処理が完了しました!")
  3. ノード編集ページの左側にある image アイコンをクリックし、ポップアップで Python3.11 バージョンの [カーネル] を選択し、ノードを実行してログ情報を確認します。

PyODPS 3 ノードでの使用

次の例では、PyODPS 3 ノードを使用して、MaxFrame で MaxCompute カスタムイメージを使用する方法を示します。この例では、MaxCompute カスタムイメージの jieba パッケージを使用する方法を示します。次の手順を実行します。

  1. PyODPS 3 ノードを作成します。

    1. [プロジェクトディレクトリ] image の右側をクリックし、[ノードの作成] > [MaxCompute] > [PyODPS 3] ノードを選択して [ノードの作成] ダイアログボックスにアクセスします。

    2. [ノードの作成] ダイアログボックスで、ノードの [名前] を入力し、[確認] をクリックしてノード編集ページにアクセスします。

  2. PyODPS 3 ノードコードを編集します。

    # -*- coding: utf-8 -*-
    from odps import ODPS, options
    from odps.df import DataFrame
    import pandas as pd
    # テーブルデータの準備
    options.sql.settings = {"odps.isolation.session.enable": True}
    # テストテーブルを作成する
    table = o.create_table('jieba_work_tb', 'col string', if_not_exists=True)
    # インスタンスデータを追加する
    instance = o.run_sql("insert into table jieba_work_tb values ('古の平原に草が生い茂る')")
    instance.wait_for_success()
    # MaxCompute カスタムイメージの jieba パッケージを使用してデータを処理する関数を定義する:
    def image_test():
        def process(row):
            import jieba
            result = jieba.cut(row, cut_all=False)
            return "/".join(result)
        #  テーブルを DataFrame オブジェクトとしてカプセル化する。
        df = o.get_table("jieba_work_tb").to_df()
        # トークン化関数を適用して DataFrame オブジェクトデータを処理する
        df = df.col.map(process).execute(image='image_jieba') # この例の MaxCompute イメージ名は image_jieba です。MaxCompute コンソールでイメージ名を確認できます。
        print("Print",df)
    image_test()
    print("データ処理が完了しました!")
  3. PyODPS 3 ノードを構成します。

    ノード編集ページの右側にある [デバッグ構成] をクリックし、次のパラメータ情報に従ってノードの内容を構成します。

    パラメータ

    説明

    計算リソース

    アタッチした MaxCompute 計算リソースを選択します。

    リソースグループ

    アタッチしたサーバーレスリソースグループを選択します。

    イメージ

    dataworks_pyodps_py311_task_pod:prod_20241210 を選択します。

  4. ノード編集ページの上部にあるツールバーの image アイコンをクリックして、ノードを実行します。