ApsaraDB for SelectDB の変数は、クエリの動作、セッション設定、およびクラスター全体の設定を制御します。変数には、ApsaraDB for SelectDB に固有のものと、MySQL クライアントプロトコルと互換性のあるものの 2 つのカテゴリがあります。
仕組み
変数は 2 つのスコープで設定できます:
-
セッションスコープ:現在の接続でのみ有効です。セッションが終了するとリセットされます。
-
グローバルスコープ:現在のセッションと、以降のすべてのセッションで有効です。 管理者ユーザーのみがグローバル変数を設定できます。
複数のレベルが設定されている場合、設定は次の優先順位 (高いものから順に) で有効になります:
-
セッション変数
-
ユーザープロパティ
-
グローバル変数
-
デフォルト値
より優先度の高い設定が設定されていない場合、次のレベルが自動的に有効になります。
変数のクエリ
SHOW VARIABLES を実行すると、すべての変数と現在の値が一覧表示されます。
SHOW VARIABLES;
名前のパターンでフィルタリングするには、次のように実行します:
SHOW VARIABLES LIKE '%time_zone%';
変数の設定
セッション変数の設定
セッション変数は直ちに有効になり、現在の接続にのみ適用されます:
SET exec_mem_limit = 137438953472;
SET forward_to_master = true;
SET time_zone = "Asia/Shanghai";
変数には定数式も指定できます:
SET exec_mem_limit = 10 * 1024 * 1024 * 1024;
SET forward_to_master = concat('tr', 'u', 'e');
グローバル変数の設定
グローバル変数は、現在のセッションおよび以降のすべてのセッションで有効になります:
SET GLOBAL exec_mem_limit = 137438953472;
admin ユーザーのみがグローバル変数を設定できます。
次の変数は、セッションスコープとグローバルスコープの両方をサポートしています:
-
time_zone -
wait_timeout -
sql_mode -
enable_profile -
query_timeout -
insert_timeout -
exec_mem_limit -
batch_size -
allow_partition_column_nullable -
insert_visible_timeout_ms -
enable_fold_constant_by_be
次の変数はグローバルスコープのみをサポートしています:
-
default_rowset_type -
default_password_lifetime -
password_history -
validate_password_policy
単一クエリでの変数のオーバーライド
SET_VAR ヒントを使用すると、セッション状態を変更せずに、単一のステートメントに対してセッション変数を設定できます:
SELECT /*+ SET_VAR(exec_mem_limit = 8589934592) */ name FROM people ORDER BY name;
SELECT /*+ SET_VAR(query_timeout = 1, enable_partition_cache=true) */ sleep(3);
コメントは/*+で開始し、SELECTキーワードの直後に記述する必要があります。
タイムゾーン変数
ApsaraDB for SelectDB は、2 つのタイムゾーン変数を提供します。
| 変数 | 説明 | 変更可能 |
|---|---|---|
system_time_zone |
クラスターのシステムタイムゾーン。サーバーの起動時に、サーバーの OS タイムゾーンに基づいて自動的に設定されます。 | いいえ |
time_zone |
クラスターの現在のタイムゾーン。時間関数と、タイムゾーンオフセットを含むインポートデータに影響します。 | はい |
タイムゾーン変数のクエリと設定
両方のタイムゾーン変数を表示するには、次のようにします:
SHOW VARIABLES LIKE '%time_zone%';
セッションのタイムゾーンを設定するには、次のようにします:
SET time_zone = 'Asia/Shanghai';
その後のすべてのセッションに対してクラスターのタイムゾーンを設定するには、次のようにします:
SET GLOBAL time_zone = 'Asia/Shanghai';
サポートされているタイムゾーン形式
| 形式タイプ | 例 |
|---|---|
| 名前付き (IANA tz データベース) | Asia/Shanghai、America/Los_Angeles |
| UTC オフセット | +02:30、-10:00 |
| 略称 | GMT、UTC (+00:00 と同等)、CST (Asia/Shanghai と同等) |
| Zulu | Z (+00:00 と同等) |
一部のデータインポート方法では、上記に記載されていない追加のタイムゾーン形式を受け入れる場合があります。本番環境では非標準の形式に依存しないでください。ApsaraDB for SelectDB は、いつでもその処理方法を変更する可能性があります。
タイムゾーン設定が関数とデータに与える影響
影響を受ける関数
以下の関数は、現在の time_zone 設定に基づいて結果を返します。
| 関数 | 動作 |
|---|---|
FROM_UNIXTIME |
UTC タイムスタンプを、設定されたタイムゾーンの日付と時刻に変換します。CST の場合、FROM_UNIXTIME(0) は 1970-01-01 08:00:00 を返します。 |
UNIX_TIMESTAMP |
日付と時刻を UTC タイムスタンプに変換します。CST の場合、UNIX_TIMESTAMP('1970-01-01 08:00:00') は 0 を返します。 |
CURTIME |
設定されたタイムゾーンの現在時刻を返します。 |
NOW |
設定されたタイムゾーンの現在の日付と時刻を返します。 |
CONVERT_TZ |
日付と時刻をあるタイムゾーンから別のタイムゾーンに変換します。 |
SHOW LOAD と SHOW BACKENDS の出力も、設定されたタイムゾーンを反映します。
タイムゾーン設定の影響を受けないもの:
-
CREATE TABLEにおける時間型パーティションキー列のless than値 -
DATE型またはDATETIME型として保存される値(保存される値自体は変更されません)
インポート時の時間型データ
DATE、DATEV2、DATETIME、または DATETIMEV2 型のデータをインポートする場合、ApsaraDB for SelectDB は次のようにタイムゾーン変換を処理します:
-
タイムゾーン接尾辞を含むデータ(例:
2020-12-12 12:12:12+08:00):クラスターの現在のtime_zoneに変換されます。たとえば、time_zoneが+00:00の場合、保存される値は2020-12-12 04:12:12になります。 -
タイムゾーン接尾辞を含まないデータ(例:
2020-12-12 12:12:12):絶対時刻として扱われ、変換なしでそのままインポートされます。
夏時間
夏時間の調整は、名前付きタイムゾーンに組み込まれています。たとえば、America/Los_Angeles は、3 月に -08:00 から -07:00 に移行し、11 月に戻ります。
夏時間の移行を回避するには、America/Los_Angeles のような名前付きゾーンではなく、固定 UTC オフセット(例:-08:00)に time_zone を設定してください。
タイムゾーンデータのソース
各バックエンド (BE) ノードで、ApsaraDB for SelectDB は、以下の場所からこの順序でタイムゾーンデータを検索します:
-
TZDIR環境変数で指定されたディレクトリ -
/usr/share/zoneinfo -
BE デプロイメントディレクトリ内の
zoneinfoディレクトリ
いずれの場所でもタイムゾーンデータが見つからない場合、BE ノードは起動に失敗します。
ベストプラクティス
タイムゾーン対応データ
データをインポートする前に、タイムゾーン情報を一貫して扱う方法を決定してください。 DATETIME などの時刻型データにはタイムゾーンが格納されません。 ApsaraDB for SelectDB では、次の 2 つに分類します:
絶対時刻:データにタイムゾーンが含まれず、インポート時にもタイムゾーンが設定されていない場合です。例: 2023-12-12 08:00:00。保存時もクエリ時もそのまま扱われ、time_zone の影響を受けません。
特定のタイムゾーンの時刻:データにタイムゾーンサフィックスが含まれます。例: 2020-12-12 12:12:12+02:00。どのタイムゾーン設定が適用されるかは、インポート方法によって決まります:
-
INSERT INTO:time_zoneセッション変数に従います。 -
ストリームロードまたはブローカーロード:
timezoneリクエストヘッダーに従います。timezoneヘッダーがtime_zoneセッション変数と競合する場合は、timezoneヘッダーが優先されます。
ApsaraDB for SelectDB は、インポート時に、入力データ内のリテラルタイムゾーンを time_zone で設定されたタイムゾーンに変換します。
推奨する方法:インポート前に time_zone を 1 度設定し、その後は一貫して同じ値を使用してください。タイムゾーン対応データをインポートした後に time_zone を変更すると、以降のクエリで保存値が誤って解釈されます。
次の例は、セッションの途中で time_zone を変更した場合の動作を示しています:
-- 現在のタイムゾーン:Asia/Hong_Kong
SELECT @@time_zone;
-- +----------------+
-- | @@time_zone |
-- +----------------+
-- | Asia/Hong_Kong |
-- +----------------+
-- リテラルタイムゾーン +02:00 のデータをインポート
-- 2020-12-12 18:12:12 として保存される (Asia/Hong_Kong に変換)
INSERT INTO dtv23 VALUES('2020-12-12 12:12:12+02:00');
SELECT * FROM dtv23;
-- +-------------------------+
-- | k0 |
-- +-------------------------+
-- | 2020-12-12 18:12:12.000 |
-- +-------------------------+
-- time_zone を変更しても保存値は更新されない
SET time_zone = 'America/Los_Angeles';
-- 2 回目のインポートでは、変換に America/Los_Angeles が使用される
INSERT INTO dtv23 VALUES('2020-12-12 12:12:12+02:00');
SELECT * FROM dtv23;
-- 行のタイムゾーンセマンティクスが不整合になる
-- +-------------------------+
-- | k0 |
-- +-------------------------+
-- | 2020-12-12 02:12:12.000 | -- America/Los_Angeles でインポート
-- | 2020-12-12 18:12:12.000 | -- Asia/Hong_Kong でインポート
-- +-------------------------+
タイムゾーンのベストプラクティスの概要:
-
データをインポートする前に、クラスターの
time_zoneを確認し、インポート後は変更しないでください。 -
ストリームロードまたはブローカーロードを使用する場合は、
timezoneヘッダーをtime_zoneセッション変数と同じ値に設定してください。 -
絶対時刻データはタイムゾーンサフィックスなしでインポートしてください。タイムゾーン対応データはタイムゾーンサフィックスを含め、変換は ApsaraDB for SelectDB に任せてください。
夏時間の精度
名前付きタイムゾーンのデータ (夏時間の開始日と終了日を含む) は、Internet Assigned Numbers Authority (IANA) によって管理されています。各 BE ノードに保存されているデータは、当年について IANA が確認した最新の変更を反映していない場合があります。
ワークロードで最新の夏時間スケジュールが必要な場合は、各 BE ノードのタイムゾーンデータソースに最新の IANA tz データベースのリリースが含まれていることを確認してください。最新データについては、The tz-announce Archives をご参照ください。
タイムアウト設定
ApsaraDB for SelectDB では、query_timeout および insert_timeout 変数とユーザープロパティを使用して、複数のレベルでタイムアウトを設定できます。
[優先順位 (高い順) :]セッション変数 > ユーザープロパティ > グローバル変数 > デフォルト値
| 変数 | スコープ | デフォルト | 説明 |
|---|---|---|---|
query_timeout |
セッション、グローバル、ユーザープロパティ | 900 秒 (15 分) | すべてのクエリステートメントのタイムアウトを制御します。 |
insert_timeout |
セッション、グローバル、ユーザープロパティ | 14400 秒 (4 時間) | INSERT ステートメント専用のタイムアウトを制御します。INSERT を実行する場合、query_timeout と insert_timeout のうち長い方が適用されます。 |
タイムアウトのユーザープロパティ:
-
query_timeoutおよびinsert_timeoutユーザープロパティは、[管理者] ユーザーのみが特定のユーザーに対して設定できます。 -
これらのプロパティにはクォータセマンティクスはなく、指定されたユーザーのデフォルトタイムアウトを変更します。
-
ユーザープロパティの変更は、クライアントが再接続した後に有効になります。
付録
サポートされている変数
ブール変数
ブール変数は、機能を有効または無効にします。有効な値: true および false。
| 変数 | デフォルト | 説明 |
|---|---|---|
delete_without_partition |
false | true の場合、パーティション句のない DELETE ステートメントは、すべてのパーティションに自動的に適用されます。これにより、DELETE 操作の実行時間が長くなり、大量のタスクが生成されます。必要な場合を除き、この設定は無効のままにしてください。 |
disable_colocate_join |
false | true の場合、コロケーションジョイン機能を無効にします。実行プランは、コロケーションジョイン操作を試みません。 |
enable_bucket_shuffle_join |
true | false の場合、バケットシャッフルジョイン機能を無効にします。実行プランは、バケットシャッフルジョイン操作を試みません。 |
disable_streaming_preaggregations |
false | true の場合、ストリーミング事前集計を無効にします。この変数は変更できません。 |
enable_insert_strict |
false | true の場合、INSERT ステートメントによるデータインポートの厳格モードを有効にします。 |
enable_spilling |
false | true の場合、大規模データセットのオンディスクソートを有効にします。一時データは BE の doris-scratch/ ディレクトリに書き込まれ、クエリ完了後にクリアされます。この機能は実験的なものであるため、本番環境では有効にしないでください。 |
forward_to_master |
true | true の場合、特定の SHOW ステートメントをマスター FE ノードに転送して実行します。マスター FE ノードは、SHOW FRONTENDS、SHOW BACKENDS、SHOW BROKER、SHOW TABLET、SHOW REPLICA DISTRIBUTION、SHOW REPLICA STATUS、および SHOW PROC に対してより詳細な情報を返します。 |
enable_profile |
false | true の場合、各クエリの後にクエリプロファイルを FE に送信します。プロファイルは fe_host:fe_http_port/query で表示できます。このページには、この変数を有効にした後の直近 100 件のクエリが表示されます。 |
rewrite_count_distinct_to_bitmap_hll |
true | true の場合、ビットマップまたは HyperLogLog (HLL) データに対して、COUNT DISTINCT を BITMAP_UNION_COUNT または HLL_UNION_AGG に置き換えます。 |
allow_partition_column_nullable |
true | true の場合、パーティションキー列を NULL として定義できます。false の場合、パーティションキー列は NOT NULL でなければなりません。 |
enable_exchange_node_parallel_merge |
false | true の場合、エクスチェンジノードは複数のスレッドを使用してソート済みデータを並列にマージし、大規模なソート操作におけるシングルスレッドのマージボトルネックを軽減します。 |
extract_wide_range_expr |
false | true の場合、広範囲の共通因数抽出を有効にします。 |
enable_fold_constant_by_be |
false | true の場合、定数畳み込みはリモートプロシージャコール (RPC) リクエストを介して BE で実行されます。false の場合、定数畳み込みは FE で実行されます。 |
disable_join_reorder |
false | true の場合、すべての自動ジョインリオーダーアルゴリズムを無効にします。JOIN 操作は、SQL ステートメント内のテーブルの順序に従います。 |
enable_infer_predicate |
true | true の場合、述語の導出を有効にします。false の場合、ApsaraDB for SelectDB は導出なしで元の述語を使用します。 |
trim_tailing_spaces_for_external_table_query |
false | true の場合、Hive 外部テーブルをクエリする際に、フィールドの末尾のスペースをトリムします。 |
enable_inverted_index_query |
true | true の場合、クエリで転置インデックスが使用されます。 |
skip_missing_version |
false | true の場合、クエリは FE に記録された可視バージョンを無視し、代わりに BE レプリカバージョンを使用して、欠落しているバージョンをスキップします。緊急のデータ復旧シナリオでのみ使用してください。この変数は、use_fix_replica が -1 に設定されている場合にのみ有効になります。 |
enable_parquet_lazy_materialization |
true | true の場合、Parquet Reader の遅延マテリアライゼーションを有効にします。 |
enable_orc_lazy_materialization |
true | true の場合、ORC Reader の遅延マテリアライゼーションを有効にします。 |
enable_strong_consistency_read |
true | true の場合、セッション間でのデータ読み取りの強い整合性を有効にします。デフォルトでは、強い整合性は同じセッション内でのみ維持されます。セッション間でのデータ読み取りの強い整合性を有効にする場合は、この変数を true に設定してください。 |
truncate_char_or_varchar_columns |
false | true の場合、CHAR および VARCHAR 列を、基盤となる Parquet または ORC ファイルが異なる長さを使用していても、テーブルスキーマで定義された最大長に切り詰めます。 |
jdbc_clickhouse_query_final |
false | true の場合、JDBC カタログ機能を介して実行される ClickHouse クエリに FINAL キーワードを追加し、ReplacingMergeTree テーブルエンジンでの重複排除を行います。 |
enable_memtable_on_sink_node |
false | true の場合、インポート中にデータシンクノードにメモリテーブルを作成し、bRPC ストリーミングを介して他の BE ノードにセグメントを送信することで、レプリカ間での重複作業を削減します。 |
enable_unique_key_partial_update |
false | true の場合、マージオンライト (MOW) モードを使用する Unique Key モデルのテーブルに対する INSERT INTO の部分列更新セマンティクスを有効にします。enable_unique_key_partial_update と enable_insert_strict の両方が true の場合、INSERT INTO は既存の行のみを更新できます。部分列更新で新しい行を挿入するには、enable_unique_key_partial_update を true に、enable_insert_strict を false に設定してください。 |
describe_extend_variant_column |
false | true の場合、DESCRIBE 出力に VARIANT 型列のサブ列を表示します。 |
dry_run_query |
false | true の場合、実際の結果セットではなく、行数のみを返します。データシンクノードは、データを書き込む代わりにドロップします。結果の送信オーバーヘッドなしで大規模データセットをテストする際に便利です。 |
drop_table_if_ctas_failed |
true | true の場合、CREATE TABLE AS SELECT が書き込みエラーにより失敗した場合、作成されたテーブルを削除します。 |
show_user_default_role |
false | true の場合、SHOW ROLES 出力に各ユーザーの暗黙的なロールを含めます。 |
group_by_and_having_use_alias_first |
false | true の場合、GROUP BY および HAVING 句は、FROM 句を検索する前に列のエイリアスを解決します。 |
enable_file_cache |
false | true の場合、ブロックファイルキャッシュを有効にします。この変数は、BE の be.conf ファイルに enable_file_cache=true も設定されている場合にのみ有効になります。 |
enable_auto_analyze |
true | true の場合、自動統計収集を有効にします。 |
enable_cost_based_join_reorder |
false | true の場合、コストベースのジョインリオーダーを有効にし、JOIN 操作でテーブルの順序を自動的に調整します。 |
enable_fallback_to_original_planner |
false | true の場合、新しいオプティマイザがサポートされていないシナリオに遭遇した場合、自動的に元のオプティマイザにフォールバックします。 |
enable_odbc_transcation |
false | true の場合、JDBC カタログへのデータ書き込みのトランザクションサポートを有効にします。 |
enable_parallel_outfile |
false | true の場合、SELECT INTO OUTFILE の並列スキャンを有効にします。 |
enable_sql_cache |
false | true の場合、SQL ステートメントの結果キャッシュを有効にします。 |
enable_unicode_name_support |
false | true の場合、Unicode 文字(中国語を含む)を含むテーブル名および列名をサポートします。 |
enable_vectorized_engine |
true | true の場合、ベクトル化エンジンを有効にしてクエリを高速化します。 |
experimental_enable_nereids_planner |
true | true の場合、新しいオプティマイザ (Nereids) を有効にします。この機能は実験的なものです。 |
experimental_enable_pipeline_engine |
true | true の場合、パイプライン実行エンジンを有効にします。この機能は実験的なものです。 |
experimental_enable_single_replica_insert |
false | true の場合、データインポートのプライマリとして 1 つのレプリカを選択します。他のレプリカは、書き込み完了後にプライマリからデータファイルをプルし、レプリカ間での冗長な計算を削減します。 |
faster_float_convert |
false | true の場合、より高速な浮動小数点数変換アルゴリズムを使用します。このアルゴリズムは出力形式を変更する可能性があることに注意してください。 |
enable_page_cache |
true | true の場合、ページレベルのキャッシュを有効にします。 |
strict_mode |
false | true の場合、データインポートの厳格モードを有効にします。 |
設定変数
設定変数は、単純な true / false を超える範囲の値を受け付けます。
| 変数 | デフォルト | 説明 |
|---|---|---|
auto_broadcast_join_threshold |
0.8 | ブロードキャスト結合で許容されるハッシュテーブルメモリの実行メモリ全体に対する最大比率。ハッシュテーブルがこの比率を超えると、ApsaraDB for SelectDB はシャッフル結合に切り替えます。-1 に設定すると、ブロードキャストを完全に無効化します。結合方法を明示的に制御するには、join[shuffle] などのクエリヒントを使用してください。 |
batch_size |
1024 | クエリ中にノード間で送信される 1 パケットあたりの行数。大きい値は大規模スキャンのスループットを向上させますが、小規模クエリのレイテンシとメモリ使用量を増加させることがあります。推奨範囲:1024~4096。 |
default_order_by_limit |
-1 | ORDER BY 後に返されるデフォルトの行数。-1 は制限なし (最大 LONG 値まで) を意味します。 |
exec_mem_limit |
2 GB | 単一クエリの最大メモリ。単位を指定できます:bytes (デフォルト)、KB、MB、GB、TB、PB。フラグメントインスタンスごとのメモリを制限します。クラスター全体でのクエリの合計メモリではありません。Memory Exceed Limit エラーが発生した場合、この値を指数関数的に増やしてください (4 GB、8 GB、16 GB)。 |
lower_case_table_names |
0 | テーブル名の大文字と小文字の区別を制御します。0:大文字と小文字を区別します。1:大文字と小文字を区別しません。名前は小文字で保存され、比較されます。2:大文字と小文字を区別しません。名前は CREATE TABLE で指定されたとおりに保存されますが、小文字で比較されます。クラスターの初期化時に fe.conf で設定する必要があり、その後 SET で変更することはできません。 |
max_pushdown_conditions_per_column |
-1 | 列ごとにストレージエンジンにプッシュダウンされる述語条件の最大数。-1 は be.conf の値を使用します。正の値は、現在のセッションの be.conf をオーバーライドします。 |
max_scan_key_num |
-1 | クエリごとにスキャンノードが分割できるスキャンキーの最大数。-1 は be.conf の値を使用します。正の値は、現在のセッションの be.conf をオーバーライドします。 |
parallel_exchange_instance_num |
-1 | 上流ノードが下流ノードからデータを受信するために使用するエクスチェンジノードの数。-1 は下流インスタンスの数と一致します。下流インスタンス数より少ない正の値は、エクスチェンジノードの数を制限します。これにより、集計出力が小さい集計クエリでオーバーヘッドを削減するのに役立ちます。 |
analyze_timeout |
43200 秒 | ANALYZE ステートメントのタイムアウト (秒単位)。 |
auto_analyze_end_time |
— | 自動統計収集ウィンドウの終了時刻。 |
auto_analyze_start_time |
— | 自動統計収集ウィンドウの開始時刻。 |
auto_analyze_table_width_threshold |
70 | この閾値を超える列数を持つテーブルは、自動統計収集から除外されます。 |
div_precision_increment |
4 | / 除算演算の結果に追加される小数点以下の桁数。 |
external_agg_bytes_threshold |
— | 集計操作のメモリ閾値。これを超えると、メモリ内のデータがディスクへスピルされます。 |
external_sort_bytes_threshold |
— | ソート操作のメモリ閾値。これを超えると、メモリ内のデータがディスクへスピルされます。 |
external_table_auto_analyze_interval_in_millis |
86400000 ミリ秒 | 外部テーブルの自動統計収集間の最小間隔。 |
fragment_transmission_compression_codec |
lz4 | ノード間のデータ送信時に使用される圧縮形式。 |
huge_table_auto_analyze_interval_in_millis |
0 | 大規模テーブル (huge_table_lower_bound_size_in_bytes で指定されたサイズの 5 倍以上) の自動統計収集間の最小間隔。 |
huge_table_default_sample_rows |
4194304 | 自動統計収集時に大規模テーブルからサンプリングされる行数。 |
huge_table_lower_bound_size_in_bytes |
0 | この閾値より大きいテーブルは、自動統計収集時にサンプリングされます。 |
ignore_runtime_filter_ids |
(空) | 無視するランタイムフィルター ID。 |
max_filter_ratio |
0 | インポート中にフィルターで除外できる行の最大比率 (例:検証に失敗した行)。 |
max_instance_num |
64 | parallel_pipeline_task_num が設定されていない場合の、SQL クエリごとの同時パイプラインタスクの最大数。 |
parallel_pipeline_task_num |
0 | SQL クエリごとの同時パイプラインタスクの数。0 の場合、ApsaraDB for SelectDB はこの値を各 BE ノードの CPU コア数の半分 (最大 max_instance_num) に設定します。 |
runtime_filter_type |
IN またはブルームフィルター | 使用されるランタイムフィルターのタイプ。オプション:ブルームフィルター、MinMax フィルター、IN 述語、IN またはブルームフィルター、ビットマップフィルター。 |
runtime_filter_mode |
GLOBAL | ランタイムフィルターのプッシュダウンポリシー。オプション:OFF、LOCAL、GLOBAL。 |
runtime_filter_wait_time_ms |
1000 ミリ秒 | 左側テーブルのスキャンノードが各ランタイムフィルターを待機する時間。 |
runtime_filters_max_num |
10 | クエリごとのブルームフィルターの最大数。 |
runtime_bloom_filter_min_size |
1048576 バイト (1 MB) | ブルームフィルターの最小サイズ。 |
runtime_bloom_filter_max_size |
16777216 バイト (16 MB) | ブルームフィルターの最大サイズ。 |
runtime_bloom_filter_size |
2097152 バイト (2 MB) | ブルームフィルターのデフォルトサイズ。 |
runtime_filter_max_in_num |
1024 | IN 述語を生成できる右側テーブルの最大行数。 |
parallel_fragment_exec_instance_num |
1 | 各 BE ノードでスキャン範囲を処理するインスタンスの数。この値を増やすと、大規模クエリのスループットが向上しますが、CPU、メモリ、ディスク I/O の使用量が増加します。 |
query_timeout |
900 秒 | 現在の接続におけるすべてのクエリステートメントのタイムアウト。INSERT ステートメントには、代わりに insert_timeout を使用してください。 |
insert_timeout |
14400 秒 | INSERT ステートメントのタイムアウト。insert_timeout が query_timeout より小さい場合、代わりに query_timeout が適用されます (下位互換性のため)。 |
send_batch_parallelism |
— | INSERT 操作中のバッチデータ送信のデフォルト同時実行数。BE 設定項目 max_send_batch_parallelism_per_job が上限となります。 |
sql_mode |
— | SQL 構文の互換性とデータ検証の厳密性を制御します。詳細については、「SQL Mode」をご参照ください。 |
sql_select_limit |
(制限なし) | SELECT によって返されるデフォルトの最大行数 (INSERT 内の SELECT を含む)。 |
time_zone |
system_time_zone の値 |
現在のセッションのタイムゾーン。時間関数の結果に影響します。詳細については、「タイムゾーン変数」をご参照ください。 |
wait_timeout |
28800 秒 (8 時間) | アイドル接続のタイムアウト。ApsaraDB for SelectDB は、この期間よりも長くアイドル状態の接続を閉じます。 |
default_rowset_type |
beta | コンピュートノードのデフォルトストレージ形式。有効な値:alpha、beta。 |
use_v2_rollup |
— | クエリが Segment V2 形式の ROLLUP インデックスを使用するかどうかを制御します。Segment V2 移行時の検証に使用されます。 |
prefer_join_method |
— | ブロードキャスト結合とシャッフル結合のコストが等しい場合に優先される結合方法。有効な値:broadcast、shuffle。 |
insert_visible_timeout_ms |
10000 ミリ秒 | INSERT 完了後、ApsaraDB for SelectDB がトランザクションのコミットとデータが可視になるのを待機する時間。最小値:1000 ミリ秒。 |
cpu_resource_limit |
-1 (制限なし) | 単一ノードでクエリが使用できるスキャンスレッドの数を制限します。parallel_fragment_exec_instance_num をオーバーライドします。cpu_resource_limit ユーザープロパティがこの設定をオーバーライドします。この機能は実験的なものです。 |
return_object_data_as_binary |
— | true の場合、SELECT の結果としてビットマップおよび HLL データをバイナリ形式で返します。SELECT INTO OUTFILE の場合、CSV 出力は Base64 としてエンコードされ、Parquet 出力はバイト配列として保存されます。Java での例:stmt.execute("set return_object_data_as_binary=true");。詳細については、「サンプル」をご参照ください。 |
block_encryption_mode |
NULL | ブロック暗号化モード。AES_128_ECB は Advanced Encryption Standard (AES) アルゴリズムを使用します。SM4_128_ECB は ShangMi 4 (SM4) アルゴリズムを使用します。 |
default_password_lifetime |
0 (期限切れなし) | デフォルトのパスワード有効期限 (日数)。PASSWORD_EXPIRE DEFAULT ポリシーを持つユーザーにのみ適用されます。 |
password_history |
0 (制限なし) | 保持される過去のパスワードの数。PASSWORD_HISTORY DEFAULT ポリシーを持つユーザーにのみ適用されます。 |
validate_password_policy |
NONE (0) | パスワード強度ポリシー。STRONG (2) は、大文字、小文字、数字、特殊文字 (~ ! @ # $ % ^ & * ( ) _ + | < > , . ? / : ; ' [ ] { } ") のうち少なくとも 3 種類を含む 8 文字以上のパスワードを要求します。 |
rewrite_or_to_in_predicate_threshold |
2 | IN 述語に書き換える前の OR 演算子の最小数。 |
file_cache_base_path |
random | BE 上のブロックファイルキャッシュのストレージパス。デフォルトでは、BE 設定からランダムに選択されたパスになります。 |
topn_opt_limit_threshold |
1024 | トップ N クエリ最適化 (動的フィルタリング、2 フェーズ結果取得、キー順序読み取り) を有効にするための LIMIT 句の閾値。n <= threshold の場合に最適化が適用されます。 |
use_fix_replica |
-1 (無効) | 0 以上に設定すると、常にそのシリアル番号順位のレプリカを使用します (0 = 最小)。 |
互換および予約済み変数
これらの変数は ApsaraDB for SelectDB では機能的な効果はありません。MySQL クライアントまたは JDBC 接続プールとの互換性のために用意されています。
| 変数 | 目的 |
|---|---|
SQL_AUTO_IS_NULL |
c3p0 JDBC 接続プールとの互換性のため。 |
auto_increment_increment |
MySQL クライアントとの互換性のため。自動インクリメントカラムの動作には影響しません。 |
auto_increment_offset |
MySQL クライアントとの互換性のため。自動インクリメントカラムの動作には影響しません。 |
autocommit |
MySQL クライアントとの互換性のため。 |
character_set_client |
MySQL クライアントとの互換性のため。 |
character_set_connection |
MySQL クライアントとの互換性のため。 |
character_set_results |
MySQL クライアントとの互換性のため。 |
character_set_server |
MySQL クライアントとの互換性のため。 |
collation_connection |
MySQL クライアントとの互換性のため。 |
collation_database |
MySQL クライアントとの互換性のため。 |
collation_server |
MySQL クライアントとの互換性のため。 |
have_query_cache |
MySQL クライアントとの互換性のため。 |
init_connect |
MySQL クライアントとの互換性のため。 |
interactive_timeout |
MySQL クライアントとの互換性のため。 |
language |
MySQL クライアントとの互換性のため。 |
max_allowed_packet |
c3p0 JDBC 接続プールとの互換性のため。 |
net_buffer_length |
MySQL クライアントとの互換性のため。 |
net_read_timeout |
MySQL クライアントとの互換性のため。 |
net_write_timeout |
MySQL クライアントとの互換性のため。 |
query_cache_size |
MySQL クライアントとの互換性のため。 |
query_cache_type |
c3p0 JDBC 接続プールとの互換性のため。 |
sql_safe_updates |
MySQL クライアントとの互換性のため。 |
tx_isolation |
MySQL クライアントとの互換性のため。 |
tx_read_only |
MySQL クライアントとの互換性のため。 |
transaction_read_only |
MySQL クライアントとの互換性のため。 |
transaction_isolation |
MySQL クライアントとの互換性のため。 |
version |
MySQL クライアントとの互換性のため。 |
performance_schema |
MySQL JDBC 8.0.16 以降との互換性のため。 |
codegen_level |
LLVM のコード生成レベルを設定します。効果はありません。 |
license |
ApsaraDB for SelectDB のライセンスを表示します。 |
resource_group |
予約済み。 |
system_time_zone |
クラスター初期化時にシステムタイムゾーンに設定されます。変更できません。 |
version_comment |
ApsaraDB for SelectDB のバージョンを表示します。変更できません。 |
dump_nereids_memo |
リグレッションテストに使用されます。 |
group_concat_max_len |
一部の BI ツールとの互換性のため。 |
be_number_for_test |
実用的な効果はありません。 |
workload_group |
予約済み。 |
参考資料
-
tz-announce アーカイブ — IANA タイムゾーンデータベースの最新リリース