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

MaxCompute:制限

最終更新日:Feb 21, 2025

MaxCompute を使用する前に、MaxCompute の使用制限について理解しておくことをお勧めします。このトピックでは、MaxCompute の使用制限について説明します。

サブスクリプション計算リソースの制限

デフォルトでは、MaxCompute のサブスクリプション計算リソースとして最大 2,000 計算ユニット(CU)を購入できます。 2,000 CU を超える購入を希望する場合は、Alibaba Cloud アカウントを使用して[チケット]に記入し、申請のためにチケットを送信してください。 その後、MaxCompute プロダクトエンジニアが 3 営業日以内にクォータ増加申請を確認します。 審査結果はショートメッセージでお知らせします。

従量課金制 MaxCompute サービスの計算リソースの制限

次の表は、単一のユーザーが単一のリージョンで使用できる従量課金制 MaxCompute サービスの CU の最大数を示しています。これにより、単一のユーザーが過剰な量のクラスタリソースを占有している場合に、ジョブの開始に失敗することを防ぎます。

国または地域

リージョン

従量課金制 MaxCompute サービスの CU の最大数

中国のリージョン

中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (烏蘭察布)、中国 (深圳)、華東 2 金融雲、華北 2 政務雲、華南 1 金融雲

2,000

中国 (成都)、中国 (香港)

500

その他の国または地域

シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)、ドイツ (フランクフルト)、米国 (シリコンバレー)、米国 (バージニア)、英国 (ロンドン)、UAE (ドバイ)

500

重要

上記の制限は、取得できる CU の最大数を表しており、使用できる CU の最小数を表しているわけではありません。場合によっては、クエリを高速化するために、MaxCompute でより多くの CU が使用されることがあります。

サブスクリプション Tunnel スロットの制限

デフォルトでは、MaxCompute のサブスクリプション Tunnel サービス用に最大 500 スロットを購入できます。 500 スロットを超える購入を希望する場合は、申請のためにチケットを送信できます。500

SQL の制限

次の表は、MaxCompute での SQL ジョブの開発に関する制限を示しています。

項目

最大値/制限

カテゴリ

説明

テーブル名の長さ

128 バイト

長さ

テーブル名または列名には、文字、数字、およびアンダースコア (_) のみを含めることができます。文字で始める必要があります。特殊文字はサポートされていません。

コメントの長さ

1,024 バイト

長さ

コメントは、長さが 1,024 バイトを超えることができない有効な文字列です。

テーブルの列定義

1,200

数量

テーブルには最大 1,200 の列定義を含めることができます。

テーブルのパーティション

60,000

数量

テーブルには最大 60,000 のパーティションを含めることができます。

テーブルのパーティションレベル

6

数量

テーブルには最大 6 レベルのパーティションを含めることができます。

出力表示

10,000 行

数量

SELECT 文は最大 10,000 行を返すことができます。

INSERT 操作の宛先テーブル数

256

数量

MULTI-INSERT 文を使用すると、最大 256 個のテーブルに同時にデータを挿入できます。

UNION ALL

256

数量

UNION ALL ステートメントを使用すると、最大 256 個のテーブルを結合できます。

MAPJOIN

128

数量

MAPJOIN ヒントを使用すると、最大 128 個の小さなテーブルを結合できます。

MAPJOIN メモリ

512 MB

数量

SQL 文で MAPJOIN ヒントを指定する場合、すべての small テーブルのメモリサイズは 512 MB を超えることはできません。

ptinsubq(パーティション IN サブクエリ)

1,000 行

数量

PT IN SUBQUERY 文は最大 1,000 行を生成できます。

SQL 文の長さ

2 MB

長さ

SQL 文の長さは 2 MB を超えることはできません。この制限は、SDK を使用して SQL 文を実行するシナリオに適しています。

列レコードの長さ

8 MB

数量

テーブルの列レコードの最大長は 8 MB です。

IN 句のパラメーター

1,024

数量

この項目は、IN 句 (例: in (1,2,3....,1024)) の最大パラメーター数を指定します。IN 句のパラメーター数が過度に大きい場合、コンパイルのパフォーマンスに悪影響を及ぼします。最大 1,024 個のパラメーターを使用することをお勧めしますが、これは固定の上限ではありません。

jobconf.json

1 MB

長さ

jobconf.json ファイルの最大サイズは 1 MB です。テーブルに多数のパーティションが含まれている場合、jobconf.json ファイルのサイズが 1 MB を超える可能性があります。

ビュー

書き込み不可

操作

ビューは書き込み可能ではなく、INSERT 文をサポートしていません。

列のデータ型と位置

変更不可

操作

列のデータ型と位置は変更できません。

Java ユーザー定義関数 (UDF)

abstract または static にすることはできません

操作

Java UDF は、abstract または static にすることはできません。

クエリ可能なパーティション

10,000

数量

最大 10,000 のパーティションをクエリできます。

SQL 実行計画

1 MB

長さ

MaxCompute SQL 文を使用して生成される実行計画のサイズは、1 MB を超えることはできません。超えた場合は、エラーメッセージ FAILED: ODPS-0010000:System internal error - The Size of Plan is too large が報告されます。

単一ジョブの最大実行時間

72 時間

実行時間

単一の SQL ジョブのデフォルトの最大実行時間は 24 時間です。次のパラメーター設定を使用して、単一の SQL ジョブを最大 72 時間実行できます。SQL ジョブは 72 時間以上実行できません。SQL ジョブが 72 時間実行されると、ジョブは自動的に停止します。

set odps.sql.job.max.time.hours=72;

テーブルパーティションの作成頻度

15 秒あたり 120 回

頻度制限

テーブルパーティションを作成するために ALTER TABLE <table_name> ADD PARTITION <pt_spec> 操作を実行するための頻度制限は、15 秒あたり 120 回です。

SQL の詳細については、「SQL」をご参照ください。

MapReduce の制限

次の表は、MaxCompute での MapReduce ジョブの開発に関する制限を示しています。

項目値の範囲分類構成項目デフォルト値構成可能説明
インスタンスが占有するメモリ[256 MB, 12 GB]メモリodps.stage.mapper(reducer).memodps.stage.mapper(reducer).jvm.mem および 2,048 MB および 1,024 MBはい単一の map または reduce インスタンスが占有するメモリ。メモリは 2 つの部分で構成されています。デフォルトで 2,048 MB のフレームワークメモリと、デフォルトで 1,024 MB の Java 仮想マシン (JVM) ヒープメモリです。
リソースの数256数量-該当なしいいえ各ジョブは最大 256 のリソースを参照できます。各テーブルまたはアーカイブは 1 つのリソースと見なされます。
入力と出力の数1,024 および 256数量-該当なしいいえジョブの入力の数は 1,024 を超えることはできず、ジョブの出力の数は 256 を超えることはできません。テーブルのパーティションは 1 つの入力と見なされます。テーブルの数は 64 を超えることはできません。
カウンターの数64数量-該当なしいいえジョブのカスタムカウンターの数は 64 を超えることはできません。カウンターグループ名とカウンター名に番号記号 (#) を含めることはできません。2 つの名前の合計の長さは 100 文字を超えることはできません。
map インスタンスの数[1, 100000]数量odps.stage.mapper.num該当なしはいジョブの map インスタンスの数は、分割サイズに基づいてフレームワークによって計算されます。入力テーブルが指定されていない場合は、odps.stage.mapper.num パラメーターを設定して map インスタンスの数を指定できます。値の範囲は 1 から 100,000 です。
reduce インスタンスの数[0, 2000]数量odps.stage.reducer.num該当なしはいデフォルトでは、ジョブの reduce インスタンスの数は map インスタンスの数の 25% です。数を 0 から 2,000 の範囲の値に設定できます。reduce インスタンスは map インスタンスよりもはるかに多くのデータを処理するため、reduce ステージの処理時間が長くなる可能性があります。ジョブは最大 2,000 の reduce インスタンスを持つことができます。
再試行回数3数量-該当なしいいえmap または reduce インスタンスに許可される最大再試行回数は 3 です。再試行を許可しない例外が発生すると、ジョブが失敗する可能性があります。
ローカルデバッグモード最大 100 インスタンス数量-該当なしいいえ
ローカルデバッグモードでは、次のようになります。
  • map インスタンスの数はデフォルトで 2 で、100 を超えることはできません。
  • reduce インスタンスの数はデフォルトで 1 で、100 を超えることはできません。
  • 1 つの入力のダウンロードレコードの数はデフォルトで 100 で、10,000 を超えることはできません。
リソースが繰り返し読み取られる回数64数量-該当なしいいえmap または reduce インスタンスがリソースを繰り返し読み取る回数は 64 を超えることはできません。
リソースバイト数2 GB長さ-該当なしいいえジョブによって参照されるリソースの合計バイト数は 2 GB を超えることはできません。
分割サイズ1 以上長さodps.stage.mapper.split.size256 MBはいフレームワークは分割サイズに基づいて map インスタンスの数を決定します。
列の文字列の長さ8 MB長さ-該当なしいいえ列の文字列の長さは 8 MB を超えることはできません。
ワーカーのタイムアウト期間[1, 3600]時間odps.function.タイムアウト600600はいcontext.progress()
MapReduce によって参照されるテーブルでサポートされるフィールドタイプBIGINT、DOUBLE、STRING、DATETIME、および BOOLEANデータ型-該当なしいいえMapReduce タスクがテーブルを参照する場合、テーブルにサポートされていないフィールドタイプがあるとエラーが返されます。
Object Storage Service (OSS) データ読み取り-機能-該当なしいいえMapReduce は OSS データを読み取ることができません。
MaxCompute V2.0 の新しいデータ型-機能-該当なしいいえMapReduce は MaxCompute V2.0 の新しいデータ型をサポートしていません。

MapReduce の詳細については、「MapReduce」をご参照ください。

PyODPS の制限

DataWorks を使用して MaxCompute で PyODPS ジョブを開発する前に、次の制限に注意してください。

  • 各 PyODPS ノードは最大 50 MB のデータを処理でき、最大 1 GB のメモリを占有できます。それ以外の場合、DataWorks は PyODPS ノードを終了します。PyODPS ジョブに不要な Python データ処理コードを書き込まないでください。

  • DataWorks でコードを記述およびデバッグする効率は低いです。オンプレミスマシンに統合開発環境 (IDE) をインストールしてコードを記述することをお勧めします。

  • DataWorks のゲートウェイへの過剰な負荷を防ぐため、DataWorks は CPU 使用率とメモリ使用量を制限します。システムに Got killed と表示された場合、メモリ使用量が上限を超えており、システムは関連するプロセスを終了します。ローカルデータ操作を実行しないことをお勧めします。ただし、メモリ使用量と CPU 使用量の制限は、PyODPS によって開始された to_pandas を除く SQL または DataFrame タスクには適用されません。

  • matplotlib などのパッケージがないため、関数は次の点で制限される可能性があります。

    • DataFrame の plot 関数の使用に影響します。

    • DataFrame ユーザー定義関数 (UDF) は、DataFrame UDF が MaxCompute にコミットされた後にのみ使用できます。Python サンドボックスの要件に基づいて UDF を実行するには、純粋な Python ライブラリと NumPy ライブラリのみを使用できます。 pandas などの他のサードパーティライブラリは使用できません。

    • DataWorks にプリインストールされている NumPy および pandas ライブラリを使用して、UDF 以外の関数のコードを実行できます。バイナリコードを含むサードパーティパッケージはサポートされていません。

  • 互換性の理由から、DataWorks では options.tunnel.use_instance_tunnel はデフォルトで False に設定されています。[InstanceTunnel] をグローバルに有効にする場合は、このパラメーターを True に設定する必要があります。

  • 実装上の理由により、Python atexit パッケージはサポートされていません。try-finally 構造を使用して関連機能を実装する必要があります。

PyODPS の詳細については、「PyODPS」をご参照ください。

Graph の制限

MaxCompute で Graph ジョブを開発する前に、次の制限に注意してください。

  • 各ジョブは最大 256 のリソースを参照できます。各テーブルまたはアーカイブは 1 つのユニットと見なされます。

  • ジョブによって参照されるリソースの合計バイト数は 512 MB を超えることはできません。

  • ジョブの入力の数は 1,024 を超えることはできず、ジョブの出力の数は 256 を超えることはできません。入力テーブルの数は 64 を超えることはできません。

  • 複数の出力に指定されたラベルを null または空の文字列にすることはできません。ラベルの長さは 256 文字列を超えることはできず、文字、数字、アンダースコア (_)、番号記号 (#)、ピリオド (.)、およびハイフン (-) のみを含めることができます。

  • 1 つのジョブのカスタムカウンターの数は 64 を超えることはできません。カウンター グループ名カウンター名 には、番号記号(#)を含めることはできません。2 つの名前の合計の長さは 100 文字を超えることはできません。

  • ジョブのワーカーの数はフレームワークによって計算されます。ワーカーの最大数は 1,000 です。ワーカーの数がこの値を超えると、エラーが報告されます。

  • ワーカーはデフォルトで 200 ユニットの CPU リソースを消費します。消費されるリソースの範囲は 50 から 800 です。

  • ワーカーはデフォルトで 4,096 MB のメモリを消費します。消費されるメモリの範囲は 256 MB から 12 GB です。

  • ワーカーはリソースを最大 64 回繰り返し読み取ることができます。

  • split_size のデフォルト値は 64 MB です。ビジネス要件に基づいてパラメーターを設定できます。split_size の値は 0 より大きく、9223372036854775807>>20 演算の結果以下である必要があります。

  • MaxCompute Graph の GraphLoader、Vertex、および Aggregator は、クラスターで実行されるときに Java サンドボックスによって制限されます。ただし、Graph ジョブのメインプログラムは Java サンドボックスによって制限されません。詳細については、「Java サンドボックス」をご参照ください。

Graph の詳細については、「Graph」をご参照ください。

その他の制限

次の表は、異なるリージョンにある MaxCompute プロジェクトで同時に送信できるジョブの最大数を示しています。

Region

Maximum number of concurrent jobs in a single MaxCompute project

China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Ulanqab), China (Shenzhen), and China (Chengdu)

2,500

China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Japan (Tokyo), Germany (Frankfurt), US (Silicon Valley), US (Virginia), UK (London) and UAE (Dubai)

1000

MaxCompute プロジェクトで同時実行ジョブ数が上限に達しているときにジョブの送信を続けると、エラーメッセージが表示されます。エラーメッセージの例:com.aliyun.odps.OdpsException: Request rejected by flow control. You have exceeded the limit for the number of tasks you can run concurrently in this project. Please try later