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

AnalyticDB:設定パラメーターおよびヒントパラメーター

最終更新日:May 14, 2026

AnalyticDB for MySQL では、パラメーターを設定する方法が 2 つあります:

  • SET ADB_CONFIG KEY=VALUE — クラスター全体 (グローバルスコープ) に設定を適用します。

  • ヒント (/*+ KEY=VALUE*/) — 単一の SQL ステートメントにのみ設定を適用します。

両方の方法で同じパラメーターを設定した場合、ヒントが優先されます。

Milvus クラスターのバージョン 3.2.5 以降、システムが設定タイプを検証します。

一般的な設定パラメーター

クラスターのマイナーバージョンを表示および更新するには、[AnalyticDB for MySQL コンソール][クラスター情報] ページの [設定情報] セクションに移動します。

切り替えウィンドウ

REPLICATION_SWITCH_TIME_RANGE

クラスターのスケールアウト時における切り替えの時間枠を指定します。切り替え中、古いクラスターは 5〜10 分間、読み取り専用でトラフィックを処理します。古いクラスターに接続した後、古いクラスターでこのパラメーターを設定します。

時間枠を設定しない場合、古いクラスターからの増分データがすべて新しいクラスターに同期された後、クラスターは自動的に切り替わります。

構文:

SET ADB_CONFIG REPLICATION_SWITCH_TIME_RANGE=`23:00, 23:30`;

関連情報: Data Warehouse Edition クラスターをスケールアウトする

クエリ制限

MAX_IN_ITEMS_COUNT

IN 条件で使用できる値の最大数を設定します。正の整数である必要があります。

クラスター バージョン デフォルト
3.1.8 以前 2000
3.1.9.x ~ 3.1.10.x 4000
3.2.1 以降 20000

構文:

SET ADB_CONFIG MAX_IN_ITEMS_COUNT=4000;

関連情報: 書き込みとクエリ

MAX_SELECT_ITEMS_COUNT

SELECT ステートメントの列数の上限を設定します。デフォルト値:1024。このパラメーターを増やすと、クラスターの安定性に影響する可能性があります。ご自身で調整しないことを推奨します。

構文:

SET ADB_CONFIG MAX_SELECT_ITEMS_COUNT=1000;

関連情報: 書き込みとクエリ

QUERY_TIMEOUT

クエリ実行フェーズのタイムアウトを設定します。デフォルト値:1800000 ms (30 分)。

このパラメーターは SQL ステートメントの実行タイムアウトのみを制御し、接続タイムアウトやセッションのアイドルタイムアウトには影響しません。

構文:

SET ADB_CONFIG QUERY_TIMEOUT=1000;

INSERT_SELECT_TIMEOUT

クラスター レベルで、INSERTUPDATEDELETE ステートメントの最大実行時間を設定します。

  • デフォルト: 24×3600000 ms

  • 正の整数である必要があります。単位:ミリ秒 (ms)。

構文:

SET ADB_CONFIG INSERT_SELECT_TIMEOUT=3600000;

関連情報: 制限

述語プッシュダウン

FILTER_NOT_PUSHDOWN_COLUMNS / NO_INDEX_COLUMNS

クラスター レベルで、特定の列に対する述語プッシュダウンを無効化します。パラメーター名はクラスター バージョンによって異なります:

クラスター バージョン パラメーター
3.1.4 以降 FILTER_NOT_PUSHDOWN_COLUMNS
3.1.4 より前 NO_INDEX_COLUMNS

構文:

-- クラスター バージョン 3.1.4 以降
SET ADB_CONFIG FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.tableName1:colName1|colName2;Schema2.tableName2:colName1|colName2];

-- クラスター バージョン 3.1.4 より前
SET ADB_CONFIG NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1];

関連情報: プッシュダウンなしのフィルター条件

クエリ実行モード

QUERY_TYPE

クラスターのクエリ実行モードを切り替えます。

  • 有効な値: interactivebatch

このパラメーターは、予約モードの Data Warehouse Edition クラスター、および Enterprise Edition、Basic Edition、Data Lakehouse Edition クラスターでは使用できません。

構文:

SET ADB_CONFIG QUERY_TYPE=interactive;

関連情報: クエリ実行モード

クエリキューの同時実行性

これらのパラメーターは、フロントエンド ノードごとに、優先度レベル別の最大同時実行性とキューの深さを制御します。

パラメーター キュー デフォルト 説明
XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE LOWEST 20 最大同時実行クエリ数
XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE LOWEST 200 最大キューイング クエリ数
XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE LOW 20 最大同時実行クエリ数
XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE LOW 200 最大キューイング クエリ数
XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE NORMAL 20 最大同時実行クエリ数。この上限を超えると、新しいクエリはキューに入ります。キューの上限にも達した場合、システムは "Too many queued queries" エラーを返します。この値を増やすか、カスタムリソースグループを作成して負荷を分散できます。
XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE NORMAL 200 最大キューイング クエリ数
XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE HIGH 40 最大同時実行クエリ数
XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE HIGH 400 最大キューイング クエリ数

構文:

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE=20;
SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE=200;

関連情報: インタラクティブリソースグループの優先度キューと同時実行性

XIHE BSP ジョブ設定

BSP (Bulk Synchronous Parallel) ジョブは XIHE エンジンで実行されます。次のパラメーターは、優先度、リソース制限、タイムアウトを制御します。

QUERY_PRIORITY

BSP ジョブのスケジューリング優先度を設定します。

  • 有効な値: HIGHNORMALLOWLOWEST

  • デフォルト: NORMAL

構文:

SET ADB_CONFIG QUERY_PRIORITY=HIGH;

関連情報: 設定項目リスト

ELASTIC_JOB_MAX_ACU

1 つの BSP ジョブが使用できる ACU (AnalyticDB Compute Units) の最大数を設定します。

  • デフォルト: 9

  • 最小: 3

  • 有効な範囲: [3、ジョブタイプのリソースグループの最大 ACU]

構文:

SET ADB_CONFIG ELASTIC_JOB_MAX_ACU=20;

BATCH_QUERY_TIMEOUT

BSP ジョブのタイムアウトを設定します。正の整数である必要があります。単位:ミリ秒 (ms)。

  • デフォルト: 7200000 ms

構文:

SET ADB_CONFIG BATCH_QUERY_TIMEOUT=3600000;

外部テーブルのインポート

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

実行計画の生成時に、Hive がスプリットタスクを非同期でキューに送信するかどうかを制御します。

  • 有効な値: truefalse

  • デフォルト: false

クラスター バージョン 3.1.10.1 以降が必要です。

構文:

SET ADB_CONFIG HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true;

SQL_OUTPUT_BATCH_SIZE

MaxCompute 外部テーブルからデータをインポートする際に、バッチあたりの行数を設定します。正の整数である必要があります。

構文:

SET ADB_CONFIG SQL_OUTPUT_BATCH_SIZE=6000;

関連情報: インポートとエクスポート

ENABLE_ODPS_MULTI_PARTITION_PART_MATCH

クエリ実行前に、システムが MaxCompute パーティションを事前に走査し、各パーティションのレコード数を取得するかどうかを制御します。

  • 有効な値: truefalse

構文:

SET ADB_CONFIG ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

ASYNC_GET_SPLIT

実行計画の生成時に、MaxCompute がスプリットロードタスクを非同期でキューに送信するかどうかを制御します。

  • 有効な値: truefalse

  • デフォルト: false

クラスター バージョン 3.1.10.1 以降が必要です。

構文:

SET ADB_CONFIG ASYNC_GET_SPLIT=true;

BUILD ジョブのスケジューリング

RC_CSTORE_BUILD_SCHEDULE_PERIOD

BUILD タスクをスケジュールできる (実行ではない) 時間帯を制限します。値は 0~24 の整数である必要があります。

構文:

SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`6,8`;

関連情報: 自動 BUILD スケジューリング時間を設定する

RC_BUILD_TASK_PRIORITY_LIST

1 つ以上のテーブルの BUILD ジョブのスケジューリング優先度を設定します。この優先度は、新しい値が設定されるまで有効です。

  • 優先度は task_priority パラメーターで制御されます。整数である必要があります。

  • デフォルト: 0

構文:

SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST=`<db1_name>.<table1_name>.<task_priority>;<db2_name>.<table2_name>.<task_priority>`;

関連情報: BUILD

エラスティックインポート

RC_ELASTIC_JOB_SCHEDULER_ENABLE

エラスティックインポート機能を手動で有効化します。

構文:

SET ADB_CONFIG RC_ELASTIC_JOB_SCHEDULER_ENABLE=true;

関連情報:

REMOTE_CALL 関数

REMOTE_CALL 関数を使用して Function Compute のユーザー定義関数 (UDF) を呼び出す際は、これらのパラメーターを使用します。5 つのパラメーターはすべてクラスター レベルで設定されます。

パラメーター 説明
XIHE_REMOTE_CALL_SERVER_ENDPOINT Function Compute サービスの内部サービスエンドポイントです。サービスエンドポイントをご参照ください。 SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_ENDPOINT="1234567890000****.cn-zhangjiakou-internal.fc.aliyuncs.com"
XIHE_REMOTE_CALL_SERVER_AK Function Compute サービスを所有する Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey ID です。 SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_AK=************;
XIHE_REMOTE_CALL_SERVER_SK Function Compute サービスを所有する Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey シークレットです。 SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=************;
XIHE_REMOTE_CALL_COMPRESS_ENABLED Function Compute に送信する前に、データを GZIP 形式で圧縮するかどうかを指定します。 SET ADB_CONFIG XIHE_REMOTE_CALL_COMPRESS_ENABLED=true;
XIHE_REMOTE_CALL_MAX_BATCH_SIZE 1 バッチあたりに Function Compute に送信するデータ行数です。デフォルト:500000。 SET ADB_CONFIG XIHE_REMOTE_CALL_MAX_BATCH_SIZE=500000;

関連情報: ユーザー定義関数 (UDF)

スキャン同時実行制御

これらのパラメーターは、過剰なリソース消費によるノードの不安定化を防ぐために、同時に実行できるスキャンタスク数を制御します。

SPLIT_FLOW_CONTROL_ENABLED

クラスター レベルでスキャン同時実行制御を有効または無効にします。

  • 有効な値: truefalse

  • デフォルト: true

構文:

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true;

関連情報: スキャン同時実行制御

NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED

ノード全体のスキャン同時実行クォータに基づいて、タスクごとのスキャン同時実行性を動的に調整できるようにします。

  • 有効な値: truefalse

  • デフォルト: false

構文:

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true;

スキャン同時実行クォータ

パラメーター 説明 デフォルト
MIN_RUNNING_SPLITS_LIMIT_PER_TASK タスクあたりの最小スキャン同時実行数。有効な範囲:[1、TARGET_RUNNING_SPLITS_LIMIT_PER_TASK]。 1
TARGET_RUNNING_SPLITS_LIMIT_PER_TASK タスクあたりの中間スキャン同時実行数。クォータはこの値を基準に増減します。有効な範囲:[MIN_RUNNING_SPLITS_LIMIT_PER_TASKMAX_RUNNING_SPLITS_LIMIT_PER_TASK]。 32
MAX_RUNNING_SPLITS_LIMIT_PER_TASK タスクあたりの最大スキャン同時実行数。TARGET_RUNNING_SPLITS_LIMIT_PER_TASK より大きい値である必要があります。 64
WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE ストレージノードのスキャン同時実行クォータです。デフォルト値は変更しないでください。値が不適切だとクラスターのパフォーマンスが低下します。 256
EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE コンピュートノードのスキャン同時実行クォータです。デフォルト値は変更しないでください。値が不適切だとクラスターのパフォーマンスが低下します。 256

構文:

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;
SET ADB_CONFIG TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32;
SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

論理ビュー

VIEW_OUTPUT_NAME_CASE_SENSITIVE

論理ビューにおける列名の照合時に、大文字と小文字を区別するかどうかを制御します。

  • 有効な値: true (大文字と小文字を区別)、false (大文字と小文字を区別しない)

  • デフォルト: false

構文:

SET ADB_CONFIG VIEW_OUTPUT_NAME_CASE_SENSITIVE=true;

関連情報: CREATE VIEW

複数ステートメント

ALLOW_MULTI_QUERIES

複数ステートメント機能を使用して、1 回のリクエストで複数の SQL ステートメントを実行可能にします。使用する前に手動で有効化する必要があります。

  • 有効な値: truefalse

  • デフォルト: false

構文:

SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;

関連情報: 複数ステートメント

バイナリロギング

BINLOG_ENABLE

クラスター レベルでバイナリロギングを有効化します。

  • クラスター バージョンが 3.2.0.0 より前の場合:個々のテーブルでバイナリロギングを有効にする前に、このパラメーターを手動で有効化してください。

  • クラスター バージョンが 3.2.0.0 以降の場合:バイナリロギングはデフォルトで有効です。このパラメーターは不要です。

構文:

SET ADB_CONFIG BINLOG_ENABLE=true;

関連情報: マテリアライズドビューを更新する

ページングキャッシュ

ページングキャッシュは、中間結果をキャッシュすることで、深いページングを伴うクエリのパフォーマンスを最適化します。

パラメーター 説明 デフォルト
PAGING_CACHE_SCHEMA 一時キャッシュテーブルを格納するデータベースです。設定しない場合、現在接続しているデータベースが使用されます。
PAGING_CACHE_MAX_TABLE_COUNT 一時キャッシュテーブルの最大数です。この上限に達すると、新しいキャッシュの作成に失敗します。正の整数である必要があります。 100
PAGING_CACHE_EXPIRATION_TIME キャッシュの TTL (Time-To-Live) を秒単位で指定します。システムは、この期間内にアクセスされなかったキャッシュをクリアします。正の整数である必要があります。 600
PAGING_CACHE_ENABLE ページングキャッシュ機能をグローバルに有効または無効にします。 true

構文:

SET ADB_CONFIG PAGING_CACHE_SCHEMA=paging_cache;
SET ADB_CONFIG PAGING_CACHE_MAX_TABLE_COUNT=100;
SET ADB_CONFIG PAGING_CACHE_EXPIRATION_TIME=600;
SET ADB_CONFIG PAGING_CACHE_ENABLE=false;

関連情報: ページングキャッシュ

テーブルエンジン

RC_DDL_ENGINE_REWRITE_XUANWUV2

クラスター レベルで、新規作成されるテーブルのデフォルトのテーブルエンジンを設定します。

動作
true (デフォルト) 新規テーブルは XUANWU_V2 を使用します。ENGINE=XUANWU を明示的に指定した場合は、自動的に XUANWU_V2 に書き換えられます。既存のテーブルには影響しません。
false 新規テーブルは XUANWU を使用します。既存のテーブルには影響しません。

構文:

SET ADB_CONFIG RC_DDL_ENGINE_REWRITE_XUANWUV2=true;

[関連情報:] テーブルエンジンを指定する

一般的なヒント

ヒントは、指定された SQL ステートメントにのみ適用され、グローバル設定には影響しません。ステートメントの直前に、/*+ KEY=VALUE*/ の構文を使用します。

クエリ制限

QUERY_TIMEOUT

単一クエリのクエリタイムアウトを設定します。正の整数である必要があります。単位はミリ秒 (ms) です。

構文:

/*+ QUERY_TIMEOUT=1000 */ SELECT COUNT(*) FROM t;

関連情報: 書き込みとクエリ

INSERT_SELECT_TIMEOUT

単一クエリにおける INSERTUPDATEDELETE ステートメントの最大実行時間を設定します (これには INSERT ... SELECT 形式が含まれます)。

  • デフォルト: 24 × 3600000 ms

  • 正の整数である必要があります。単位はミリ秒 (ms) です。

構文:

/*+ INSERT_SELECT_TIMEOUT=3600000 */ UPDATE customer SET customer_name='adb' WHERE customer_id='2369';

関連情報: 制限

MAX_SELECT_ITEMS_COUNT

SELECT 句で許可される列数の上限を設定します。

  • デフォルト: 1024

  • 正の整数である必要があります。

構文:

/*+ MAX_SELECT_ITEMS_COUNT=2048*/

MAX_IN_ITEMS_COUNT

単一クエリにおける IN 条件で許可される値の最大数を設定します。

  • デフォルト: 4000

  • 正の整数である必要があります。

構文:

/*+ MAX_IN_ITEMS_COUNT=1000*/

MAX_WHERE_ITEMS_COUNT

WHERE 句で許可される条件数の上限を設定します。

  • デフォルト: 256

  • 正の整数である必要があります。

構文:

/*+ MAX_WHERE_ITEMS_COUNT=512*/

QUERY_MAX_SHUFFLE_DATA_SIZE_MB

クエリのシャッフルデータ量の上限を設定します。クエリがこのしきい値を超えると、システムはクエリをエラーで終了させます。デフォルトでは、制限は適用されません。正の整数である必要があります。単位は MB です。

構文:

/*+ QUERY_MAX_SHUFFLE_DATA_SIZE_MB=1024*/

述語プッシュダウン

FILTER_NOT_PUSHDOWN_COLUMNS / NO_INDEX_COLUMNS

クエリレベルで、特定のカラムに対する述語プッシュダウンを無効化します。パラメーター名はクラスターバージョンによって異なります。

クラスターバージョン パラメーター
3.1.4 以降 FILTER_NOT_PUSHDOWN_COLUMNS
3.1.4 より前 NO_INDEX_COLUMNS

構文

-- クラスターバージョン 3.1.4 以降
/*+ FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.table1:colName1|colName2;Schema2.table2:colName1|colName2] */

-- 3.1.4 より前
/*+ NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1] */

関連項目: プッシュダウンされないフィルター条件

BUILD ジョブスケジューリング

BUILD_TASK_PRIORITY

単一のテーブルに対する BUILD タスクのスケジューリング優先度を設定します。値が大きいほど優先度が高くなります。

  • デフォルト: 0

  • 0 以上の整数である必要があります。

このヒントでは、一度に 1 つのテーブルの優先度のみ設定できます。複数のテーブルの優先度を設定するには、代わりにRC_BUILD_TASK_PRIORITY_LIST 設定パラメーターを使用してください。

構文:

/*+ BUILD_TASK_PRIORITY=2 */ BUILD TABLE db.table;

関連情報: BUILD スケジューリング優先度の設定

エラスティックインポート

ELASTIC_LOAD および ELASTIC_LOAD_CONFIGS

エラスティックインポートを有効化し、インポートタスクの実行に使用するジョブリソースグループを指定します。

構文:

/*+ ELASTIC_LOAD=true, ELASTIC_LOAD_CONFIGS=[adb.load.resource.group.name=resource_group]*/
SUBMIT JOB INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_external_db.person;

関連情報:

実行計画の調整

O_CBO_RULE_SWAP_OUTER_JOIN / LEFT_TO_RIGHT_ENABLED

右テーブルが大きい場合に、左結合を右結合に変換するようオプティマイザに指示することで、メモリ消費量を削減します。パラメーター名はクラスターバージョンによって異なります:

クラスターバージョン パラメーター
3.1.8 以降 O_CBO_RULE_SWAP_OUTER_JOIN
3.1.8 より前 LEFT_TO_RIGHT_ENABLED
  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ O_CBO_RULE_SWAP_OUTER_JOIN=true*/
/*+ LEFT_TO_RIGHT_ENABLED=true*/

関連情報: LEFT JOIN を RIGHT JOIN に変更する

REORDER_JOINS

結合順序の自動調整を制御します。無効にすると、クエリは SQL ステートメントに記述された結合順序で実行されます。

  • 有効な値: truefalse

  • デフォルト: true

構文:

/*+ REORDER_JOINS=false*/

関連情報: 結合順序を手動で調整する

AGGREGATION_PATH_TYPE

オプティマイザが部分集約をスキップして最終集約に直接移行するかどうかを制御します。 GROUP BY クエリのグループ数が多く、部分集約で過剰なリソースを消費する場合に有用です。

  • 有効な値: single_agg (部分集約をスキップ)、auto (オプティマイザが判断)

  • デフォルト: auto

構文:

/*+ AGGREGATION_PATH_TYPE=single_agg*/

関連情報: グループ化と集約クエリの最適化

ランタイムポリシー

HASH_PARTITION_COUNT

コンピューティングオペレーションの同時タスク数を設定します。正の整数である必要があります。

  • デフォルト: 32

構文:

/*+ HASH_PARTITION_COUNT=32*/

TASK_WRITER_COUNT

INSERT INTO SELECT インポートタスクの書き込みの同時実行数を設定します。ワーカーの負荷が高すぎる場合は、この値を減らしてください。正の整数である必要があります。

  • デフォルト: 16

構文:

/*+ TASK_WRITER_COUNT=8*/

CTE_EXECUTION_MODE

複数回参照される共通テーブル式 (CTE) のサブクエリを、1 回だけ実行する (共有モード) か、参照されるたびに実行する (インラインモード) かを制御します。

  • 有効な値: shared (1 回実行)、 inline (参照ごとに実行)

  • デフォルト: inline

構文:

/*+ CTE_EXECUTION_MODE=shared*/

関連項目: WITH

XIHE BSP ジョブ設定

QUERY_PRIORITY

クエリレベルで BSP ジョブのスケジューリング優先度を設定します。

  • 有効な値: HIGHNORMALLOWLOWEST

  • デフォルト: NORMAL

構文:

/*+ QUERY_PRIORITY=HIGH*/

参照: 設定項目一覧

ELASTIC_JOB_MAX_ACU

クエリレベルで単一の BSP ジョブが使用できる ACU の最大数を設定します。

  • デフォルト: 9

  • 最小値: 3

  • 有効な範囲: [3, ジョブタイプのリソースグループの最大 ACU]

構文:

/*+ ELASTIC_JOB_MAX_ACU=20*/

BATCH_QUERY_TIMEOUT

クエリレベルで BSP ジョブのタイムアウトを設定します。値は正の整数で、単位はミリ秒 (ms) です。

  • デフォルト: 7200000 ms

構文:

/*+ BATCH_QUERY_TIMEOUT=3600000*/

OSS 外部テーブル

OUTPUT_FILENAME

OSS 外部テーブルにデータをエクスポートする際のファイル名をカスタマイズします。エクスポート文の直前にこのヒントを追加します。

構文:

/*+ OUTPUT_FILENAME=output.csv*/

関連項目: OSS へのエクスポート

SQL_OUTPUT_OSS_FILE_HEAD_ENABLE

エクスポートした OSS ファイルに列名を含めるかどうかを設定します。デフォルトでは、エクスポートされたファイルにはデータのみが含まれます。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

実行計画の生成時に、Hive がスプリットタスクを非同期で送信するかどうかを設定します。

  • 有効な値: truefalse

  • デフォルト: false

クラスターバージョン 3.1.10.1 以降が必要です。

構文:

/*+ HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true*/

関連項目: 外部テーブルを使用して OSS データをインポートする

FAST_PARQUET_READER_ENABLE

高速な Parquet リーダーを有効にします。Parquet ファイルの統計情報が不正確な場合、ネイティブ Parquet リーダーにフォールバックします。

  • 有効な値: truefalse

  • デフォルト: true

構文:

/*+ FAST_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_ENABLE

NULL 値を含まないデータに対して、ベクトル化された Parquet 読み取りを有効にします。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ OSS_VECTORIZED_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE

NULL 値を含むデータに対して、ベクトル化された Parquet 読み取りを有効にします。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE=true*/

Hudi 外部テーブル

HUDI_METADATA_TABLE_ENABLED

Hudi テーブルのクエリ時に Hudi メタデータをロードするかどうかを設定します。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ HUDI_METADATA_TABLE_ENABLED=true*/

HUDI_QUERY_TYPE

Hudi テーブルのクエリメソッドを設定します。

説明
read_optimized (デフォルト) 最新のコンパクションまたはコミットからデータを返します。
snapshot 特定の時点までにコミットまたはコンパクションしたすべてのデータを返します。

構文:

/*+ HUDI_QUERY_TYPE=snapshot*/

HUDI_REALTIME_SKIP_MERGE

スナップショットクエリモードでは、ベースファイルとログファイルのレコードのマージをスキップするかどうかを設定します。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ HUDI_REALTIME_SKIP_MERGE=true*/

Hudi スプリットとパフォーマンス設定

パラメーター 説明 デフォルト
HUDI_MAX_SPLIT_SIZE 最大スプリットサイズです。単位は MB です。 128
HUDI_SPLIT_PARALLEL_GENERATION_ENABLED スプリットを並列で生成するかどうかを指定します。 true
HUDI_DATA_SKIPPING_ENABLED Hudi MetaTable の統計情報を使用して、読み取り中に不要なシャードをスキップし、クエリパフォーマンスを向上させます。 false
HUDI_SPLIT_ASYNC_GENERATION_ENABLED 実行計画の生成中に Hudi スプリットを非同期で生成するかどうかを指定します。 true

構文:

/*+ HUDI_MAX_SPLIT_SIZE=128*/
/*+ HUDI_SPLIT_PARALLEL_GENERATION_ENABLED=true*/
/*+ HUDI_DATA_SKIPPING_ENABLED=true*/
/*+ HUDI_SPLIT_ASYNC_GENERATION_ENABLED=true*/

ApsaraDB RDS for MySQL 外部テーブル

JDBC_SCAN_SPLITS

Java Database Connectivity (JDBC) ベースのテーブルスキャンにおけるスプリット数を設定します。

  • デフォルト: 1

  • 有効範囲: 1–100

構文:

/*+ JDBC_SCAN_SPLITS=1*/

参照: 外部テーブルを使用した RDS for MySQL からのデータインポート

JDBC_SPLIT_COLUMN

ApsaraDB RDS for MySQL 外部テーブルを読み取る際に、データのスプリットに使用する列を指定します。

構文:

/*+ JDBC_SPLIT_COLUMN=column1*/

JDBC_INSERT_DIRECTLY

データを最初に一時テーブルにステージングするのではなく、ターゲットテーブルに直接書き込みます。直接書き込みは高速ですが、エラーが発生した場合にターゲットテーブルにダーティデータを残す可能性があります。

  • 有効値: truefalse

  • デフォルト: false

構文:

/*+ JDBC_INSERT_DIRECTLY=true*/

Tablestore 外部テーブル

OTS-INSERT-AS-UPDATE

Tablestore 外部テーブルに書き込む際に、UPDATE ステートメントの代わりに INSERT ステートメントを使用します。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ OTS-INSERT-AS-UPDATE=true*/

関連情報: Tablestore データのクエリとインポート

MaxCompute 外部テーブル

ODPS_SPLIT_LIMIT

Tunnel 経由で MaxCompute データを読み取る際のスプリット数の上限を設定します。

  • デフォルト: 1000

  • 有効範囲: 1~1000

構文:

/*+ ODPS_SPLIT_LIMIT=1000*/

関連情報: 外部テーブルを使用して MaxCompute データをインポートする

IGNORE_PARTITION_CACHE

キャッシュされたメタデータを使用せずに、MaxCompute テーブルからパーティションのメタデータを直接クエリします。キャッシュが作成された後にパーティションデータが変更された場合に有用です。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ IGNORE_PARTITION_CACHE=true*/

ROWS_PER_SPLIT

Tunnel 経由で単一のスプリットが読み取れる行数の上限を設定します。

  • デフォルト: 500000

  • 有効範囲: 10000~500000

構文:

/*+ ROWS_PER_SPLIT=500000*/

STORAGE_API_ENABLED

Tunnel の代わりに MaxCompute ストレージ API を使用して MaxCompute データを読み取ります。ストレージ API は読み取りパフォーマンスを大幅に向上させます。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*+ STORAGE_API_ENABLED=true*/

MaxCompute ストレージ API のスプリット設定

以下のパラメーターはすべて、MaxCompute ストレージ API 経由でデータを読み取る場合に適用されます。

パラメーター 説明 デフォルト
SPLIT_BYTE_SIZE 単一スプリットの最大サイズ。単位:MB。 256
MAX_BATCH_ROW_COUNT 単一スプリットに含まれる行数の上限。 1024
PAGE_BATCH_SIZE ページあたりの行数の上限。 1024
MAX_ALLOCATION_PER_SPLIT スプリットレベルで割り当てるピークメモリの上限。単位:MB。 300
ASYNC_GET_SPLIT スプリットロードタスクを非同期で送信するかどうかを指定します。クラスターバージョン 3.1.10.1 以降が必要です。 false

構文:

/*+ SPLIT_BYTE_SIZE=256*/
/*+ MAX_BATCH_ROW_COUNT=1024*/
/*+ PAGE_BATCH_SIZE=1024*/
/*+ MAX_ALLOCATION_PER_SPLIT=300*/
/*+ ASYNC_GET_SPLIT=true*/

スキャンの同時実行制御

SPLIT_FLOW_CONTROL_ENABLED

クエリレベルでスキャンの同時実行制御を有効または無効にします。

  • 有効な値: true (有効)、false (無効)

  • デフォルト: true

構文:

/*+ SPLIT_FLOW_CONTROL_ENABLED=true*/ SELECT * FROM table;

参照: スキャンの同時実行制御

スキャン同時実行数クォータ (クエリレベル)

パラメーター 説明 デフォルト
MIN_RUNNING_SPLITS_LIMIT_PER_TASK タスクごとの最小同時実行スプリット数。有効範囲: [1, TARGET_RUNNING_SPLITS_LIMIT_PER_TASK]。 1 /*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/ SELECT * FROM orders;
TARGET_RUNNING_SPLITS_LIMIT_PER_TASK タスクごとの目標同時実行スプリット数。有効範囲: [MIN_RUNNING_SPLITS_LIMIT_PER_TASK, MAX_RUNNING_SPLITS_LIMIT_PER_TASK]。 32 /*+ TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32*/ SELECT * FROM adb_test;
MAX_RUNNING_SPLITS_LIMIT_PER_TASK タスクごとの最大同時実行スプリット数。TARGET_RUNNING_SPLITS_LIMIT_PER_TASK 以上である必要があります。 64 /*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/ SELECT * FROM adb_test;

ページングキャッシュ

PAGING_ID

ページングキャッシュを有効にし、手動で paging_id を指定して、関連するページングされたクエリ (LIMITOFFSET の値のみが異なる同じパターンのクエリ) をグループ化します。

構文:

/*PAGING_ID=paging123*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

ご参照: ページングキャッシュ

PAGING_CACHE_ENABLED

ページングキャッシュを有効にし、SQL パターンに基づいて paging_id を自動的に生成します。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*PAGING_CACHE_ENABLED=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

PAGING_CACHE_VALIDITY_INTERVAL

キャッシュ有効期間を秒単位で設定します。この期間が過ぎると、キャッシュは期限切れになります。期限切れから 1 時間以内にキャッシュにアクセスがない場合、システムは対応する一時テーブルを削除します。値は正の整数である必要があります。PAGING_CACHE_ENABLED と一緒に使用します。

構文:

/*PAGING_CACHE_ENABLED=true, PAGING_CACHE_VALIDITY_INTERVAL=300*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

INVALIDATE_PAGING_CACHE

指定されたクエリパターンのページングキャッシュを無効化します。PAGING_ID または PAGING_CACHE_ENABLED と一緒に使用します。

  • 有効な値: truefalse

  • デフォルト: false

構文:

/*PAGING_CACHE_ENABLED=true, INVALIDATE_PAGING_CACHE=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

テーブルエンジン

RC_DDL_ENGINE_REWRITE_XUANWUV2

現在の SQL ステートメントで作成するテーブルのテーブルエンジンを指定します。

動作
true (デフォルト) 新しいテーブルは XUANWU_V2 を使用します。 ENGINE=XUANWU を明示的に指定した場合は、自動的に XUANWU_V2 に書き換えられます。既存のテーブルには影響しません。
false 新しいテーブルは XUANWU を使用します。既存のテーブルには影響しません。

構文:

/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=true */

関連情報: テーブルエンジンの指定

その他のヒント

RESOURCE_GROUP

クエリのリソースグループを指定します。設定されていない場合、データベースアカウントにバインドされているリソースグループが使用されます。アカウントにバインドされているリソースグループがない場合は、デフォルトのリソースグループが使用されます。

構文:

/*+ RESOURCE_GROUP=my_group_name*/

DML_EXCEPTION_TO_NULL_ENABLED

INSERT SELECT ステートメント内の無効な値の処理方法を制御します。

  • 有効な値: true (エラーをスローする代わりに NULL を書き込む)、false (エラーをスローする)

  • デフォルト: false

構文:

/*+ DML_EXCEPTION_TO_NULL_ENABLED=true*/

DISPLAY_HINT

クエリに識別用のラベルを付けます。たとえば、異なる業務チームからのクエリを識別するために使用できます。

構文:

/*+ DISPLAY_HINT=from_user_123*/

よくある質問

設定パラメーターをデフォルト値にリセットする方法

SET ADB_CONFIG REMOVE <key> を実行して設定を削除し、デフォルト値に戻します。

SET ADB_CONFIG REMOVE QUERY_TIMEOUT; -- クエリタイムアウトをデフォルト値に戻します。

パラメーターがリセットされたことを確認するには、次のコマンドを実行します。

SHOW ADB_CONFIG KEY=<key>;