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

MaxCompute:オンプレミス環境での MaxFrame の使用

最終更新日:Jun 04, 2025

MaxCompute では、MaxFrame SDK の機能がカプセル化されているオンプレミスの MaxFrame クライアントで MaxFrame を使用できます。このトピックでは、オンプレミス環境で MaxFrame を使用する方法について説明します。

前提条件

MaxFrame を使用する前に、以下の準備が完了していることを確認してください。

  • Python 3.7 または 3.11 がオンプレミス環境にインストールされている。他のバージョンを使用するとエラーが発生する可能性があります。

  • pip ツールがオンプレミス環境にインストールされている。 pip ツールが Python のバージョンにプリインストールされていない場合は、Python 公式 Web サイト にアクセスして pip インストールガイドを入手してください。

  • MaxCompute プロジェクトが作成されている。詳細については、「MaxCompute プロジェクトを作成する」をご参照ください。

MaxFrame のインストール

  1. Windows オペレーティングシステムのコマンドプロンプトなど、システムの CLI で、pip コマンドを実行して MaxFrame クライアントをインストールします。コマンド例:

    pip install --upgrade maxframe
  2. 次のコマンドを実行して、MaxFrame クライアントがインストールされているかどうかを確認します。値またはエラーメッセージが返されない場合、インストールは成功です。

    python -c "import maxframe.dataframe as md"

    エラーが報告された場合は、デフォルトの Python バージョンをクエリし、Python 3.7 または 3.11 に変更します。コマンド例:

    # システムのデフォルトの Python バージョンをクエリします。
    python --version 
    
    # システムのデフォルトの Python バージョンを Python 3.7 に変更します。次のコマンドで、$path/python3.7 は Python のインストールパスです。
    $path/python3.7 -m pip install setuptools>=3.0

MaxFrame の使用

  1. .py ファイル(例: test.py)をオンプレミス環境に作成し、次のサンプルコードを test.py ファイルにコピーして、ファイルを保存します。

    import os
    import maxframe.dataframe as md
    from odps import ODPS
    from maxframe import new_session
    
    # MaxCompute エントリを作成します。
    o = ODPS(
        # ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数を Alibaba Cloud アカウントの AccessKey ID に設定します。
        # ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を Alibaba Cloud アカウントの AccessKey シークレットに設定します。
        # 実際の AccessKey ID と AccessKey シークレットを直接使用しないことをお勧めします。
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        project='your-default-project',
        endpoint='your-end-point',
    )
    table = o.create_table("test_source_table", "a string, b bigint", if_not_exists=True)
    with table.open_writer() as writer:
        writer.write([
            ["value1", 0],
            ["value2", 1],
        ])
    
    # MaxFrame セッションを作成します。
    session = new_session(o)
    
    df = md.read_odps_table("test_source_table",index_col="b")
    df["a"] = "prefix_" + df["a"]
    
    # DataFrame データを出力します。
    print(df.execute().fetch())
    
    # MaxFrame DataFrame から MaxCompute テーブルにデータを書き込みます。
    md.to_odps_table(df, "test_prefix_source_table").execute()
    
    # MaxFrame セッションを破棄します。
    session.destroy()

    パラメータ:

    • ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET: これらの環境変数を、MaxCompute プロジェクトで管理するオブジェクトに対する MaxCompute 権限 を持つ Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットに設定します。 アクセスキーのペア ページで Alibaba Cloud 管理コンソール の AccessKey ID を取得できます。

    • your-default-project: MaxCompute プロジェクトの名前。 MaxCompute プロジェクトの名前を表示するには、MaxCompute コンソール にログインし、左側のナビゲーションウィンドウで [ワークスペース] > [プロジェクト] を選択します。

    • your_end_point: MaxCompute プロジェクトが存在するリージョンのエンドポイント。詳細については、「エンドポイント」をご参照ください。

  2. test.py ファイルのパスに移動し、ファイルを実行します。コマンド例:

    python test.py

結果の確認

Python コードを実行し、結果テーブルのデータをクエリします。結果が期待どおりであれば、MaxFrame がインストールされ、MaxCompute に接続されています。

  1. Python コードを実行します。次の結果が返されます。

    b           a
    0  prefix_value1
    1  prefix_value2
  2. MaxCompute プロジェクトで次の SQL 文を実行して、test_prefix_source_table テーブルのデータをクエリします。

    SELECT * FROM test_prefix_source_table;

    次の結果が返されます。

    +------------+------------+
    | b          | a          |
    +------------+------------+
    | 0          | prefix_value1 |
    | 1          | prefix_value2 |
    +------------+------------+