DSW インスタンスに PyODPS をインストールすると、SQL を使用して MaxCompute テーブルからデータを読み取り、MaxCompute テーブルにデータを書き込むことができます。
前提条件
以下の要件が満たされていることを確認してください。
MaxCompute が有効化されていること。詳細については、「MaxCompute の有効化」をご参照ください。
ご利用のアカウントに MaxCompute プロジェクトに必要な権限が付与されていること。Alibaba Cloud アカウント (root ユーザー) には権限付与は不要です。RAM ユーザーの場合は、以下の手順に従って必要な権限を付与してください。
PyODPS をインストールする前に、Python 3.6 以降をインストールしてください。
操作手順
PyODPS を使用して、MaxCompute または ビジュアルモデリングのデータとやり取りします。詳細については、PyODPS ドキュメントをご参照ください。
PyODPS のインストール
DSW ターミナルで、次のコマンドを実行します。
pip install pyodps次のコマンドを実行して、インストールを検証します。コマンドが何も出力またはエラーを生成せずに実行された場合、インストールは成功しています。
# Windows では、python -c "from odps import ODPS" を使用します。 python3 -c "from odps import ODPS"デフォルト以外の Python バージョン用のパッケージをインストールするには、その特定の Python 環境で次のコマンドを実行します。
/home/tops/bin/python3.7 -m pip install setuptools>=3.0 # 例: /home/tops/bin/python3.7 はインストールパスです。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: AccessKey ID と AccessKey Secret。認証情報の漏洩を防ぐため、これらを環境変数として設定してください。
AccessKey ペアを取得します。詳細については、「AccessKey ペアの作成」をご参照ください。
環境変数を設定します。詳細については、「環境変数の設定」をご参照ください。
your-default-project および your-end-point: ご利用のデフォルトプロジェクト名とエンドポイントに置き換えてください。リージョンエンドポイントについては、「エンドポイント」をご参照ください。
データ書き込みなど、MaxCompute テーブルに対するその他の PyODPS 操作については、「テーブル」をご参照ください。