SETステートメントを実行して、現在のセッションのMaxComputeシステム変数を設定できます。
構文
SET <KEY>=<VALUE>
パラメータ
KEY: プロパティの名前。
VALUE: プロパティの値。
セッションレベルでの共通プロパティを次の表に示します。
プロパティ
説明
有効値
console.sql.result.instancetunnel
InstanceTunnelを有効にするかどうかを指定します。 詳細については、「使用状況のメモ」をご参照ください。
True: 有効。
False: 無効。
odps.stage.mapper.mem
各Mapワーカーのメモリサイズ。
有効な値: 256〜12288。
デフォルト値: 1024 単位: MB。
odps.stage.reducer.mem
各Reduceワーカーのメモリサイズ。
有効な値: 256〜12288。
デフォルト値: 1024 単位: MB。
odps.stage.joiner.mem
各Joinワーカーのメモリサイズ。
有効な値: 256〜12288。
デフォルト値: 1024。 単位:MB。
odps.stage.mem
指定されたMaxComputeジョブのすべてのワーカーの合計メモリサイズ。 このプロパティは、odps.stage.mapper.mem、odps.stage.reducer.mem、およびodps.stage.joiner.memプロパティよりも優先度が低くなります。
有効な値: 256〜12288。
デフォルト値なし。 単位:MB。
odps.stage.mapper.split.size
各Mapワーカーの入力データ量。入力ファイルの分割サイズです。 このプロパティを使用して、各マップステージでのワーカーの数を間接的に制御できます。
説明SQL文でLIMITキーワードが使用されている場合、同時ワーカーの数は1に制限されます。 このようにして、一度に実行できるワーカーは1つだけです。 この場合、このプロパティを設定するときに、SQL文にLIMITキーワードを追加しないことを推奨します。
デフォルト値: 256 単位:MB。
odps.stage.reducer.num
各Reduceステージでのワーカーの数。
説明SQL文でLIMITキーワードが使用されている場合、同時ワーカーの数は1に制限されます。 このようにして、一度に実行できるワーカーは1つだけです。 この場合、このプロパティを設定するときに、SQL文にLIMITキーワードを追加しないことを推奨します。
有効な値: 1 ~ 10000
odps.stage.joiner.num
各参加ステージでのワーカーの数。
説明SQL文でLIMITキーワードが使用されている場合、同時ワーカーの数は1に制限されます。 このようにして、一度に実行できるワーカーは1つだけです。 この場合、このプロパティを設定するときに、SQL文にLIMITキーワードを追加しないことを推奨します。
有効な値: 1 ~ 10000
odps.stage.num
指定されたMaxComputeジョブの同時ワーカーの総数。 このパラメーターは、odps.stage.mapper.split.size、odps.stage.reducer.num、およびodps.stage.joiner.numパラメーターよりも優先度が低くなります。
説明SQL文でLIMITキーワードが使用されている場合、同時ワーカーの数は1に制限されます。 このようにして、一度に実行できるワーカーは1つだけです。 この場合、このプロパティを設定するときに、SQL文にLIMITキーワードを追加しないことを推奨します。
有効な値: 1 ~ 10000
odps.sql.reshuffle.dynamicpt
動的パーティション分割を有効にするかどうかを指定します。 動的パーティショニングは、多数の小さなファイルの生成を防止する。
True: 有効。
False: 無効。
説明生成される動的パーティションの数が少ない場合は、データスキューの問題を防ぐためにこのプロパティをFalseに設定することを推奨します。
odps.sql.type.system.odps2
MaxCompute V2.0データ型エディションを有効にするかどうかを指定します。 MaxCompute V2.0データ型エディションの詳細については、「MaxCompute V2.0データ型エディション」をご参照ください。
True: 有効。
False: 無効。
odps.sql.hive.com patible
Hive互換データ型エディションを有効にするかどうかを指定します。 MaxComputeは、Hive互換データ型エディションが有効になった後にのみ、
inputRecordReader
、outputRecordReader
、Serde
などのHive構文をサポートします。 Hive互換データ型エディションの詳細については、「Hive互換データ型エディション」をご参照ください。True: 有効。
False: 無効。
odps.sql.executionengine.coldata.de ep.buffer.size.max
MaxComputeがテーブルにデータを書き込むときに、複合型のデータを含む列を格納するために要求されるキャッシュサイズ。 これにより、書き込み性能が向上する。
出力テーブルに複雑な型のデータが過剰に含まれている場合、または出力テーブルで指定された複雑な型の変数のサイズが大きすぎる場合は、このプロパティを設定できます。
出力テーブルの3つの列のスキーマがSTRING、MAP、STRUCT、ARRAY、BINARYなどの複雑なデータ型である場合、MaxComputeはテーブルの書き込み操作のために192 MB (64 × 3) のメモリを自動的に予約します。 各列に要求されたキャッシュは、
バッチ行数
で指定された行にデータを格納するために使用されます。テーブル内の複合型の変数の推定サイズが小さい場合は、このプロパティを小さい値に設定することを推奨します。 たとえば、特定の複合型の各変数のサイズが1,024バイトを超えず、
バッチ行数
のデフォルト値 (1024) を使用する場合、このプロパティの値を1048576 (1024 × 1024) に設定できます。 例:set odps.sql.executionengine.coldata.deep.buffer.size.max=1048576;
複合型の各変数の推定サイズが7 MB〜8 MBで、
バッチ行数
が32に設定されている場合、このプロパティの値を256 MB (8 × 32) に調整できます。出力テーブルに複合型の変数が含まれている場合、または
MAPJOIN
操作に含まれる小さなテーブルに複合型のデータが含まれている場合、このプロパティの値を調整すると、ジョブの実行に使用されるメモリが悪影響を受ける可能性があります。 前述の計算方法に基づいて、このプロパティの値が大きいと、メモリ不足 (OOM) エラーが発生する可能性があります。
単位はバイトです。 デフォルト値: 67108864
odps.sql.udf.getjsonobj.new
GET_JSON_OBJECT関数が値を返すときに元の文字列を保持するかどうかを指定します。
From
April 20, 2021では、GET_JSON_OBJECT関数は、新しいMaxComputeプロジェクトで返された結果の元の文字列を自動的に保持します。 前に作成されたMaxComputeプロジェクトの場合 April 20, 2021のGET_JSON_OBJECT関数は、エスケープ文字を使用してJSON形式の予約文字を自動的に返します。 これにより、既存のジョブへの影響を防ぎます。
GET_JSON_OBJECT関数の詳細については、「GET_JSON_OBJECT」をご参照ください。
True: 有効。
False: 無効。
odps.sql.udf.jvm.memory
ユーザー定義関数 (UDF) のJava仮想マシン (JVM) ヒープの最大メモリサイズ。
UDFを使用して大量のデータを計算してメモリにソートすると、OOMエラーが発生する可能性があります。 この場合、このプロパティの値を増やすことができます。 ただし、OOMエラーを防ぐには、ビジネス要件に基づいてUDFコードを最適化する必要があります。
有効な値: 256〜12288。
デフォルト値: 1024。 単位:MB。
odps.function.timeout
UDFのタイムアウト期間。
有効な値: 0 ~ 3600
既定値:600。 単位は秒です。
LabelSecurity
LabelSecurityを有効にするかどうかを指定します。 LabelSecurityの詳細については、「ラベルベースのアクセス制御」をご参照ください。
True: 有効。
False: 無効。
odps.sql.session.resources
ユーザー定義型 (UDT) によって参照されるリソース。 複数のリソースを指定し、コンマ (,) で区切ることができます。 リソースの参照方法の詳細については、「概要」をご参照ください。
アップロードされたリソース。
odps.sql.udt.display.tostring
出力がUDTであるすべての列に対して、Wrapで
java.util.Objects.toString(...)
メカニズムを有効にするかどうかを指定します。True: 有効。
False: 無効。
odps.sql.session.java.imports
UDTによって参照されるJavaパッケージ。 複数のJavaパッケージを指定し、コンマ (,) で区切ることができます。 Javaパッケージの参照方法の詳細については、「概要」をご参照ください。
アップロードされたJavaパッケージ。
CheckPermissionUsingACL
ACLベースのアクセス制御を有効にするかどうかを指定します。 ACLベースのアクセス制御の詳細については、「MaxCompute権限」をご参照ください。
True: 有効。
False: 無効。
CheckPermissionUsingPolicy
ポリシーベースのアクセス制御を有効にするかどうかを指定します。 ポリシーベースのアクセス制御の詳細については、「ポリシーベースのアクセス制御」をご参照ください。
True: 有効。
False: 無効。
ObjectCreatorHasAccessPermission
オブジェクトの作成者が自分で作成したオブジェクトに対して操作を実行できるかどうかを指定します。
True: オブジェクトの作成者は、自分で作成したオブジェクトに対して操作を実行できます。
False: オブジェクトの作成者は、自分で作成したオブジェクトに対して操作を実行できません。
ObjectCreatorHasGrantPermission
オブジェクトの作成者が他のユーザーにオブジェクトに対する操作を許可できるかどうかを指定します。
True: オブジェクトの作成者は、他のユーザーにオブジェクトに対する操作の実行を許可できます。
False: オブジェクトの作成者は、他のユーザーにオブジェクトに対する操作の実行を許可できません。
ProjectProtection
プロジェクトデータ保護を有効にするかどうかを指定します。 プロジェクトデータ保護メカニズムの詳細については、「プロジェクトデータ保護」をご参照ください。
True: 有効。
False: 無効。
odps.output.field.formatter
SQLクエリ結果の動的データマスキングルール。 動的データマスキングの詳細については、「動的データマスキング」をご参照ください。
カスタム動的データマスキングルール。
odps.isolation.session.enable
単一セッションの動的データマスキングを有効にするかどうかを指定します。 動的データマスキングの詳細については、「動的データマスキング」をご参照ください。
True: 有効。
False: 無効。
odps.sql.skewjoin
ロングテールを防ぐためにSKEWJOIN機能を有効にするかどうかを指定します。
True: 有効。
False: 無効。
odps.sql.skewinfo
SKEWJOINが実行されるキーと値。 詳細については、「データスキューチューニング」をご参照ください。
-
odps.sql.reducer.instances
ハッシュバケットの数。 ハッシュバケットの詳細については、「テーブル操作」をご参照ください。
有効な値: 0 ~ 4000
odps.sql.udf.ppr.de終端
UDFのパーティションプルーニングを有効にするかどうかを指定します。 パーティションプルーニングの詳細については、「SELECT構文」の「WHERE句 (where_condition) 」セクションをご参照ください。
True: 有効。
False: 無効。
odps.sql.udf.ppr.to.subquery
パーティションプルーニングの実行中に結果のバックフィル中に発生するエラーを無視するかどうかを指定します。 パーティションプルーニングの詳細については、「SELECT構文」の「WHERE句 (where_condition) 」セクションをご参照ください。
True: 有効。
False: 無効。
odps.optimizer.enable.range.partial.repartitioning
範囲クラスタ化テーブルのシャッフル削除機能を有効にするかどうかを指定します。
True: 有効。
False: 無効。
odps.optimizer.skew.join.topk.num
オプティマイザが集計操作を実行するときに取得したホットキー値の数。 詳細については、「SKEWJOIN HINT」をご参照ください。
-
odps.optimizer.stat.collect.auto
フリーライド機能を有効にするかどうかを指定します。 フリーライド機能を有効にすると、テーブルの列統計メトリックが自動的に収集されます。 詳細については、「Optimizer」をご参照ください。
True: 有効。
False: 無効。
odps.optimizer.stat.collect.plan
特定の列の特定の列統計メトリックを収集するために使用される収集計画。 詳細については、「Optimizer」をご参照ください。
-
odps.sql.exe cutionengine.batch.rowcount
SQLエンジンで一度に処理できるデータ行の数。 デフォルト値: 1024。 行内のフィールドが大きいためにOOMエラーが発生した場合、またはUDFパフォーマンスが悪いためにタイムアウトが発生した場合は、このプロパティを小さい値に設定する必要があります。 値が小さすぎるとSQLエンジンのパフォーマンスに悪影響を与える可能性があるため、このプロパティを小さすぎる値に設定しないことをお勧めします。
有効な値: 1 ~ 1024
odps.sql.external.net.vpc
外部テーブルに対して仮想プライベートクラウド (VPC) を有効にするかどうかを指定します。 詳細については、
True: 有効。
False: 無効。
odps.sql.groupby.position.alias
GROUP BY
句の整数定数をSELECTステートメントの列番号として処理するかどうかを指定します。True: 有効。
False: 無効。
odps.sql.groupby.skewindata
GROUP BY
句のアンチスキュー機能を有効にするかどうかを指定します。True: 有効。
False: 無効。
odps.sql.orderby.position.alias
ORDER BY
句の整数定数をSELECTステートメントの列番号として処理するかどうかを指定します。True: 有効。
False: 無効。
odps.sql.groupby.orderby.position.alias
GROUP BY
句とORDER BY
句の整数定数をSELECTステートメントの列番号として処理するかどうかを指定します。 このプロパティを指定することを推奨します。説明ジョブが実行されているプロジェクトでこのプロパティをTrueに設定すると、ジョブの解析と実行に悪影響が生じる可能性があります。 したがって、プロパティをTrueに設定するときに、既存のジョブが元のロジックに基づいて適切に実行できることを確認する必要があります。 それ以外の場合は、セッションに対してこのプロパティを指定します。
True: 有効。
False: 無効。
odps.sql.mapjoin.memory.max
MAPJOINステートメントの実行時にメモリに読み込まれる小さなテーブルのサイズ。 単位:MB。
説明このパラメーターは、タスクレベルでの合計メモリグローバル制限の影響も受けます。 同じタスク内の複数の小さなテーブルの場合、合計メモリのグローバル上限は
std::min(8G, odps.sql.mapjoin.memory.max * 同じタスク内の小さなテーブルの数)
に等しくなります。有効な値: 0 ~ 8192
odps.sql.metering.value.max
SQL文によって消費されるリソースの上限。 詳細については、「消費制御」をご参照ください。
-
odps.sql.python.version
SQL文が実行されるPythonバージョン。
cp27
cp37
odps.sql.select.output.format
MaxComputeクライアントの返された結果にテーブルヘッダーを表示するかどうかを指定します。 詳細については、「MaxComputeクライアント (odpscmd) 」をご参照ください。
{"" needHeader "":false,"" fieldDelim "":"" ""}
: テーブルヘッダーは表示されません。{"" needHeader "":true "" "fieldDelim" ":" "" "}
: テーブルヘッダーが表示されます。
odps.sql.timezone
アクセスしたMaxComputeプロジェクトのタイムゾーン。 タイムゾーンの詳細については、「タイムゾーン設定操作」をご参照ください。
-
odps.sql.unstructured.data.oss.us e.https
外部テーブルにアクセスするときに、下層でHTTPSを使用してデータを取得するメカニズムを有効にするかどうかを指定します。 詳細については、「OSS外部テーブルの作成」をご参照ください。
True: 有効。
False: 無効。
odps.sql.unstructured.oss.commit.mo de
Object Storage Service (OSS) のマルチパートアップロード機能を有効にして、OSS外部テーブルにデータを書き込むかどうかを指定します。 詳細については、「OSSへのデータの書き込み」をご参照ください。
True: 有効。
False: 無効。
odps.sql.de cimal.tostring.trimzero
データ型がdecimalの場合、小数点の末尾のゼロを削除するかどうかを指定します。 デフォルト値は
True
です。これは、小数点の末尾のゼロを削除することを示します。True: 小数点の末尾のゼロが削除されます。
False: 小数点の末尾のゼロが保持されます。
odps.sql.unstructured.tablestore.put.row
Tablestore外部テーブルにデータを書き込むためにPutRow操作を呼び出すかどうかを指定します。
説明PutRowの詳細については、「PutRow」をご参照ください。
True: 有効。
False: 無効。
odps.sql.unstructured.external.max.dop
外部テーブルからアクセスされるワーカーの最大同時実行性。
このプロパティの値は正の整数でなければなりません。
odps.sql.exe cutionengine.enable.string.to.date.full.format
時、分、秒の部分を含む日付文字列を変換するかどうかを指定します。
True: 有効。
False: enabled。
デフォルト値:False。
odps.sql.exe cutionengine.enable.rand.time.seed
RAND関数が現在のシステム時刻または現在のインスタンスIDをシードとして使用して乱数を生成するかどうかを指定します。
True: RAND関数は、現在のシステム時間をシードとして使用して乱数を生成します。 ただし、RAND関数はべき等性を保証せず、シャッフルキーとして使用することはできません。 その結果、再実行結果は異なる可能性があります。
False: RAND関数は、現在のインスタンスIDをシードとして使用して乱数を生成します。 RAND機能はべき等を保障できます。
デフォルト値:False。
odps.sql.type.json.enable
JSONデータ型を有効にするかどうかを指定します。 JSONデータ型の詳細については、「MaxComputeでJSONデータ型を使用する手順」をご参照ください。
True: 有効。
False: 無効。
odps.ext.oss.orc.native
ネイティブORCリーダーを使用してテーブルを読み取るかどうかを指定します。
True: ネイティブORCリーダーが使用されます。
False: ネイティブORCリーダーは使用されません。
odps.sql.job.max.time.hours
1つのジョブが実行される最大期間。
説明プロジェクトレベルでプロパティを設定する必要がある場合は、リンクをクリックするか、DingTalkグループ (ID: 11782920) を検索してMaxComputeテクニカルサポートに問い合わせます。
有効な値: 1 ~ 72。 単位:時間。
デフォルト値: 24。
odps.task.wlm.quota
現在のセッションでタスクを実行するために使用されるクォータの名前。 クォータの詳細については、「新しいMaxComputeコンソールでのクォータの管理」をご参照ください。
-
説明現在のセッションに設定されているMaxComputeシステム変数を照会する必要がある場合は、LogViewのSourceXMLで表示できます。 詳細については、「LogView 2.0を使用したジョブ実行情報の表示」をご参照ください。
例
-- Set the size of data read by each Mapper to 256 MB.
SET odps.stage.mapper.split.size=256;
関連ステートメント
SHOW: このステートメントは、SETステートメントを使用して構成したプロパティを表示するために使用されます。