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

Platform For AI:PyODPS を使用した MaxCompute テーブルの読み書き

最終更新日:Sep 11, 2026

DSW インスタンスで PyODPS を使用して、SQL で MaxCompute テーブルのデータを読み書きできます。

前提条件

開始する前に、次の要件が満たされていることを確認してください。

  • MaxCompute がアクティベートされていること。 詳細については、「MaxCompute のアクティベート」をご参照ください。

  • アカウントに MaxCompute プロジェクトに必要な権限が付与されていること。 Alibaba Cloud アカウントに追加の承認は必要ありません。 RAM ユーザーの場合は、次の手順に従って権限を付与してください。

    手順

    1. Alibaba Cloud アカウントで MaxCompute コンソールにログインし、左上隅でリージョンを選択します。

    2. 左側メニューで、[Workspace] > [Projects] を選択します。

    3. [Projects] ページで、対象のプロジェクトを見つけ、[Actions] 列の [Manage] をクリックします。

    4. [Role Permissions] タブで [role_project_dev] を見つけ、[Manage Members] をクリックして、RAM ユーザーを追加します。

    MaxCompute の権限管理の詳細については、「コンソールでのユーザー権限の管理」をご参照ください。

  • Python 3.6 以降がインストールされていること。

操作手順

PyODPS を使用して、MaxCompute または Machine Learning Designer のデータを操作します。 詳細については、「PyODPS ドキュメント」をご参照ください。

  1. PyODPS のインストール

    DSW ターミナルで、次のコマンドを実行します。

    pip install pyodps
  2. 次のコマンドを実行して、インストールを検証します。 出力やエラーが返されなければ、インストールは成功です。

    # Windows の場合は、python -c "from odps import ODPS" を使用します
    python3 -c "from odps import ODPS"
  3. デフォルト以外の Python バージョンにパッケージをインストールするには、対象の Python 環境で次のコマンドを実行します。

    /home/tops/bin/python3.7 -m pip install "setuptools>=3.0"
    # 例:/home/tops/bin/python3.7 はインストールパスです。
  4. SQL を使用した MaxCompute からのデータ読み取り

    import numpy as np
    import pandas as pd
    import os
    
    from odps import ODPS
    from odps.df import DataFrame
    
    # 接続を確立します。
    o = ODPS(
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        project='your-default-project',
        endpoint='your-end-point',
    )
    
    # MaxCompute からデータを読み取ります。
    sql = '''
    SELECT
        *
    FROM
        your-default-project.<table>
    LIMIT 100
    ;
    '''
    query_job = o.execute_sql(sql)
    result = query_job.open_reader(tunnel=True)
    
    # n_process > 1 に設定すると、マルチスレッドが有効になり、データ読み取りが高速化されます。
    df = result.to_pandas(n_process=1)

    設定パラメーター:

    • ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET:Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret です。 認証情報の漏洩を防ぐために、これらを環境変数として設定してください。

      • AccessKey ペアを取得してください。 「AccessKey の作成」をご参照ください。

      • 環境変数を設定してください。 「環境変数の設定」をご参照ください。

      • your-default-project および your-end-point:ご自身のデフォルトのプロジェクト名とエンドポイントに置き換えてください。 リージョンのエンドポイントについては、「エンドポイント」をご参照ください。

    データを書き込むなど、MaxCompute テーブルに対する他の PyODPS 操作については、「テーブル」をご参照ください。