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

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

最終更新日:Jun 07, 2024

AnalyticDB for MySQLでは、SET ADB_CONFIGステートメントを実行するか、ヒントを指定してパラメーターを設定できます。 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演算子で指定できる値の最大数。 デフォルト値: 4000 値は0より大きい整数でなければなりません。

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;

制限

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

  • マイナーバージョン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]

フィルター条件なしpushdown

クエリ実行モード

QUERY_TYPE

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

  • インタラクティブ

  • バッチ

説明

予約モードのAnalyticDB for MySQL Data Warehouse Edition (V3.0) クラスターまたはAnalyticDB for MySQL Data Lakehouse Edition (V3.0) クラスターのクエリ実行モードを変更することはできません。

SET ADB_CONFIG QUERY_TYPE=インタラクティブ;

クエリ実行モード

クエリキュー

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

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

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE=40;

XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE

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

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE=400;

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;

ビルドジョブの自動スケジューリング

RC_CSTORE_BUILD_SCHEDULE_PERIOD

ビルドジョブをスケジュールする時間範囲。 このパラメーターは、ジョブの実行ではなく、ジョブスケジューリングに適用されます。 開始時間と終了時間は整数でなければなりません。 有効な値: 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>';

ビルド

Elastic import

RC_ELASTIC_JOB_SCHEDULER_ENABLE

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

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=LTAI5t8sqJn5GhpBVtN8 ****;

XIHE_REMOTE_CALL_SERVER_SK

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

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=HlClegbiV5mJjBYBJHEZQOnRF7 ****;

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;

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

設定アイテム

パラメーター

説明

関連ドキュメント

クエリのタイムアウト期間

QUERY_TIMEOUT

1つのクエリのタイムアウト期間。 値は0より大きい整数でなければなりません。 単位:ミリ秒。

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

書き込みとクエリ

INSERT、UPDATE、およびDELETEステートメントのタイムアウト期間

INSERT_SELECT_TIMEOUT

クエリ内のINSERT、UPDATE、およびDELETEステートメントの最大実行期間。 デフォルト値: 24 × 3600000。 値は0より大きい整数でなければなりません。 単位:ミリ秒。

/* + INSERT_SELECT_TIMEOUT=3600000 * /customer set customer_name ='adb' (customer_id ='2369') を更新します。

制限

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

  • マイナーバージョン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] */

フィルター条件なしpushdown

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_LOAD=true, ELASTIC_LOAD_CONFIG=[adb.load.resource.group.name=resource_group]*/

ジョブ挿入の上書きをadb_demo.adb_import_test SELECT * からadb_external_db.personに送信します。

実行計画

  • マイナーバージョン3.1.8以降: O_CBO_RULE_SWAP_OUTER_JOIN

  • 3.1.8より前のマイナーバージョン: LEFT_TO_RIGHT_ENABLED

ハッシュ結合アルゴリズムは、右テーブルを使用してハッシュテーブルを構築し、左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 MySQLの自動結合順序調整機能が有効になっています。 この機能を無効にすると、クエリのデータ特性に基づいて結合順序を手動で調整できます。 これにより、SQL文の結合順序に基づいてクエリを実行できます。 有効な値:

  • true (デフォルト)

  • false

/* + REORDER_JOINS=false */

結合注文を手動で調整

aggregation_path_type

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

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

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

/* + AGGREGATION_PATH_TYPE=single_agg */

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

Runtimeポリシー

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

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 */ hintを追加します。 有効な値:

  • 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リーダーにロールバックするかどうかを指定します。 有効な値:

  • 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_DIRECTRY=true * /ヒントを使用して、データを宛先テーブルに直接書き込むように設定できます。 ただし、書き込みプロセス中にエラーが発生した場合、宛先テーブルにダーティデータがあります。 有効な値:

  • true

  • false (デフォルト)

/* + JDBC_INSERT_DIRECTRY=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を使用してデータを読み取るときに、1つの分割に含めることができる行の最大数。 有効な値: 10000〜500000。 デフォルト値: 500000

/* + ROWS_PER_SPLIT=500000 */

storage_api_enabled

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

有効な値:

  • true

  • false (デフォルト)

/* + STORAGE_API_ENABLED=true */

split_byte_size

MaxCompute Storage APIを使用してデータを読み取る場合の単一分割の最大サイズ。 デフォルト値: 256 単位:MB。

/* + APLIT_BYTE_SIZE=256 */

max_batch_row_count

MaxCompute Storage APIを使用してデータを読み取るときに、1つのスプリットに含めることができる行の最大数。 デフォルト値: 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テーブル;

スプリットフロー制御

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

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

/* + MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10 */SELECT * から注文;

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 * からadb_test;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

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

/* + MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100 */SELECT * からadb_test;

その他

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