このドキュメントでは、MaxCompute のフラグ、実行時フラグ、および MaxFrame の実行時パラメーターについて説明します。詳細な設定例を示し、それぞれの意味、デフォルト値、有効値、一般的なシナリオ、推奨設定について解説します。
MaxFrame パラメーターの例
MaxCompute SQL フラグ
MaxFrame では、すべての MaxCompute SQL 関連のフラグは options.sql.settings ディクショナリで管理されます。
from maxframe import options
options.sql.settings = {
# 例:ジョブの最大実行時間を 72 時間に設定します。
"odps.sql.job.max.time.hours": 72,
# 例:ジョブにカスタムイメージを指定します。
"odps.session.image": "common",
# 例:すべての入力テーブルの同時実行性を 50000 に設定します。
"odps.sql.split.dop": '{"*":50000}',
# 例:データ処理のバッチサイズを 1024 行に設定します。
"odps.sql.executionengine.batch.rowcount": 1024,
}
MaxFrame オプション
MaxFrame の実行時パラメーターは、options.xxx 形式を使用して直接設定します。次のコードに例を示します。
from maxframe import options
# 例:LogView リンクの保存期間を 24 時間に設定します。
options.session.logview_hours = 24
# 例:リトライ可能なエラーが発生した場合のクライアントのリトライ回数を設定します。
options.retry_times = 3
# 例:MaxCompute の組み込みクエリ最適化機能を有効にします。
options.sql.enable_mcqa = True
MaxCompute フラグ
次の表に、options.sql.settings ディクショナリの一般的なフラグを示します。
パラメーターカテゴリ | パラメーター | 目的 | 有効値の範囲とデフォルト値 | 推奨事項 |
同時実行性とチャンキング |
|
| 範囲:1~99999。デフォルト:なし。 | 大きなテーブルを処理したり、大規模なタスクを実行したりする場合は、このパラメーターを明示的に有効にして、高い同時実行性を実現します。 |
| CMF 情報が利用できない場合、システムは入力テーブルのサイズ (MB) に基づいてタスクをチャンキングします。 | 範囲:≥ 1。デフォルト:256 MB。 | デフォルト値を維持します。 | |
リソースとメモリ |
| それぞれマッパー、レデューサー、ジョイナーの各ステージで、単一のワーカーにメモリ (MB) を割り当てます。 | 範囲:1024 MB~12288 MB。デフォルト:1024 MB。 | 大量のデータを処理する場合、データホットスポットが発生した場合、または複雑な結合によってメモリ不足 (OOM) エラーが発生した場合は、この値を増やしてください。 |
| Reduce ステージと Join ステージの同時実行インスタンス数を手動で設定します。 | 最大:10000。デフォルト:システムによって動的に計算されます。 | ジョブに `GROUP BY` や | |
シャッフルと出力の安全性 |
&
| マッパーによって出力される中間データのバックアップを有効にし、レプリカ数を設定します。 | 大規模なシャッフルを伴う長時間実行ジョブの場合、レプリカ数を 2 に設定します。
これにより、フォールトトレランスとデータ読み取りの安定性が大幅に向上します。 | |
| 単一のジョブが生成できる中間シャッフルデータの最大合計サイズ (MB) を設定します。 | 非常に大きなテーブルでシャッフル操作を実行する際に | ||
計算の安定性と監視 |
&
| これら 2 つのパラメーターは一緒に使用する必要があります。基盤となる Fuxi スケジューラのハートビート監視を有効にし、タイムアウト期間 (秒) を設定します。これにより、システムが長時間実行されている UDF を応答なしと誤って判断し、終了させてしまうのを防ぎます。 |
| |
| マシンの故障など一時的なエラーで単一のワーカー (インスタンス) が失敗した後、システムが自動的にリトライする最大回数です。 | デフォルト:3。推奨最大値:100。 | デフォルトより高い値を設定するには、テクニカルサポートに連絡してパラメーターをホワイトリストに追加するよう依頼してください。 | |
| 基盤となるワーカーの再利用ポリシーを設定します。 | UDF にメモリリークや状態汚染のリスクがある場合は、再利用を無効にして、各タスクがクリーンな環境で実行されるようにします。これにより、タスクの起動オーバーヘッドがわずかに増加します。 | ||
実行効率と最適化 |
| MaxCompute の内部データ処理の基本単位であるバッチのサイズを行数で設定します。 | 1024 | この値は、メモリとパフォーマンスのバランスを取ります。単一の行に大量のデータが含まれており、OOM エラーが発生する場合は、この値を減らしてください。計算が単純な場合は、この値を増やしてスループットを向上させることができます。 |
| 式のベクトル化実行エンジンを有効にします。これにより、計算集約型の操作のパフォーマンスが大幅に向上する可能性があります。 | rand() 関数を使用する場合や、多くの算術演算を実行する場合は、このパラメーターを有効にしてください。 | ||
&
| これら 2 つのパラメーターを一緒に使用して、HashJoin を無効にします。 | cbo.rule.filter.black を "hj" に設定します。これはエキスパート向けのオプションです。実行計画への影響を完全に理解していない限り、設定しないでください。 | ||
| タスク分割ステージ中に CMF 情報を同時に読み取ります。 | ジョブの分割ステージに時間がかかりすぎる場合は、このオプションを有効にしてください。 | ||
| ジョブの Master ノードのメモリサイズを設定します。 | 非常に大きなテーブルを含むシャッフルジョブを実行する場合は、この値を増やしてください。たとえば、30000 MB に設定します。 | ||
UDF と関数の安全性 |
&
| UDF または関数でデータバッチが実行されるタイムアウト期間 (秒) を制御します。 | 範囲:1~3600 秒。デフォルト:1800 秒。0 に設定しても効果はありません。 | |
| Python UDF の print 文によって stdout に出力されるログの最大長 (MB) を制限します。 | 最大:100 MB。デフォルト:20 MB。 | この値を変更するには、テクニカルサポートに連絡してホワイトリストへの追加を依頼してください。 | |
リソースと環境の依存関係 |
| ジョブの実行環境を指定します。値は、現在のテナントの MaxCompute プロジェクトに存在するカスタムイメージの名前である必要があります。 | ||
| 機能と動作の安定性を確保するために、ジョブを MaxCompute の特定のメジャーバージョンにロックします。 | これはエキスパート向けのオプションです。その影響を理解していない限り、設定しないでください。 | ||
&
| それぞれ ORC ファイルの行グループサイズと CMF メタデータファイルのバージョンを制御します。 | これらはエキスパート向けのオプションです。基盤となるメカニズムを理解していない限り、設定しないでください。 | ||
その他の一般的なパラメーター |
| パーティションフィルター条件なしでパーティションテーブルの全表スキャンを許可するかどうかを指定します。 | 予期せぬ高コストや長時間の実行を防ぐため、このオプションは注意して有効にしてください。 | |
| 単一のフィールド (列) に許容される最大ストレージサイズ (バイト単位) を定義します。 | デフォルト:8388608 (8 MB)。最大:268435456 (256 MB)。 | 長いテキスト、HTML、Base64 エンコードデータなど、非常に大きなコンテンツを含むフィールドを処理する場合は、この値を増やしてください。 | |
| SQL ジョブ全体の最大実行時間を時間単位で設定します。 | 最大:72 時間。デフォルト:24 時間。 | ||
&
| これら 2 つのパラメーターを一緒に使用して、部分的コミット機能を有効にします。一部のデータ処理が失敗してジョブが失敗した場合でも、成功した結果はコミットされます。 | これは、部分的な成功が許容される抽出、変換、ロード (ETL) シナリオに適しています。 | ||
テーブル書き込みと CMF (固定の組み合わせ) | | これはフラグの固定の組み合わせです。動的パーティションテーブルにデータを書き込む際に、カラムストア統計情報 (CMF) が迅速かつ正確に生成されることを保証します。 これは、後続のジョブが odps.sql.split.dop を使用してデータを正確に分割するために不可欠です。 | ||
MaxFrame オプション
次の表に、MaxFrame の主な組み込みオプションを示します。これらのオプションは、options.xxx 形式を使用して直接設定できます。
パラメーター名 | 目的 | タイプ | デフォルト値 |
| ローカルタイムゾーンを設定します。これは、日時関数のデフォルトの動作に影響します。 | STR/None | None |
| 生成された LogView リンクの保存期間を時間単位で設定します。 | INT | 24 |
| MaxCompute の組み込みのインテリジェントなクエリ最適化および高速化機能を有効にするかどうかを指定します。 | BOOL | TRUE |
| トレーサビリティのために、生成された SQL 文にコメントを自動的に追加するかどうかを指定します。 | BOOL | TRUE |
| システムが追加の依存関係を持つライブラリをコードが使用していることを検出した場合に、共通のパブリックイメージを自動的に設定するかどうかを指定します。 | BOOL | TRUE |
| セッションのライフサイクルを制御します。
| ||
| MaxFrame を使用して作成された一時テーブルのデフォルトのライフサイクル (日数) を設定します。 | INT | 1 |
| セッション終了時に、現在のセッションで作成されたすべての一時テーブルを自動的にクリーンアップするかどうかを指定します。 | BOOL | FALSE |
|
| dict。キーには |
多くの特殊なフラグの使用には、ホワイトリストへのリクエスト、カスタムイメージの管理、CMF 統計情報への依存など、前提条件があります。これらの高度なオプションを設定する前に、MaxCompute のテクニカルサポートチームに連絡し、設定が正しく効果的であることを確認してください。