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

AnalyticDB:構成パラメーターとヒント構成パラメーター

最終更新日:Jun 25, 2025

AnalyticDB for MySQL では、SET ADB_CONFIG KEY=VALUE 文を実行するか、/*+ KEY=VALUE*/ ヒントを指定することで、パラメーターを構成できます。SET ADB_CONFIG 文は AnalyticDB for MySQL クラスタ全体に適用され、グローバル構成を行うために使用できます。ヒントは特定の SQL 文にのみ適用され、グローバル構成には影響しません。SET ADB_CONFIG 文とヒントの両方を使用して特定の構成項目を構成する場合、ヒントが優先されます。このトピックでは、AnalyticDB for MySQL の一般的な構成パラメーターとヒント構成パラメーターについて説明します。

一般的な構成パラメーター

構成項目

パラメーター

説明

参照

スイッチオーバーウィンドウ

REPLICATION_SWITCH_TIME_RANGE

既存のクラスタが新しいクラスタに切り替えられる期間。新しいクラスタへの切り替え中、既存のクラスタは 5 ~ 10 分間読み取り専用になります。既存のクラスタに接続した後、REPLICATION_SWITCH_TIME_RANGE パラメーターを使用してスイッチオーバーウィンドウを指定できます。

説明

スイッチオーバーウィンドウを指定しない場合、既存のクラスタの増分データが新しいクラスタにリアルタイムで同期された後、既存のクラスタは新しいクラスタに切り替えられます。

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

Data Warehouse Edition クラスタのスケーリング

IN 条件の最大数

MAX_IN_ITEMS_COUNT

IN 条件の最大数。値は 0 より大きい整数である必要があります。

  • V3.1.8 以前の AnalyticDB for MySQL クラスタのデフォルト値:2000。

  • V3.1.9.x ~ V3.1.10.x の AnalyticDB for MySQL クラスタのデフォルト値:4000。

  • V3.2.1 以降の AnalyticDB for MySQL クラスタのデフォルト値:20000。

SET ADB_CONFIG MAX_IN_ITEMS_COUNT=4000;

書き込みとクエリ

クエリタイムアウト期間

QUERY_TIMEOUT

クラスタ内のすべてのクエリのタイムアウト期間。値は 0 より大きい整数である必要があります。単位:ミリ秒。

SET ADB_CONFIG QUERY_TIMEOUT=1000;

INSERT、UPDATE、および DELETE 文のタイムアウト期間

INSERT_SELECT_TIMEOUT

クラスタ内の INSERT、UPDATE、および DELETE 文の最大実行時間。デフォルト値:24 × 3600000。値は 0 より大きい整数である必要があります。単位:ミリ秒。

SET ADB_CONFIG INSERT_SELECT_TIMEOUT=3600000;

制限

プッシュダウンなしのフィルタ条件

  • V3.1.4 以降:FILTER_NOT_PUSHDOWN_COLUMNS

  • V3.1.4 より前のバージョン:NO_INDEX_COLUMNS

クラスタ内の特定の列に対してフィルタ条件のプッシュダウンを無効にします。

  • V3.1.4 以降:SET ADB_CONFIG FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.tableName1:colName1|colName2;Schema2.tableName2:colName1|colName2]

  • V3.1.4 より前のバージョン:SET ADB_CONFIG NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1]

プッシュダウンなしのフィルタ条件

クエリ実行モード

QUERY_TYPE

クラスタのクエリ実行モード。有効な値:

  • interactive

  • batch

説明

予約モードの AnalyticDB for MySQL Data Warehouse Edition クラスタ、または AnalyticDB for MySQL Enterprise Edition、Basic Edition、および Data Lakehouse Edition クラスタのクエリ実行モードを変更することはできません。

SET ADB_CONFIG QUERY_TYPE=interactive;

クエリ実行モード

クエリキュー

XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE

単一のフロントエンドノードで LOWEST キューに対して実行できるクエリの最大数。デフォルト値:20。

SET ADB_CONFIG XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE=20;

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

XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE

単一のフロントエンドノードで LOWEST キューにキューイングできるクエリの最大数。デフォルト値:200。

SET ADB_CONFIG XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE

単一のフロントエンドノードで LOW キューに対して実行できるクエリの最大数。デフォルト値:20。

SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE=20;

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE

単一のフロントエンドノードで LOW キューにキューイングできるクエリの最大数。デフォルト値:200。

SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE

単一のフロントエンドノードで NORMAL キューに対して実行できるクエリの最大数。デフォルト値:20。

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE=20;

XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE

単一のフロントエンドノードで NORMAL キューにキューイングできるクエリの最大数。デフォルト値:200。

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE

単一のフロントエンドノードで HIGH キューに対して実行できるクエリの最大数。デフォルト値:40。

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE=40;

XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE

単一のフロントエンドノードで HIGH キューにキューイングできるクエリの最大数。デフォルト値:400。

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE=400;

XIHE BSP ジョブの優先順位

QUERY_PRIORITY

XIHE BSP ジョブの優先順位。有効な値:

  • HIGH

  • NORMAL (デフォルト)

  • LOW

  • LOWEST

SET ADB_CONFIG QUERY_PRIORITY=HIGH;

構成パラメーター

XIHE BSP ジョブが使用する AnalyticDB Compute Unit (ACU) の最大数

ELASTIC_JOB_MAX_ACU

XIHE BSP ジョブが使用できる ACU の最大数。デフォルト値:9。最小値:3。有効な値:3 ~ ジョブリソースグループの ACU の最大数。

SET ADB_CONFIG ELASTIC_JOB_MAX_ACU=20;

XIHE BSP ジョブのタイムアウト期間

BATCH_QUERY_TIMEOUT

XIHE BSP ジョブのタイムアウト期間。デフォルト値:7200000。値は 0 より大きい整数である必要があります。単位:ミリ秒。

SET ADB_CONFIG BATCH_QUERY_TIMEOUT=3600000 ;

Object Storage Service (OSS) 外部テーブルを使用したデータインポート

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Hive が実行プランを生成するときに、スプリットを実行するタスクをキューに非同期的に送信して実行するかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

説明

このパラメーターは、V3.1.10.1 以降の AnalyticDB for MySQL クラスタでのみサポートされています。

SET ADB_CONFIG HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true;

なし

MaxCompute 外部テーブルを使用したデータインポート

SQL_OUTPUT_BATCH_SIZE

一度にインポートできるエントリの最大数。値は 0 より大きい整数である必要があります。

SET ADB_CONFIG SQL_OUTPUT_BATCH_SIZE = 6000;

インポートとエクスポート

ENABLE_ODPS_MULTI_PARTITION_PART_MATCH

各 MaxCompute パーティションのエントリ数を事前に取得するかどうかを指定します。

SET ADB_CONFIG ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

ASYNC_GET_SPLIT

MaxCompute が実行プランを生成するときに、スプリットのロードパフォーマンスを最適化することで、タスクをキューに非同期的に送信して実行するかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

説明

このパラメーターは、V3.1.10.1 以降の AnalyticDB for MySQL クラスタでのみサポートされています。

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 ジョブの自動スケジューリングの構成

BUILD ジョブのスケジューリング優先順位

ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST

1 つ以上のテーブルの BUILD ジョブのスケジューリング優先順位。構成された優先順位は、テーブルの BUILD ジョブの新しいスケジューリング優先順位を構成するまで有効です。

task_priority パラメーターは、BUILD ジョブのスケジューリング優先順位を指定します。値は整数である必要があります。デフォルト値:0。

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

BUILD

Elastic Import

RC_ELASTIC_JOB_SCHEDULER_ENABLE

Elastic Import 機能を有効にします。

SET ADB_CONFIG RC_ELASTIC_JOB_SCHEDULER_ENABLE=true;

REMOTE_CALL 関数

XIHE_REMOTE_CALL_SERVER_ENDPOINT

ユーザー定義関数 (UDF) に対して REMOTE_CALL 関数を呼び出すときに使用される Function Compute の内部エンドポイント。詳細については、「エンドポイント」をご参照ください。

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_ENDPOINT="1234567890000****.cn-zhangjiakou-internal.fc.aliyuncs.com"

UDF

XIHE_REMOTE_CALL_SERVER_AK

UDF に対して REMOTE_CALL 関数を呼び出すときに使用される、Function Compute サービスが属する Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey ID。

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_AK=************;

XIHE_REMOTE_CALL_SERVER_SK

UDF に対して REMOTE_CALL 関数を呼び出すときに使用される、Function Compute サービスが属する Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey シークレット。

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=************;

XIHE_REMOTE_CALL_COMPRESS_ENABLED

UDF に対して REMOTE_CALL 関数を呼び出すときに、Function Compute にデータを送信する前に、データを GZIP 形式に圧縮するかどうかを指定します。

SET ADB_CONFIG REMOTE_CALL_COMPRESS_ENABLED=true;

XIHE_REMOTE_CALL_MAX_BATCH_SIZE

UDF に対して REMOTE_CALL 関数を呼び出すときに、一度に Function Compute に送信できるデータ行の最大数。

SET ADB_CONFIG XIHE_REMOTE_CALL_MAX_BATCH_SIZE=500000;

スプリットフロー制御

ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED

スプリットフロー制御機能を有効にするかどうかを指定します。AnalyticDB for MySQL では、ノードでの同時スプリットスキャンのクォータを構成して、過剰な同時スプリットスキャンとリソース使用率によって発生するノードの不安定性を防ぐことができます。有効な値:

  • true (デフォルト)

  • false

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true;

スプリットフロー制御

ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED

タスクでの同時スプリットスキャンのクォータを動的に調整できる機能を有効にするかどうかを指定します。AnalyticDB for MySQL では、タスクが実行されるノードの同時スプリットスキャンの全体的なクォータに基づいて、タスクでの同時スプリットスキャンのクォータを動的に調整できます。有効な値:

  • true

  • false (デフォルト)

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true;

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

タスクでの同時スプリットスキャンの最小クォータ。デフォルト値:1。有効な値の範囲は、1 から TARGET_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値までです。

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

タスクでの同時スプリットスキャンの中間クォータ。実際のクォータは、このパラメーターの値に基づいて動的に調整されます。デフォルト値:32。有効な値の範囲は、MIN_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値から MAX_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値までです。

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

タスクでの同時スプリットスキャンの最大クォータ。デフォルト値:64。このパラメーターの値は、TARGET_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値より大きくなければなりません。

SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

デフォルトでは、ストレージノードでの同時スプリットスキャンのクォータは 256 です。クォータが大きすぎたり小さすぎたりするとクラスタのパフォーマンスに影響を与える可能性があるため、デフォルト値を変更しないことをお勧めします。

SET ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

デフォルトでは、コンピュートノードでの同時スプリットスキャンのクォータは 256 です。クォータが大きすぎたり小さすぎたりするとクラスタのパフォーマンスに影響を与える可能性があるため、デフォルト値を変更しないことをお勧めします。

SET ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

論理ビュー名の大文字と小文字の区別

VIEW_OUTPUT_NAME_CASE_SENSITIVE

論理ビューの名前を大文字と小文字を区別するように設定するかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

SET ADB_CONFIG VIEW_OUTPUT_NAME_CASE_SENSITIVE=true;

CREATE VIEW

複数の SQL 文の連続実行

ALLOW_MULTI_QUERIES

複数の SQL 文の連続実行のために複数文機能を有効にするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;

複数文

バイナリロギング

BINLOG_ENABLE

  • V3.2.0.0 より前の AnalyticDB for MySQL クラスタでは、バイナリロギング機能を手動で有効にする必要があります。その後、テーブルに対してこの機能を有効にできます。

  • デフォルトでは、V3.2.0.0 以降の AnalyticDB for MySQL クラスタでは、バイナリロギング機能が有効になっています。このパラメーターを指定する必要はありません。

SET ADB_CONFIG BINLOG_ENABLE=true;

準備

ページングキャッシュ (深いページクエリのパフォーマンス最適化)

PAGING_CACHE_SCHEMA

ページクエリの一時キャッシュテーブルを格納するために使用されるデータベース。このパラメーターを指定しない場合、接続されている内部データベースが使用されます。

SET ADB_CONFIG PAGING_CACHE_SCHEMA=paging_cache;

ページングキャッシュ (深いページクエリのパフォーマンス最適化)

PAGING_CACHE_MAX_TABLE_COUNT

一時キャッシュテーブルの最大数。一時キャッシュテーブルの数がこのパラメーターの値を超えると、それ以上キャッシュテーブルを作成できません。デフォルト値:100。値は 0 より大きい整数である必要があります。

SET ADB_CONFIG PAGING_CACHE_MAX_TABLE_COUNT=100;

PAGING_CACHE_EXPIRATION_TIME

キャッシュの有効期限。指定された時間範囲内にアクセスされなかったページクエリのキャッシュデータは自動的にクリアされます。デフォルト値:600。値は 0 より大きい整数である必要があります。単位:秒。

SET ADB_CONFIG PAGING_CACHE_EXPIRATION_TIME=600;

PAGING_CACHE_ENABLE

クラスタレベルでページングキャッシュ機能を有効にするかどうかを指定します。有効な値:

  • true (デフォルト)

  • false

SET ADB_CONFIG PAGING_CACHE_ENABLE=false;

テーブルエンジンの指定

RC_DDL_ENGINE_REWRITE_XUANWUV2

クラスタレベルでテーブルエンジンを XUANWU_V2 に設定するかどうかを指定します。有効な値:

  • true (デフォルト):新しいテーブルのテーブルエンジンを XUANWU_V2 に設定しますが、既存のテーブルのテーブルエンジンは変更しません。テーブルを作成するときに ENGINE=XUANWU を指定した場合でも、テーブルのテーブルエンジンは自動的に XUANWU_V2 に変更されます。

  • false:新しいテーブルのテーブルエンジンを XUANWU に設定しますが、既存のテーブルのテーブルエンジンは変更しません。

SET ADB_CONFIG RC_DDL_ENGINE_REWRITE_XUANWUV2=true;

テーブルエンジンの指定

一般的なヒントパラメーター

構成項目

パラメーター

説明

参照

クエリタイムアウト期間

QUERY_TIMEOUT

単一クエリのタイムアウト期間。値は 0 より大きい整数である必要があります。単位:ミリ秒。

/*+ QUERY_TIMEOUT=1000 */select count(*) from t;

書き込みとクエリ

INSERT、UPDATE、および DELETE 文のタイムアウト期間

INSERT_SELECT_TIMEOUT

クエリ内の INSERT、UPDATE、および DELETE 文の最大実行時間。デフォルト値:24 × 3600000。値は 0 より大きい整数である必要があります。単位:ミリ秒。

/*+ INSERT_SELECT_TIMEOUT=3600000 */update customer set customer_name ='adb' where customer_id ='2369';

制限

プッシュダウンなしのフィルタ条件

  • V3.1.4 以降:FILTER_NOT_PUSHDOWN_COLUMNS

  • V3.1.4 より前のバージョン:NO_INDEX_COLUMNS

クエリ内の特定の列に対してフィルタ条件のプッシュダウンを無効にします。

  • V3.1.4 以降:/*+ FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.table1:colName1|colName2;Schema2.table2:colName1|colName2] */

  • V3.1.4 より前のバージョン:/*+ NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1] */

プッシュダウンなしのフィルタ条件

BUILD ジョブのスケジューリング優先順位

BUILD_TASK_PRIORITY

BUILD ジョブのスケジューリング優先順位。ヒントを使用して、一度に 1 つのテーブルの BUILD ジョブのスケジューリング優先順位のみを構成できます。デフォルト値:0。値は 0 以上の整数である必要があります。値が大きいほど、スケジューリング優先順位が高くなります。

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

BUILD ジョブのスケジューリング優先順位の構成

Elastic Import

  • ELASTIC_LOAD

  • ELASTIC_LOAD_CONFIGS

Elastic Import を選択し、インポートジョブのリソースグループを構成します。

/*+ 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;

実行計画

  • V3.1.8 以降:O_CBO_RULE_SWAP_OUTER_JOIN

  • V3.1.8 より前のバージョン:LEFT_TO_RIGHT_ENABLED

ハッシュ結合アルゴリズムは右側のテーブルを使用してハッシュテーブルを作成し、LEFT JOIN は左右のテーブルを並べ替えません。その結果、右側のテーブルに大量のデータがあると、実行速度の低下やメモリ消費量の過剰などの問題が発生する可能性があります。SQL 文の前にヒントを追加して、リソース消費量に基づいて LEFT JOIN を RIGHT JOIN に変更するようにオプティマイザを構成できます。有効な値:

  • true

  • false (デフォルト)

  • /*+ O_CBO_RULE_SWAP_OUTER_JOIN=true*/

  • /*+ LEFT_TO_RIGHT_ENABLED=true*/

LEFT JOIN を RIGHT JOIN に変更する

REORDER_JOINS

自動結合順序調整機能を有効にするかどうかを指定します。デフォルトでは、AnalyticDB for MySQL の自動結合順序調整機能は有効になっています。この機能を無効にすると、クエリのデータ特性に基づいて結合順序を手動で調整できます。これにより、記述された SQL 文の結合順序に基づいてクエリを実行できます。有効な値:

  • true (デフォルト)

  • false

/*+ REORDER_JOINS=false*/

結合順序を手動で調整する

AGGREGATION_PATH_TYPE

クエリの部分集計を強制的にスキップするかどうかを指定します。多数のグループを含むグループ化および集計シナリオでは、2 段階集計は大量の計算リソースを消費します。このヒントパラメーターの値を single_agg に設定して、部分集計をスキップし、クエリの最終集計を直接実行できます。有効な値:

  • single_agg:部分集計を強制的にスキップします。

  • auto (デフォルト):オプティマイザが部分集計をスキップするかどうかを自動的に決定できるようにします。

/*+ AGGREGATION_PATH_TYPE=single_agg*/

グループ化と集計クエリの最適化

ランタイムポリシー

HASH_PARTITION_COUNT

各計算ジョブを分割できる同時タスクの数。タスク分割は、計算リソースを最大限に活用するのに役立ちます。このヒントパラメーターを使用して、タスクの同時実行性を指定できます。デフォルト値:32。値は 0 より大きい整数である必要があります。

/*+ HASH_PARTITION_COUNT=32*/

なし

TASK_WRITER_COUNT

INSERT INTO SELECT 文を使用して実行される同時インポートジョブの数。ストレージノードが過負荷になっている場合は、このヒントパラメーターを使用して同時インポートジョブの数を減らすことができます。デフォルト値:16。値は 0 より大きい整数である必要があります。

/*+ TASK_WRITER_COUNT=8*/

CTE_EXECUTION_MODE

共通テーブル式 (CTE) 実行最適化機能を有効にするかどうかを指定します。CTE 実行最適化機能が有効になった後、CTE サブクエリが繰り返し参照される場合、サブクエリは 1 回だけ実行して、特定のクエリのパフォーマンスを向上させることができます。有効な値:

  • shared:CTE 実行最適化機能を有効にします。

  • inline (デフォルト):CTE 実行最適化機能を無効にします。

/*+ CTE_EXECUTION_MODE=shared*/

WITH

クエリ条件の制限

QUERY_MAX_SHUFFLE_DATA_SIZE_MB

クエリでシャッフルされるデータの最大量。デフォルトでは、クエリされるデータ量に関係なく、エラーは返されません。このパラメーターを指定し、クエリでクエリされるデータ量が指定された値を超えると、システムはクエリを終了し、エラーを返します。値は 0 より大きい整数である必要があります。単位:MB。

/*+ QUERY_MAX_SHUFFLE_DATA_SIZE_MB=1024*/

なし

MAX_SELECT_ITEMS_COUNT

SELECT 条件の最大数。デフォルト値:1024。値は 0 より大きい整数である必要があります。

/*+ MAX_SELECT_ITEMS_COUNT=2048*/

MAX_IN_ITEMS_COUNT

IN 条件の最大数。デフォルト値:4000。値は 0 より大きい整数である必要があります。

/*+ MAX_IN_ITEMS_COUNT=1000*/

MAX_WHERE_ITEMS_COUNT

WHERE 条件の最大数。デフォルト値:256。値は 0 より大きい整数である必要があります。

/*+ MAX_WHERE_ITEMS_COUNT=512*/

XIHE BSP ジョブの優先順位

QUERY_PRIORITY

XIHE BSP ジョブの優先順位。有効な値:

  • HIGH

  • NORMAL (デフォルト)

  • LOW

  • LOWEST

/*+ QUERY_PRIORITY=HIGH*/

構成パラメーター

XIHE BSP ジョブが使用する ACU の最大数

ELASTIC_JOB_MAX_ACU

XIHE BSP ジョブが使用できる ACU の最大数。デフォルト値:9。最小値:3。有効な値:3 ~ ジョブリソースグループの ACU の最大数。

/*+ ELASTIC_JOB_MAX_ACU=20*/

XIHE BSP ジョブのタイムアウト期間

BATCH_QUERY_TIMEOUT

XIHE BSP ジョブのタイムアウト期間。デフォルト値:7200000。値は 0 より大きい整数である必要があります。単位:ミリ秒。

/*+ BATCH_QUERY_TIMEOUT=3600000*/

OSS 外部テーブル

OUTPUT_FILENAME

データをエクスポートする OSS オブジェクトの名前。OSS 外部テーブルを使用してデータをエクスポートする場合、データエクスポート文の前にこのヒントを追加して、OSS オブジェクトの名前を指定できます。

/*+ OUTPUT_FILENAME=output.csv*/

OSS にデータをエクスポートする

SQL_OUTPUT_OSS_FILE_HEAD_ENABLE

OSS にエクスポートされたデータに列名を含めるかどうかを指定します。デフォルトでは、OSS 外部テーブルを使用して OSS にエクスポートされたデータには、列名は含まれていません。データに列名を含める場合は、データインポート文の前に /*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/ ヒントを追加します。有効な値:

  • true

  • false (デフォルト)

/*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Hive が実行プランを生成するときに、スプリットを実行するタスクをキューに非同期的に送信して実行するかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

説明

このパラメーターは、V3.1.10.1 以降の AnalyticDB for MySQL クラスタでのみサポートされています。

/*+ HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true*/

外部テーブルを使用して Data Lakehouse Edition にデータをインポートする

FAST_PARQUET_READER_ENABLE

ネイティブの Parquet リーダーへのロールバックを行うかどうかを指定します。

Parquet ファイルの統計情報が正しくない場合に、ネイティブの Parquet リーダーにロールバックするかどうかを指定します。有効な値:

  • true (デフォルト)

  • false

/*+ FAST_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_ENABLE

データに NULL 値が含まれていない場合に、Parquet ファイルのベクトル化読み取りを有効にするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

/*+ OSS_VECTORIZED_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE

データに NULL 値が含まれている場合に、Parquet ファイルのベクトル化読み取りを有効にするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

/*+ OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE=true*/

HUDI_METADATA_TABLE_ENABLED

Hudi メタデータをロードするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

/*+ HUDI_METADATA_TABLE_ENABLED=true*/

HUDI_QUERY_TYPE

Hudi テーブルをクエリするモード。有効な値:

  • snapshot:特定の時点に送信または圧縮されたすべてのデータをクエリします。

  • read_optimized (デフォルト):最新の送信または圧縮後のデータをクエリします。

/*+ HUDI_QUERY_TYPE=snapshot*/

HUDI_REALTIME_SKIP_MERGE

スナップショットモードで Hudi テーブルがクエリされるときに、ベースファイルとログファイルのマージをスキップするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

/*+ HUDI_REALTIME_SKIP_MERGE=true*/

HUDI_MAX_SPLIT_SIZE=

スプリットの最大サイズ。デフォルト値:128。単位:MB。

/*+ HUDI_MAX_SPLIT_SIZE=128*/

HUDI_SPLIT_PARALLEL_GENERATION_ENABLED

スプリットを並列で生成するかどうかを指定します。有効な値:

  • true (デフォルト)

  • false

/*+ HUDI_SPLIT_PARALLEL_GENERATION_ENABLED=true*/

HUDI_DATA_SKIPPING_ENABLED

Hudi MetaTable の統計情報を使用して、読み取る必要のないスプリットをスキップしてクエリのパフォーマンスを向上させるかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

/*+ HUDI_DATA_SKIPPING_ENABLED=true*/

HUDI_SPLIT_ASYNC_GENERATION_ENABLED

実行プランの生成中に Hudi スプリットを非同期に生成するかどうかを指定します。有効な値:

  • true (デフォルト)

  • false

/*+ HUDI_SPLIT_ASYNC_GENERATION_ENABLED=true*/

ApsaraDB RDS for MySQL 外部テーブル

JDBC_SCAN_SPLITS

Java Database Connectivity (JDBC) ベースの TableScan 操作に関係するスプリットの数。有効な値:1 ~ 100。デフォルト値:1。

/*+ JDBC_SCAN_SPLITS=1*/

外部テーブルを使用して Data Lakehouse Edition にデータをインポートする

JDBC_SPLIT_COLUMN

ApsaraDB RDS for MySQL 外部テーブルを読み取るときにスプリットを分割するために使用される列の名前。

/*+ JDBC_SPLIT_COLUMN=column1*/

JDBC_INSERT_DIRECTLY

データを宛先テーブルに直接書き込むかどうかを指定します。デフォルトでは、ApsaraDB RDS for MySQL 外部テーブルを使用してデータを書き込む場合、データは最初に一時テーブルに書き込まれ、次に宛先テーブルに書き込まれます。/*+ JDBC_INSERT_DIRECTLY=true*/ ヒントを使用して、データを宛先テーブルに直接書き込むように構成できます。ただし、書き込みプロセス中にエラーが発生した場合、宛先テーブルにはダーティデータが含まれます。有効な値:

  • true

  • false (デフォルト)

/*+ JDBC_INSERT_DIRECTLY=true*/

Tablestore 外部テーブル

OTS-INSERT-AS-UPDATE

UPDATE 文を INSERT 文で置き換えるかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

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

Tablestore データをクエリおよびインポートする

MaxCompute 外部テーブル

ODPS_SPLIT_LIMIT

Tunnel を使用してデータを読み取るときに許可されるスプリットの最大数。有効な値:1 ~ 1000。デフォルト値:1000。

/*+ ODPS_SPLIT_LIMIT=1000*/

外部テーブルを使用して Data Lakehouse Edition にデータをインポートする

IGNORE_PARTITION_CACHE

パーティション条件に基づいてクエリが実行される場合、キャッシュされたパーティションメタデータを使用する代わりに、MaxCompute テーブルからパーティションメタデータを直接クエリするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

/*+ IGNORE_PARTITION_CACHE=true*/

ROWS_PER_SPLIT

Tunnel を使用してデータを読み取るときに、単一のスプリットに含めることができる行の最大数。有効な値:10000 ~ 500000。デフォルト値:500000。

/*+ ROWS_PER_SPLIT=500000*/

STORAGE_API_ENABLED

MaxCompute ストレージ API 操作を使用して MaxCompute データを読み取るかどうかを指定します。従来の Tunnel サービスと比較して、MaxCompute Storage API は読み取りパフォーマンスを大幅に向上させます。

有効な値:

  • true

  • false (デフォルト)

/*+ STORAGE_API_ENABLED=true*/

APLIT_BYTE_SIZE

MaxCompute Storage API を使用してデータを読み取るときの、単一のスプリットの最大サイズ。デフォルト値:256。単位:MB。

/*+ APLIT_BYTE_SIZE=256*/

MAX_BATCH_ROW_COUNT

MaxCompute Storage API を使用してデータを読み取るときの、単一のスプリットに含めることができる行の最大数。デフォルト値:1024。

/*+ MAX_BATCH_ROW_COUNT=1024*/

PAGE_BATCH_SIZE

MaxCompute Storage API を使用してデータを読み取るときの、各ページに含めることができる行の最大数。デフォルト値:1024。

/*+ PAGE_BATCH_SIZE=1024*/

MAX_ALLOCATION_PER_SPLIT

MaxCompute Storage API を使用してデータを読み取るときの、スプリットレベルで割り当てることができる最大ピークメモリ。デフォルト値:300。単位:MB。

/*+ MAX_ALLOCATION_PER_SPLIT=300*/

ASYNC_GET_SPLIT

MaxCompute が実行プランを生成するときに、スプリットのロードパフォーマンスを最適化することで、タスクをキューに非同期的に送信して実行するかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

説明

このパラメーターは、V3.1.10.1 以降の AnalyticDB for MySQL クラスタでのみサポートされています。

/*+ ASYNC_GET_SPLIT=true*/

スプリットフロー制御

SPLIT_FLOW_CONTROL_ENABLED

スプリットフロー制御機能を有効にするかどうかを指定します。AnalyticDB for MySQL では、ノードでの同時スプリットスキャンのクォータを構成して、過剰な同時スプリットスキャンとリソース使用率によって発生するノードの不安定性を防ぐことができます。有効な値:

  • true (デフォルト)

  • false

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

スプリットフロー制御

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

タスクでの同時スプリットスキャンの最小クォータ。デフォルト値:1。有効な値の範囲は、1 から TARGET_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値までです。

/*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/SELECT * FROM orders;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

タスクでの同時スプリットスキャンの中間クォータ。実際のクォータは、このパラメーターの値に基づいて動的に調整されます。デフォルト値:32。有効な値の範囲は、MIN_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値から MAX_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値までです。

/*+ TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32*/SELECT * FROM adb_test;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

タスクでの同時スプリットスキャンの最大クォータ。デフォルト値:64。このパラメーターの値は、TARGET_RUNNING_SPLITS_LIMIT_PER_TASK パラメーターの値より大きくなければなりません。

/*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/SELECT * FROM adb_test;

ページングキャッシュ (深いページクエリのパフォーマンス最適化)

PAGING_ID

ページングキャッシュ機能を有効にします。paging_id パラメーターを指定して、一連のページクエリ用に作成されたキャッシュテーブルを識別する必要があります。ページクエリは同じ SQL パターンを共有しますが、LIMIT 句と OFFSET 句の値が異なります。

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

ページングキャッシュ (深いページクエリのパフォーマンス最適化)

PAGING_CACHE_ENABLED

ページングキャッシュ機能を有効にするかどうかを指定します。システムは、SQL パターンに基づいてページング ID を自動的に生成し、一連のページクエリ用に作成されたキャッシュテーブルを識別します。ページクエリは同じ SQL パターンを共有しますが、LIMIT 句と OFFSET 句の値が異なります。有効な値:

  • true

  • false (デフォルト)

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

PAGING_CACHE_VALIDITY_INTERVAL

キャッシュテーブルの有効期間。有効期間が過ぎると、キャッシュテーブルは無効になります。キャッシュテーブルが無効になってから 1 時間以内にアクセスされない場合、システムはキャッシュテーブルを自動的に削除します。値は 0 より大きい整数である必要があります。単位:秒。このパラメーターは、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

SQL パターンで指定されたページクエリのキャッシュデータをクリアするかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

このパラメーターは、paging_id パラメーターまたは paging_cache_enabled パラメーターと一緒に使用する必要があります。

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

テーブルエンジンの指定

RC_DDL_ENGINE_REWRITE_XUANWUV2

現在の SQL 文を実行して作成されたテーブルのテーブルエンジンを XUANWU_V2 に設定するかどうかを指定します。有効な値:

  • true (デフォルト):現在の SQL 文を実行して作成されたテーブルのテーブルエンジンを XUANWU_V2 に設定しますが、既存のテーブルのテーブルエンジンは変更しません。テーブルを作成するときに ENGINE=XUANWU を指定した場合でも、テーブルのテーブルエンジンは自動的に XUANWU_V2 に変更されます。

  • false:現在の SQL 文を実行して作成されたテーブルのテーブルエンジンを XUANWU に設定しますが、既存のテーブルのテーブルエンジンは変更しません。

/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=true */

テーブルエンジンの指定

その他

RESOURCE_GROUP

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

/*+ RESOURCE_GROUP=my_group_name*/

なし

DML_EXCEPTION_TO_NULL_ENABLED

INSERT SELECT 文によって書き込まれたデータに無効な値が含まれている場合、例外をスローせずに NULL 値を書き込むかどうかを指定します。有効な値:

  • true:例外をスローせずに NULL 値を書き込みます。

  • false (デフォルト):例外をスローします。

/*+ DML_EXCEPTION_TO_NULL_ENABLED=true*/

DISPLAY_HINT

クエリの識別子。たとえば、クエリを実行するユーザーを指定する文字列など。

/*+ DISPLAY_HINT=from_user_123*/

よくある質問

ADB_CONFIG パラメーターの設定を削除するにはどうすればよいですか?

SET ADB_CONFIG key=value; を使用してパラメーター値を指定した場合、次の方法を使用してパラメーター値をデフォルト値に戻すことができます。

方法

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

上記の SQL 文が成功した場合は、SHOW ADB_CONFIG KEY=key; 文を実行して、パラメーター値がデフォルト値に戻っているかどうかを確認できます。