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

MaxCompute:SET

最終更新日:Dec 13, 2024

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.memodps.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.sizeodps.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互換データ型エディションが有効になった後にのみ、inputRecordReaderoutputRecordReaderSerdeなどの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) を有効にするかどうかを指定します。 詳細については、

    Hologres外部テーブル

    • 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ステートメントを使用して構成したプロパティを表示するために使用されます。