SETPROJECT コマンドは、MaxCompute におけるプロジェクトレベルのプロパティを表示および設定します。このコマンドを使用すると、スケジューリングリソース、SQL の動作、セキュリティポリシー、データの型など、すべての構成可能なパラメーターを確認または更新できます。
対応プラットフォーム
SETPROJECT コマンドは、MaxCompute クライアント (odpscmd)または DataWorks の ODPS SQL ノード 上で実行できます。
注意事項
MaxCompute プロジェクトと DataWorks ワークスペースは同一の概念ではありません。プロジェクト名を確認するには、MaxCompute コンソール にログインし、MaxCompute コンソールプロジェクト名 列を プロジェクト管理 タブで確認してください。
SETPROJECTはプロジェクトを作成または削除できません。プロジェクトを作成するには、「MaxCompute プロジェクトを作成する」をご参照ください。
プロジェクトプロパティの表示
すべてのプロジェクトレベルのプロパティおよびその現在の値を返します。
セッションレベルのプロパティについては、代わりに SHOW FLAGS コマンドを使用してください。「SET 操作」の「SHOW FLAGS」セクションをご参照ください。
構文
setproject;プロパティ
以下の表に、一般的なプロジェクトプロパティの一覧を示します。
範囲 列は、各プロパティが現在のセッションのみに適用される (セッション) か、プロジェクト全体に適用される (プロジェクト) かを示します。セッションレベルのプロパティは、現在の接続中のみ有効であり、セッション終了時に失われます。プロジェクトレベルの変更は、すべてのセッションにグローバルに適用されます。
| カテゴリ | 範囲 | パラメーター | 説明 | 有効な値 | 影響を受けるステートメント |
|---|---|---|---|---|---|
| エコシステム | セッション | console.sql.result.instancetunnel | InstanceTunnel の有効化または無効化を設定します。Tunnel コマンドの詳細については、「使用上の注意」をご参照ください。 | True: 有効。False: 無効。 | SELECT |
| スケジューリング | セッション | odps.stage.mapper.mem | 各 Map ワーカーに割り当てるメモリ量です。 | 256 MiB~12288 MiB。デフォルト値:1024 MiB。 | ALL |
| スケジューリング | セッション | odps.stage.reducer.mem | 各 Reduce ワーカーに割り当てるメモリ量です。 | 256 MiB~12288 MiB。デフォルト値:1024 MiB。 | ALL |
| スケジューリング | セッション | odps.stage.joiner.mem | 各 Join ワーカーに割り当てるメモリ量です。 | 256 MiB~12288 MiB。デフォルト値:1024 MiB。 | ALL |
| スケジューリング | セッション | odps.stage.mem | ジョブ内のすべてのワーカーに割り当てる合計メモリ量です。odps.stage.mapper.mem、odps.stage.reducer.mem、および odps.stage.joiner.mem より優先度が低くなります。 | 256 MiB~12288 MiB。デフォルト値なし。 | ALL |
| スケジューリング | セッション | odps.stage.mapper.split.size | Map ワーカーごとの入力データサイズ(分割サイズ)です。Map ステージにおけるワーカー数を制御します。SQL ステートメントで LIMIT を使用している場合、同時ワーカー数は最大 1 に制限されます。このパラメーターを設定する際は、LIMIT の使用を避けてください。 | デフォルト値:256 MiB。 | ALL |
| スケジューリング | セッション | odps.sql.split.size | テーブルレベルの並列処理におけるシャードサイズです。例:{"table1": 1024, "table2": 512} | 単位:MiB。 | ALL |
| スケジューリング | セッション | odps.sql.split.row.count | テーブルレベルの並列処理におけるシャードごとの行数です。内部テーブル(トランザクション非対応、クラスター化されていないテーブル)にのみ適用されます。例:{"table1": 100, "table2": 500} | 正の整数。 | ALL |
| スケジューリング | セッション | odps.sql.split.dop | テーブルレベルの処理における並列度です。内部テーブル(トランザクション非対応、クラスター化されていないテーブル)にのみ適用されます。例:{"table1": 1, "table2": 5} | 正の整数。 | ALL |
| スケジューリング | セッション | odps.stage.reducer.num | 各 Reduce ステージにおけるワーカー数です。SQL ステートメントで LIMIT を使用している場合、同時ワーカー数は最大 1 に制限されます。 | — | ALL |
| スケジューリング | セッション | odps.stage.joiner.num | 各 Join ステージにおけるワーカー数です。SQL ステートメントで LIMIT を使用している場合、同時ワーカー数は最大 1 に制限されます。 | — | ALL |
| スケジューリング | セッション | odps.stage.num | ジョブにおける同時ワーカーの合計数です。odps.stage.mapper.split.size、odps.stage.reducer.num、および odps.stage.joiner.num より優先度が低くなります。SQL ステートメントで LIMIT を使用している場合、同時ワーカー数は最大 1 に制限されます。 | — | ALL |
| スケジューリング | プロジェクト | odps.instance.priority.enable | サブスクリプションコンピューティングリソースを使用するプロジェクトに対してジョブの優先度を有効にします。詳細については、「ジョブの優先度」をご参照ください。このコマンドは、プロジェクトオーナーまたは Super_Administrator ロールを持つユーザーのみが実行できます。 | True: 有効。False: 無効。 | ALL |
| SQL | セッション | odps.sql.reshuffle.dynamicpt | 過剰な小ファイルを防止するための動的パーティショニングを有効化します。生成される動的パーティション数が少ない場合は、データスキューを回避するためにこの値を False に設定してください。 | True: 有効。False: 無効。 | INSERT INTO、INSERT OVERWRITE |
| SQL | セッション | odps.sql.udf.getjsonobj.new | 以下を制御します:GET_JSON_OBJECT の戻り値に元の文字列を保持するかどうか。2021年1月21日以降に作成されたプロジェクトでは、デフォルトで元の文字列を返します。それ以前に作成されたプロジェクトでは、デフォルトで JSON の予約文字をエスケープ文字として返します。詳細については、「文字列関数」をご参照ください。 | True: 有効。False: 無効。 | UDF |
| SQL | セッション | odps.sql.udf.jvm.memory | ユーザー定義関数 (UDF) に対する Java 仮想マシン (JVM) ヒープメモリの最大値です。大規模なインメモリソートによりメモリ不足 (OOM) エラーが発生する場合は、この値を増加させますが、根本原因の解消には UDF コードの最適化が必要です。 | 256 MiB~12288 MiB。デフォルト値:1024 MiB。 | UDF |
| SQL | セッション | odps.function.timeout | UDF のタイムアウト期間です。 | 0 秒~3600 秒。デフォルト値:600 秒。 | UDF |
| SQL | セッション | odps.sql.session.resources | ユーザー定義型 (UDT) によって参照されるリソースです。複数のリソースはコンマで区切ります。詳細については、「概要」をご参照ください。 | アップロード済みのリソース。 | UDT |
| SQL | セッション | odps.sql.udt.display.tostring | すべての UDT 出力カラムに対して、Wrap で java.util.Objects.toString(...) メカニズムを有効化します。 | True: 有効。False: 無効。 | UDT |
| SQL | セッション | odps.sql.session.java.imports | UDT によって参照される Java パッケージです。複数のパッケージはコンマで区切ります。詳細については、「概要」をご参照ください。 | アップロード済みの Java パッケージ。 | UDT |
| SQL | セッション | odps.sql.skewjoin | 長尾問題を防止するための SKEWJOIN を有効化します。 | True: 有効。False: 無効。 | SELECT、JOIN |
| SQL | セッション | odps.sql.skewinfo | SKEWJOINが操作するキーと値です。詳細については、「データスキューのチューニング」をご参照ください。 | — | SELECT、JOIN |
| SQL | セッション | odps.sql.udf.ppr.deterministic | UDF 用のパーティションプルーニングを有効化します。詳細については、「WHERE 句」をご参照ください。 | True: 有効。False: 無効。 | UDF |
| SQL | セッション | odps.sql.udf.ppr.to.subquery | パーティションプルーニングを実行する際、結果のバックフィル中に発生するエラーを無視します。詳細については、「SELECT 構文」をご参照ください。 | True: 有効。False: 無効。 | UDF |
| SQL | セッション | odps.optimizer.enable.range.partial.repartitioning | 範囲クラスター化テーブルに対する Shuffle Remove 機能を有効化します。 | True: 有効。False: 無効。 | INSERT OVERWRITE、CREATE TABLE |
| SQL | セッション | odps.optimizer.merge.partitioned.table | クエリで同じパーティションテーブルを複数回使用する場合、テーブル読み取りを統合して I/O を最小限に抑え、パフォーマンスを向上させます。 | True: 有効。False: 無効。 | SELECT |
| SQL | セッション | odps.optimizer.skew.join.topk.num | オプティマイザーが集約操作を実行する際にフェッチするホットキーの値の数。詳細については、「SKEWJOIN HINT」をご参照ください。 | — | SKEWJOIN HINT |
| SQL | セッション | odps.optimizer.stat.collect.auto | 列統計情報を自動的に収集する Freeride 機能を有効にします。詳細については、「Optimizer」をご参照ください。 | True: 有効。False: 無効。 | CREATE TABLE、INSERT INTO、INSERT OVERWRITE |
| SQL | セッション | odps.optimizer.stat.collect.plan | 収集する列統計情報を指定する収集計画です。 Optimizer をご参照ください。 | — | CREATE TABLE、INSERT INTO、INSERT OVERWRITE |
| SQL | セッション | odps.sql.external.net.vpc | 外部テーブルに対する VPC アクセスを有効化します。詳細については、「Hologres 外部テーブル」をご参照ください。 | True: 有効。False: 無効。 | CREATE TABLE |
| SQL | セッション | odps.sql.groupby.position.alias | GROUP BY 内の整数定数が、SELECT 内のカラム位置を参照できるようにします。 | True: 有効。False: 無効。 | SELECT、GROUP BY |
| SQL | セッション | odps.sql.groupby.skewindata | GROUP BY に対するアンチスキュー機能を有効化します。 | True: 有効。False: 無効。 | GROUP BY |
| SQL | セッション | odps.sql.orderby.position.alias | ORDER BY 内の整数定数が、SELECT 内のカラム位置を参照できるようにします。 | True: 有効。False: 無効。 | ORDER BY、SELECT |
| SQL | セッション | odps.sql.mapjoin.memory.max | MAPJOIN 実行時にメモリに読み込まれる小規模テーブルのメモリサイズです。タスク内のすべての小規模テーブルに対するグローバルな合計上限は、std::min(8G, odps.sql.mapjoin.memory.max × 小規模テーブル数) となります。 | 0 MiB~8192 MiB。 | JOIN |
| SQL | セッション | odps.sql.distributed.map.join.memory.max | MAPJOIN 実行時の HashTableBuilder インスタンスごとのメモリ量です。デフォルト値:2048 MiB。 | 0 MiB~8192 MiB。 | JOIN |
| SQL | セッション | odps.sql.python.version | SQL ステートメント実行時に使用される Python のバージョンです。 | cp27、cp37 | UDTF、UDAF |
| SQL | セッション | odps.sql.select.output.format | MaxCompute クライアントが SELECT 結果にカラムヘッダーを表示するかどうかを制御します。「MaxCompute クライアント (odpscmd)」をご参照ください。 | {"needHeader":false,"fieldDelim":""}: ヘッダーなし。{"needHeader":true,"fieldDelim":""}: ヘッダーあり。 | ALL |
| SQL | セッション | odps.sql.unstructured.data.oss.use.https | 基盤レイヤーで外部テーブルにアクセスする際に HTTPS を有効化します。詳細については、「OSS 外部テーブルの作成」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| SQL | セッション | odps.sql.decimal.tostring.trimzero | DECIMAL 型の小数点以下の末尾ゼロを削除します。デフォルト値:True。 | True: 末尾ゼロを削除。False: 末尾ゼロを保持。 | CAST |
| SQL | セッション | odps.sql.unstructured.tablestore.put.row | `PutRow` 操作を呼び出して、`Tablestore` 外部テーブルにデータを書き込みます。「PutRow」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| SQL | セッション | odps.sql.unstructured.external.max.dop | 外部テーブルへのアクセスを行うワーカーの最大同時実行数です。 | 正の整数。 | 外部テーブルのクエリおよび書き込み |
| SQL | セッション/プロジェクト | odps.sql.unstructured.file.pattern.black.list | Object Storage Service (OSS) または Hadoop 分散ファイルシステム (HDFS) から外部テーブルを読み取る際に、パターンに一致するファイルを無視します。Spark によって書き込まれた _SUCCESS ファイルをスキップする場合に使用します。セッションレベルでの例:SET odps.sql.unstructured.file.pattern.black.list=.*_SUCCESS$; | .*_SUCCESS$ | 外部テーブルのクエリ |
| SQL | セッション | odps.meta.exttable.stats.onlinecollect | オプティマイザーがクエリ実行中に一時的に外部テーブルの統計情報を収集できるようにします。これにより、オプティマイザーは小規模テーブルを検出し、ハッシュ結合を適用し、結合順序を最適化し、シャッフル操作を削減できます。デフォルト値:False。 | True: 有効。False (デフォルト): 無効。 | 外部テーブルのクエリ |
| SQL | プロジェクト | odps.sql.allow.fullscan | プロジェクトにおける全表スキャンを有効化します。全表スキャンは大量のリソースを消費し、処理効率を低下させるため、本番環境では必要に応じてのみ有効化してください。 | True: 有効。False: 無効。 | SELECT |
| SQL | プロジェクト | odps.table.lifecycle | プロジェクト内で作成されるテーブルに対するライフサイクル要件を設定します。 | 任意: LIFECYCLE 句は任意です。必須: LIFECYCLE 句は必須です。継承: 明示的なライフサイクルを持たないテーブルは、odps.table.lifecycle.value の値を継承します。 | CREATE TABLE |
| SQL | プロジェクト | odps.table.lifecycle.value | テーブルのデフォルトライフサイクル(日数)です。odps.table.lifecycle が 継承 に設定されている場合に適用されます。 | 1~37231。デフォルト値:37231。 | CREATE TABLE |
| SQL | プロジェクト | READ_TABLE_MAX_ROW | SELECT ステートメントによって返される最大行数です。 | 1~10000。デフォルト値:10000。 | SELECT |
| SQL | プロジェクト | odps.output.field.formatter | SQL クエリの結果に適用される動的データマスキングルール。「動的データマスキング」を参照してください。 | カスタムマスキングルール。 | SELECT |
| SQL | プロジェクト | odps.sql.acid.table.enable | ACID 特性 (原子性、一貫性、独立性、永続性) のメカニズムを有効にします。「ACID セマンティクス」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| SQL | セッション/プロジェクト | odps.io.oss.use.vipserver | OSS アクセスを Server Load Balancer (SLB) ではなく VIPServer を経由してルーティングします。VIPServer はフロー制御による高いスループットをサポートしますが、クエリ失敗を引き起こす可能性があります。有効化する前に安定性とのトレードオフを評価してください。デフォルト値:False。 | True: 有効。False (デフォルト): 無効。 | 外部テーブルのクエリ |
| SQL | セッション/プロジェクト | odps.sql.executionengine.enable.string.to.date.full.format | 時、分、秒を含む日付文字列の変換を有効化します。デフォルト値:False。 | True: 有効。False: 無効。 | CAST |
| SQL | セッション/プロジェクト | odps.sql.executionengine.enable.rand.time.seed | RAND 関数で使用されるシードを制御します。False (デフォルト): インスタンス ID をシードとして使用し、べき等性を保証します。True: システム時間を使用するため、結果はべき等ではなく、呼び出し毎に変化します。 | True: 有効。False: 無効。 | RAND |
| SQL | セッション/プロジェクト | odps.sql.type.system.odps2 | MaxCompute V2.0 データの型エディションを有効にします。「MaxCompute V2.0 データの型エディション」をご参照ください。 | True: 有効。False: 無効。 | MaxCompute V2.0 追加関数 |
| SQL | セッション/プロジェクト | odps.sql.type.json.enable | JSON データの型を有効化します。詳細については、「MaxCompute での JSON データの型の使用方法に関する手順」をご参照ください。 | True: 有効。False: 無効。 | MaxCompute JSON データの型 |
| SQL | セッション/プロジェクト | odps.sql.hive.compatible | Hive 互換データの型エディションを有効化します。inputRecordReader、outputRecordReader、および SerdeHive 互換のデータの型編集 などの Hive 構文を使用する場合に必要です。「」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| SQL | セッション/プロジェクト | odps.sql.metering.value.max | 消費制御単一の SQL ステートメントが消費できるリソースの上限です。「」をご参照ください。 | — | ALL |
| SQL | セッション/プロジェクト | odps.sql.timezone | MaxCompute プロジェクトのタイムゾーン。詳細については、「タイムゾーンの構成操作」をご参照ください。 | — | ALL |
| SQL | セッション/プロジェクト | odps.sql.unstructured.oss.commit.mode | OSS 外部テーブルへのデータ書き込み時に OSS マルチパートアップロードを有効にします。詳細については、「OSS へのデータ書き込み」をご参照ください。 | True: 有効。False: 無効。 | INSERT OVERWRITE |
| SQL | セッション/プロジェクト | odps.sql.groupby.orderby.position.alias | GROUP BY および ORDER BY 内の整数定数が、SELECT 内のカラム位置を参照できるようにします。既存のプロジェクトでこの値を True に設定すると、既存のデータ解析ロジックが破損する可能性があります。プロジェクトレベルで有効化する前に、十分なテストを実施してください。 | True: 有効。False: 無効。 | GROUP BY、ORDER BY、SELECT |
| SQL | セッション/プロジェクト | odps.ext.oss.orc.native | ネイティブの Optimized Row Columnar (ORC) リーダーを使用してテーブルデータを読み取ります。 | True: 有効。False: 無効。 | SELECT |
| SQL | セッション | odps.sql.job.max.time.hours | 単一ジョブの最大持続時間(時間単位)です。 | 1~72。デフォルト値:24。 | SQL ジョブ |
| 課金 | セッション | odps.task.quota.preference.tag | ジョブに割り当てるクォータグループです。ジョブは、タグが一致するクォータグループにスケジュールされます。一致するタグが見つからない場合は、プロジェクトのデフォルトクォータグループが使用されます。SQL ジョブにのみ適用されます。例:set odps.task.quota.preference.tag = payasyougo; タグ名には、英字、数字、およびアンダースコアを含めることができます。 | MaxCompute マネージャーで構成されたクォータグループのタグ名です。タグ名は、ご利用のジョブのプロジェクトが属するリージョンでのみ設定可能です。タグ名には、英字、数字、およびアンダースコア (_) を含めることができます。 | ALL |
| 課金 | セッション | odps.task.wlm.quota | セッション内のジョブ実行に使用されるクォータの名前です。 | — | ALL |
| セキュリティおよび権限 | プロジェクト | odps.forbid.fetch.result.by.bearertoken | ジョブの結果が LogView の [結果] タブに表示されるかどうかを制御します。 | True: 結果は非表示になります。False: 結果は表示されます。 | ALL |
| セキュリティおよび権限 | プロジェクト | LabelSecurity | ラベルベースのアクセス制御(LabelSecurity)を有効化します。詳細については、「ラベルベースのアクセス制御」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| セキュリティおよび権限 | プロジェクト | CheckPermissionUsingACL | ACL ベースのアクセス制御を有効にします。「MaxCompute の権限」を参照してください。 | True: 有効。False: 無効。 | ALL |
| セキュリティおよび権限 | プロジェクト | CheckPermissionUsingPolicy | ポリシーに基づくアクセスの制御を有効化します。詳細については、「ポリシーに基づくアクセスの制御」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| セキュリティおよび権限 | プロジェクト | ObjectCreatorHasAccessPermission | オブジェクト作成者に、自身が作成したオブジェクトへのアクセス権限を付与します。 | True: 有効。False: 無効。 | ALL |
| セキュリティおよび権限 | プロジェクト | ObjectCreatorHasGrantPermission | オブジェクト作成者に、自身が作成したオブジェクトへのアクセス権限を他のユーザーに付与する権限を付与します。 | True: 有効。False: 無効。 | ALL |
| セキュリティおよび権限 | プロジェクト | ProjectProtection | プロジェクトのデータ保護を有効化します。「プロジェクトのデータ保護」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| セキュリティおよび権限 | プロジェクト | odps.output.field.formatter | SQL クエリの結果に適用される動的データマスキングルール。「動的データマスキング」をご参照ください。 | カスタムマスキングルール。 | SELECT |
| セキュリティおよび権限 | プロジェクト | odps.security.ip.whitelist | クラウドプロダクト相互接続ネットワーク経由でプロジェクトにアクセスするための IP アドレスホワイトリスト。IP アドレスはコンマで区切ります。詳細については、「IP アドレスホワイトリストの管理」をご参照ください。 | カンマ区切りの IP アドレス。 | ALL |
| セキュリティおよび権限 | プロジェクト | odps.security.vpc.whitelist | 特定の VPC を介してプロジェクトにアクセスするための IP アドレスホワイトリスト。詳細については、「IP アドレスホワイトリストの管理」をご参照ください。 | RegionID_VPCID[IP Address] | ALL |
| データの型 | プロジェクト | odps.sql.decimal.odps2 | MaxCompute V2.0 データの型エディションで DECIMAL(precision,scale) が有効になります。詳細については、「MaxCompute V2.0 データの型エディション」をご参照ください。 | True: 有効。False: 無効。 | ALL |
| データストレージ | プロジェクト | odps.timemachine.retention.days | バックアップデータの保持期間(日数)。詳細については、「バックアップと復元」をご参照ください。 | 0~30。デフォルト値:1。 | ALL |
| メタデータ | プロジェクト | odps.schema.evolution.enable | スキーマ進化を有効化します。デフォルト値:False。 | True: 有効。False (デフォルト): 無効。 | スキーマ進化 |
プロジェクトプロパティの設定
プロジェクトレベルのプロパティを設定します。変更は 5 分以内に有効になります。変更内容の確認は、5 分後に実施してください。
セッションレベルのプロパティを設定する場合は、代わりに SET ステートメントを使用してください。「SET 操作」の「SET」セクションをご参照ください。
権限
プロジェクトレベルのプロパティを設定できるのは、プロジェクトオーナーまたは Super_Administrator または Admin のプロジェクトレベルロールが割り当てられたユーザーのみです。「ユーザーへの組み込み管理者ロールの割り当て」をご参照ください。
構文
setproject <KEY>=<VALUE>;パラメーター
| パラメーター | 説明 |
|---|---|
KEY | プロパティ名です。 |
VALUE | プロパティ値です。有効な値については、「プロジェクトプロパティの表示」をご参照ください。 |
例
プロジェクトで全表スキャンを有効化するには、次のコマンドを実行します。
setproject odps.sql.allow.fullscan=true;次のステップ
ADD ACCOUNTPROVIDER: プロジェクトに RAM アカウントシステムを追加します。
USE: アクセス権限を持つ特定のプロジェクトに切り替えます。
LIST ACCOUNTPROVIDERS: プロジェクトでサポートされるアカウントシステムを一覧表示します。
REMOVE ACCOUNTPROVIDER: プロジェクトから RAM アカウントシステムを削除します。