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

MaxCompute:クイックスタート

最終更新日:Sep 08, 2026

DataWorks のようなデータ開発プラットフォームで、PyODPS をノードとして実行できます。 これらのプラットフォームは PyODPS のランタイムとスケジューリングを管理するため、手動で MaxCompute のエントリオブジェクトを作成する必要はありません。 PyODPS DataFrame API を使用すると、pandas スタイルのデータ処理が可能になります。このトピックでは、DataWorks を使用して、プロジェクトで PyODPS を使い始める方法を説明します。

前提条件

手順

  1. PyODPS ノードの作成

    このトピックでは、DataWorks の PyODPS ノードを使用します。 詳細については、「PyODPS 3 タスクの開発」をご参照ください。

    • このトピックでは、PyODPS 3 ノードを例として使用します。 PyODPS 3 ノードの基盤となる Python のバージョンは 3.7 です。

    • PyODPS ノードは、最大 50 MB のローカルデータを処理でき、実行時に最大 1 GB のメモリを使用できます。 タスクがこれらの制限を超えると、システムによって終了されます。 したがって、PyODPS タスクで大量のデータを処理する Python コードを記述することは避けてください。

    • DataWorks でのコードの記述とデバッグは効率が良くありません。 効率を向上させるために、IntelliJ IDEA でコードをローカルに開発することを推奨します。

    1. ワークフローの作成

      Data Studio ページに移動し、業務フロー を右クリックして、ビジネスフローの新規作成 を選択します。

    2. PyODPS ノードの作成

      新しいワークフローを右クリックし、ノードの新規作成 > MaxCompute > [PyODPS 3] を選択し、ノードの名前を入力してから コミット をクリックします。

  2. PyODPS ノードの編集

    1. コードの記述

      PyODPS ノードのエディターにテストコードを入力します。 次の例は、PyODPS API を使用したテーブル操作を示しています。 テーブル操作と SQL 操作の詳細については、「テーブル」および「SQL」をご参照ください。

      from odps import ODPS
      
      # DataWorks の PyODPS ノードでは、グローバル変数 (`o` または `odps`) がデフォルトで MaxCompute のエントリとして利用できます。 手動で定義することなく直接使用できます。
      table = o.create_table('my_new_table', 'num bigint, id string', if_not_exists=True)
      
      # 非パーティション化テーブル my_new_table にデータを挿入します。
      records = [[111, 'aaa'],
                [222, 'bbb'],
                [333, 'ccc'],
                [444, '中文']]
      o.write_table(table, records)
      
      # 非パーティション化テーブル my_new_table からデータを読み取ります。
      for record in o.read_table(table):
          print(record[0],record[1])
      
      # SQL ステートメントを実行してテーブルからデータを読み取ります。
      result = o.execute_sql('select * from my_new_table;',hints={'odps.sql.allow.fullscan': 'true'})
      
      # SQL の実行結果を読み取ります。
      with result.open_reader() as reader:    
          for record in reader:            
              print(record[0],record[1])
      
      # テーブルをドロップしてリソースを解放します。
      table.drop()
    2. コードの実行

      コードを編集した後、运行 アイコンをクリックします。 実行が完了したら、運用ログ タブで結果を表示できます。 次のログ出力は成功を示しています。

      2023-07-21 15:06:41 INFO ========================================================
      Executing user script with PyODPS 0.11.2.3
      Tunnel session created: <TableUploadSession xxx                                          >
      Tunnel session created: <TableDownloadSession xxx                                        >
      111 aaa
      222 bbb
      333 ccc
      444 中文
      Tunnel session created: <InstanceDownloadSession id=xxx          project_name=xxx                              >
      111 aaa
      222 bbb
      333 ccc
      444 中文
      2023-07-21 15:06:49 INFO ========================================================
      2023-07-21 15:06:49 INFO Exit code of the Shell command 0
      2023-07-21 15:06:49 INFO --- Invocation of Shell command completed ---
      2023-07-21 15:06:49 INFO Shell run successfully!
      2023-07-21 15:06:49 INFO Current task status: FINISH
      2023-07-21 15:06:49 INFO Cost time is: 7.507s
      /home/admin/alisatasknode/taskinfo/xxx              xxx        .log-END-EOF