MaxCompute は、計算リソース、ジョブ、および文のレベルでクォータを適用します。このページでは、各機能領域におけるハードリミットと、調整可能な制限項目を示します。
サブスクリプション計算リソース
デフォルトのサブスクリプションクォータは 2,000 計算ユニット (CU) です。この上限を引き上げるには、Alibaba Cloud アカウントを使用してチケットを送信してください。MaxCompute エンジニアが 3 営業日以内にリクエストを確認し、結果をショートメッセージでお知らせします。
従量課金計算リソース
以下の表は、指定されたリージョンで単一ユーザーが同時に消費できる最大 CU 数を示しています。この上限により、特定のユーザーがクラスターリソースを枯渇させ、他のユーザーのジョブ実行を妨げることを防止します。
これらの値は取得可能な最大 CU 数であり、保証される最小値ではありません。MaxCompute はクエリを高速化するために追加の CU を割り当てる場合があります。
| 国または地域 | リージョン | 最大 CU 数 (従量課金) |
|---|---|---|
| 中国内のリージョン | 中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国東部 2 Finance、中国北部 2 Ali Gov、中国南部 1 Finance | 2,000 |
| 中国内のリージョン | 中国 (成都)、中国 (香港) | 500 |
| その他の国または地域 | シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)、ドイツ (フランクフルト)、米国 (シリコンバレー)、米国 (バージニア)、イギリス (ロンドン)、UAE (ドバイ) | 500 |
サブスクリプショントンネルスロット
サブスクリプショントンネルスロットのデフォルトクォータは 500 です。500 スロットを超えて購入するには、を送信してください。
SQL 制限
以下の表は、MaxCompute における SQL ステートメント、テーブル、およびジョブ実行に適用される制限を示しています。適用範囲 列は、制限が適用される範囲を示します。調整可否 列は、チケットを送信することで制限を引き上げられるかどうかを示します。
| 項目 | 制限 | 適用範囲 | 調整可能 | 注記 |
|---|---|---|---|---|
| テーブル名の長さ | 128 バイト | テーブル | いいえ | 名前には英字、数字、アンダースコア (_) のみを使用でき、先頭は英字である必要があります。 |
| コメントの長さ | 1,024 バイト | テーブル | いいえ | |
| テーブルごとのカラム定義 | 1,200 | テーブル | いいえ | |
| テーブルあたりのパーティション数 | 60,000 | テーブル | いいえ | |
| テーブルあたりのパーティション階層数 | 6 | テーブル | いいえ | |
| カラムレコード長 | 8 MB | テーブル | いいえ | |
| カラムのデータ型および位置 | 変更不可 | テーブル | いいえ | |
| ビューの書き込み可否 | 書き込み不可 | テーブル | いいえ | ビューは INSERT をサポートしません。 |
| クエリごとにクエリ可能なパーティション | 10,000 | クエリ | いいえ | |
SELECT 出力行 | 10,000 | クエリ | いいえ | |
MULTI-INSERT 送信先テーブル | 256 | 文 | いいえ | |
UNION ALL 結合されたテーブル | 256 | 文 | いいえ | |
MAPJOIN small テーブル | 128 | 文 | いいえ | |
MAPJOIN 小規模テーブル合計メモリ | 512 MB | 文 | いいえ | 単一の文内にあるすべての小規模テーブルに適用されます。 |
ptinsubq (サブクエリ内のパーティション) 行数 | 1,000 | 文 | いいえ | |
| SQL ステートメント長 | 2 MB | 文 | いいえ | SDK 経由で SQL を実行する場合に適用されます。 |
IN 句パラメーター | 1,024 (推奨) | 文 | — | ハードリミットではありません。1,024 を超えるとコンパイル性能が低下します。 |
| Java ユーザー定義関数 (UDF) | 抽象または静的 | 文 | いいえ | |
jobconf.json ファイルサイズ | 1 MB | ジョブ | いいえ | パーティション数が多いテーブルでは、この制限を超える可能性があります。 |
| SQL 実行計画サイズ | 1 MB | ジョブ | いいえ | 超過時のエラー: FAILED: ODPS-0010000:System internal error - The Size of Plan is too large |
| 最大ジョブ実行時間 | 72 時間 | ジョブ | いいえ | デフォルトは 24 時間です。set odps.sql.job.max.time.hours=72; を実行すると、72 時間に延長できます。72 時間を超えたジョブは自動的に停止されます。 |
詳細については、「SQL」をご参照ください。
MapReduce 制限
以下の表は、MapReduce ジョブに適用される制限を示しています。調整可否 列が はい となっている項目は、記載されている構成パラメーターを使用して変更できます。
| 項目 | 値 | 適用範囲 | 調整可能 | 構成パラメーター | デフォルト |
|---|---|---|---|---|---|
| インスタンスあたりのメモリ (フレームワーク + Java 仮想マシン (JVM) ヒープ) | 256 MB~12 GB | インスタンス | はい | odps.stage.mapper(reducer).mem および odps.stage.mapper(reducer).jvm.mem | 2,048 MB (フレームワーク) + 1,024 MB (JVM) |
| インスタンスあたりの再試行回数 | 3 | インスタンス | いいえ | — | — |
| インスタンスあたりのリソース繰り返し読み取り回数 | 64 | インスタンス | いいえ | — | — |
| 文字列カラム長 | 8 MB | インスタンス | いいえ | — | — |
ワーカータイムアウト (context.progress() によるデータの読み取り/書き込みまたはハートビートなし) | 1~3,600 秒 | インスタンス | はい | odps.function.timeout | 600 秒 |
| ジョブあたりのリソース数 | 256 | ジョブ | いいえ | — | — |
| ジョブあたりの入力数 | 1,024 | ジョブ | いいえ | — | — |
| ジョブあたりの入力テーブル数 | 64 | ジョブ | いいえ | — | — |
| ジョブあたりの出力数 | 256 | ジョブ | いいえ | — | — |
| ジョブあたりのカスタムカウンター数 | 64 | ジョブ | いいえ | — | — |
| カウンターグループ名 + カウンター名の合計文字数 | 100 文字 | ジョブ | いいえ | — | — |
| ジョブあたりのリソース合計バイト数 | 2 GB | ジョブ | いいえ | — | — |
| ジョブあたりのマップインスタンス数 | 1~100,000 | ジョブ | はい | odps.stage.mapper.num | スプリットサイズから計算 |
| ジョブあたりのリデュースインスタンス数 | 0~2,000 | ジョブ | はい | odps.stage.reducer.num | マップインスタンス数の 25 % |
| スプリットサイズ | ≥ 1 | ジョブ | はい | odps.stage.mapper.split.size | 256 MB |
| サポートされるフィールド型 | BIGINT、DOUBLE、STRING、DATETIME、BOOLEAN | ジョブ | いいえ | — | — |
追加の制限事項:
カウンターグループ名およびカウンター名にシャープ記号 (
#) を含めることはできません。MapReduce は Object Storage Service (OSS) からデータを読み取ることはできません。
MapReduce は MaxCompute V2.0 で導入された新しいデータ型をサポートしていません。
ローカルデバッグモードの制限:
| 項目 | デフォルト | 最大値 |
|---|---|---|
| マップインスタンス数 | 2 | 100 |
| リデュースインスタンス数 | 1 | 100 |
| 入力あたりのダウンロードレコード数 | 100 | 10,000 |
詳細については、「MapReduce」をご参照ください。
PyODPS 制限
DataWorks を通じて MaxCompute で PyODPS ジョブを開発する際には、以下の制限が適用されます。
各 PyODPS ノードは、最大 50 MB のデータを処理でき、最大 1 GB のメモリを消費できます。いずれかの制限を超えると、DataWorks によってノードが終了されます。PyODPS ジョブ内で大規模なデータセットに対して直接 Python データ処理コードを記述することは避けてください。
DataWorks はゲートウェイでの CPU 使用率およびメモリ使用量を制限し、過負荷を防止しています。システムに
Got killedと表示された場合、メモリ使用量が制限を超え、関連プロセスが終了されています。ローカルでのデータ操作はこれらの制限の影響を受けますが、PyODPS によって開始された SQL および DataFrame タスク (to_pandasを除く) は影響を受けません。Python の
atexitパッケージはサポートされていません。try-finally構造を使用してください。options.tunnel.use_instance_tunnelは DataWorks でデフォルトでFalseに設定されています。グローバルに InstanceTunnel を有効にするには、これをTrueに設定してください。DataWorks でのコードの記述およびデバッグは効率が限定的です。ローカルマシンに統合開発環境 (IDE) をインストールしてコードを記述することを推奨します。
パッケージの制限事項:
matplotlib などのパッケージは DataWorks 環境で利用できないため、以下の制限が適用されます。
| コンテキスト | 利用可能なライブラリ | 制限事項 |
|---|---|---|
| DataFrame ユーザー定義関数 | Pure Python ライブラリおよび NumPy | pandas およびその他のサードパーティ製ライブラリは使用できません。UDF は実行前に MaxCompute にコミットする必要があります。 |
| 非 UDF 関数 | NumPy および pandas (プリインストール済み) | バイナリコードを含むサードパーティ製パッケージはサポートされていません。 |
DataFrame plot 関数 | — | matplotlib が存在しないため影響を受けます。 |
詳細については、「PyODPS」をご参照ください。
Graph 制限
MaxCompute の Graph ジョブには、以下の制限が適用されます。
| 項目 | 制限 | 注記 |
|---|---|---|
| ジョブあたりのリソース数 | 256 | 各テーブルまたはアーカイブは 1 つのリソースとしてカウントされます。 |
| ジョブあたりのリソース合計バイト数 | 512 MB | |
| ジョブあたりの入力数 | 1,024 | 入力テーブル数は 64 を超えてはなりません。 |
| ジョブあたりの出力数 | 256 | |
| ジョブあたりのカスタムカウンター数 | 64 | カウンターグループ名およびカウンター名に # を含めることはできません。両方の名前の合計文字数は 100 文字を超えてはなりません。 |
| 出力ラベル長 | 256 文字 | ラベルには英字、数字、_、#、.、および - を使用できます。ラベルは null または空文字列であってはなりません。 |
| ジョブあたりのワーカー数 | 1,000 (最大) | ワーカー数がこの値を超えるとエラーが返されます。 |
| ワーカーあたりの CPU | 200 単位 (デフォルト)。有効値:50~800 | |
| ワーカーあたりのメモリ | 4,096 MB (デフォルト)。有効値:256 MB~12 GB | |
| ワーカーあたりのリソース繰り返し読み取り回数 | 64 | |
split_size | 64 MB (デフォルト)。> 0 かつ ≤ 9223372036854775807 >> 20 である必要があります |
サンドボックス制限: GraphLoader、Vertex、およびAggregatorは、クラスター環境でJava サンドボックス下で実行されます。Graph ジョブのメインプログラムは、Java サンドボックスによって制限されません。詳細については、「Java サンドボックス」をご参照ください。
詳細については、「Graph」をご参照ください。
同時実行ジョブ制限
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| リージョン | プロジェクトあたりの最大同時実行ジョブ数 |
|---|---|
| 中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (成都) | 2,500 |
| 中国 (香港)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)、ドイツ (フランクフルト)、米国 (シリコンバレー)、米国 (バージニア)、イギリス (ロンドン)、UAE (ドバイ) | 1,000 |
リージョン | MaxCompute プロジェクトあたりの最大同時実行ジョブ数 |
中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (成都) | 2500 |
中国 (香港)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)、ドイツ (フランクフルト)、米国 (シリコンバレー)、米国 (バージニア)、イギリス (ロンドン)、UAE (ドバイ) | 1000 |