Перейти к основному содержимому

Системные переменные

Selena предоставляет множество системных переменных, которые можно устанавливать и изменять в соответствии с вашими требованиями. В этом разделе описываются переменные, поддерживаемые Selena. Вы можете просмотреть настройки этих переменных, выполнив команду SHOW VARIABLES в вашем MySQL-клиенте. Вы также можете использовать команду SET для динамической установки или изменения переменных. Вы можете сделать эти переменные действующими глобально для всей системы, только в текущей сессии или только в одном запросе.

Переменные в Selena ссылаются на наборы переменных в MySQL, но некоторые переменные совместимы только с протоколом клиента MySQL и не функционируют в базе данных MySQL.

ПРИМЕЧАНИЕ

Любой пользователь имеет привилегию выполнять SHOW VARIABLES и делать переменную действующей на уровне сессии. Однако только пользователи с привилегией OPERATE уровня SYSTEM могут делать переменную действующей глобально. Глобально действующие переменные вступают в силу для всех будущих сессий (исключая текущую сессию).

Если вы хотите внести изменение настройки для текущей сессии, а также применить это изменение ко всем будущим сессиям, вы можете внести изменение дважды: один раз без модификатора GLOBAL и один раз с ним. Например:

SET query_mem_limit = 137438953472; -- Применить к текущей сессии.
SET GLOBAL query_mem_limit = 137438953472; -- Применить ко всем будущим сессиям.

Иерархия и типы переменных

Selena поддерживает три типа (уровня) переменных: глобальные переменные, переменные сессии и подсказки SET_VAR. Их иерархические отношения следующие:

  • Глобальные переменные действуют на глобальном уровне и могут быть переопределены переменными сессии и подсказками SET_VAR.
  • Переменные сессии действуют только в текущей сессии и могут быть переопределены подсказками SET_VAR.
  • Подсказки SET_VAR действуют только в текущем запросе.

Просмотр переменных

Вы можете просмотреть все или некоторые переменные, используя SHOW VARIABLES [LIKE 'xxx']. Пример:

-- Показать все переменные в системе.
SHOW VARIABLES;

-- Показать переменные, соответствующие определенному шаблону.
SHOW VARIABLES LIKE '%time_zone%';

Установка переменных

Установка переменных глобально или для одной сессии

Вы можете установить переменные для действия глобально или только в текущей сессии. При установке глобально новое значение будет использоваться для всех будущих сессий, в то время как текущая сессия по-прежнему использует исходное значение. При установке "только для текущей сессии" переменная будет действовать только в текущей сессии.

Переменная, установленная с помощью SET <var_name> = xxx;, действует только для текущей сессии. Пример:

SET query_mem_limit = 137438953472;

SET forward_to_master = true;

SET time_zone = "Asia/Shanghai";

Переменная, установленная с помощью SET GLOBAL <var_name> = xxx;, действует глобально. Пример:

SET GLOBAL query_mem_limit = 137438953472;

Следующие переменные действуют только глобально. Они не могут действовать для одной сессии, что означает, что вы должны использовать SET GLOBAL <var_name> = xxx; для этих переменных. Если вы попытаетесь установить такую переменную для одной сессии (SET <var_name> = xxx;), будет возвращена ошибка.

  • activate_all_roles_on_login
  • character_set_database
  • default_rowset_type
  • enable_query_queue_select
  • enable_query_queue_statistic
  • enable_query_queue_load
  • init_connect
  • lower_case_table_names
  • license
  • language
  • query_cache_size
  • query_queue_fresh_resource_usage_interval_ms
  • query_queue_concurrency_limit
  • query_queue_mem_used_pct_limit
  • query_queue_cpu_used_permille_limit
  • query_queue_pending_timeout_second
  • query_queue_max_queued_queries
  • system_time_zone
  • version_comment
  • version

Кроме того, настройки переменных также поддерживают константные выражения, такие как:

SET query_mem_limit = 10 * 1024 * 1024 * 1024;
SET forward_to_master = concat('tr', 'u', 'e');

Установка переменных в одном запросе

В некоторых сценариях вам может потребоваться установить переменные специально для определенных запросов. Используя подсказку SET_VAR, вы можете установить переменные сессии, которые будут действовать только в рамках одного оператора.

Selena поддерживает использование SET_VAR в следующих операторах:

  • SELECT
  • INSERT (начиная с v3.1.12 и v3.2.0)
  • UPDATE (начиная с v3.1.12 и v3.2.0)
  • DELETE (начиная с v3.1.12 и v3.2.0)

SET_VAR может быть размещен только после указанных выше ключевых слов и заключен в /*+...*/.

Пример:

SELECT /*+ SET_VAR(query_mem_limit = 8589934592) */ name FROM people ORDER BY name;

SELECT /*+ SET_VAR(query_timeout = 1) */ sleep(3);

UPDATE /*+ SET_VAR(query_timeout=100) */ tbl SET c1 = 2 WHERE c1 = 1;

DELETE /*+ SET_VAR(query_mem_limit = 8589934592) */
FROM my_table PARTITION p1
WHERE k1 = 3;

INSERT /*+ SET_VAR(query_timeout = 10000000) */
INTO insert_wiki_edit
SELECT * FROM FILES(
"path" = "s3://inserttest/parquet/insert_wiki_edit_append.parquet",
"format" = "parquet",
"aws.s3.access_key" = "XXXXXXXXXX",
"aws.s3.secret_key" = "YYYYYYYYYY",
"aws.s3.region" = "us-west-2"
);

Вы также можете установить несколько переменных в одном операторе. Пример:

SELECT /*+ SET_VAR
(
exec_mem_limit = 515396075520,
query_timeout=10000000,
batch_size=4096,
parallel_fragment_exec_instance_num=32
)
*/ * FROM TABLE;

Установка переменных как свойств пользователя

Вы можете установить переменные сессии как свойства пользователя, используя ALTER USER. Эта функция поддерживается начиная с v3.3.3.

Пример:

-- Установить переменную сессии `query_timeout` в `600` для пользователя jack.
ALTER USER 'jack' SET PROPERTIES ('session.query_timeout' = '600');

Описания переменных

Переменные описаны в алфавитном порядке. Переменные с меткой global могут действовать только глобально. Другие переменные могут действовать либо глобально, либо для одной сессии.

activate_all_roles_on_login (global)

  • Описание: Включать ли все роли (включая роли по умолчанию и предоставленные роли) для пользователя Selena при подключении пользователя к кластеру Selena.
    • Если включено (true), все роли пользователя активируются при входе пользователя в систему. Это имеет приоритет над ролями, установленными с помощью SET DEFAULT ROLE.
    • Если отключено (false), активируются роли, установленные с помощью SET DEFAULT ROLE.
  • По умолчанию: false
  • Введено в: v3.0

Если вы хотите активировать роли, назначенные вам в сессии, используйте команду SET ROLE.

auto_increment_increment

Используется для совместимости с клиентом MySQL. Практического применения нет.

autocommit

Используется для совместимости с клиентом MySQL. Практического применения нет.

chunk_size

  • Описание: Используется для указания количества строк одного пакета, передаваемого каждым узлом во время выполнения запроса. По умолчанию 4096, то есть каждые 4096 строк данных, сгенерированных исходным узлом, упаковываются и отправляются узлу назначения. Большее количество строк улучшит пропускную способность запросов в сценариях с большими объемами данных, но может увеличить задержку запросов в сценариях с малыми объемами данных. Также это может увеличить накладные расходы памяти запроса. Мы рекомендуем устанавливать batch_size между 1024 и 4096.
  • По умолчанию: 4096

big_query_profile_threshold

  • Описание: Используется для установки порога для больших запросов. Когда переменная сессии enable_profile установлена в false и время, затраченное на запрос, превышает порог, указанный переменной big_query_profile_threshold, для этого запроса генерируется профиль.

    Примечание: В версиях v3.1.5 до v3.1.7, а также v3.2.0 до v3.2.2, мы ввели big_query_profile_second_threshold для установки порога для больших запросов. В версиях v3.1.8, v3.2.3 и последующих релизах этот параметр был заменен на big_query_profile_threshold для предоставления более гибких опций конфигурации.

  • По умолчанию: 0

  • Единица: Секунда

  • Тип данных: String

  • Введено в: v3.1

catalog

  • Описание: Используется для указания каталога, к которому принадлежит сессия.
  • По умолчанию: default_catalog
  • Тип данных: String
  • Введено в: v3.2.4

cbo_decimal_cast_string_strict

  • Описание: Контролирует, как CBO преобразует данные из типа DECIMAL в тип STRING. Если эта переменная установлена в true, преобладает логика, встроенная в v2.5.x и более поздних версиях, и система реализует строгое преобразование (а именно, система обрезает сгенерированную строку и заполняет нулями на основе длины масштаба). Если эта переменная установлена в false, преобладает логика, встроенная в версиях ранее v2.5.x, и система обрабатывает все действительные цифры для генерации строки.
  • По умолчанию: true
  • Введено в: v2.5.14

cbo_enable_low_cardinality_optimize

  • Описание: Включать ли оптимизацию низкой кардинальности. После включения этой функции производительность запросов к столбцам STRING улучшается примерно в три раза.
  • По умолчанию: true

cbo_eq_base_type

  • Описание: Указывает тип данных, используемый для сравнения данных между данными DECIMAL и данными STRING. Значение по умолчанию VARCHAR, и DECIMAL также является допустимым значением. Эта переменная действует только для сравнения = и !=.
  • Тип данных: String
  • Введено в: v2.5.14
  • Описание: Указывает максимальное количество кандидатов материализованных представлений, разрешенных во время планирования запросов.
  • По умолчанию: 64
  • Введено в: v3.1.9, v3.2.5

cbo_prune_subfield

  • Описание: Включать ли обрезку подполей JSON. Эта переменная должна использоваться с динамическим параметром BE enable_json_flat. В противном случае это может ухудшить производительность запросов данных JSON.
  • По умолчанию: false
  • Тип данных: Int
  • Введено в: v3.3.0

enable_sync_materialized_view_rewrite

  • Описание: Включать ли перезапись запросов на основе синхронных материализованных представлений.
  • По умолчанию: true
  • Введено в: v3.1.11, v3.2.5

query_including_mv_names

  • Описание: Указывает имя асинхронных материализованных представлений для включения в выполнение запроса. Вы можете использовать эту переменную для ограничения количества кандидатов материализованных представлений и улучшения производительности перезаписи запросов в оптимизаторе. Этот элемент действует до query_excluding_mv_names.
  • По умолчанию: пусто
  • Тип данных: String
  • Введено в: v3.1.11, v3.2.5

query_excluding_mv_names

  • Описание: Указывает имя асинхронных материализованных представлений для исключения из выполнения запроса. Вы можете использовать эту переменную для ограничения количества кандидатов материализованных представлений и сокращения времени перезаписи запросов в оптимизаторе. query_including_mv_names действует до этого элемента.
  • По умолчанию: пусто
  • Тип данных: String
  • Введено в: v3.1.11, v3.2.5

optimizer_materialized_view_timelimit

  • Описание: Указывает максимальное время, которое может потребить одно правило перезаписи материализованного представления. Когда порог достигнут, это правило не будет использоваться для перезаписи запросов.
  • По умолчанию: 1000
  • Единица: мс
  • Введено в: v3.1.9, v3.2.5

enable_materialized_view_agg_pushdown_rewrite

  • Описание: Включать ли проталкивание агрегации для перезаписи запросов материализованных представлений. Если установлено в true, агрегатные функции будут проталкиваться к оператору Scan во время выполнения запроса и переписываться материализованным представлением до выполнения оператора Join. Это облегчит расширение данных, вызванное Join, и тем самым улучшит производительность запросов. Для подробной информации о сценариях и ограничениях этой функции см. Проталкивание агрегации.
  • По умолчанию: false
  • Введено в: v3.3.0

enable_materialized_view_text_match_rewrite

  • Описание: Включать ли перезапись материализованных представлений на основе текста. Когда этот элемент установлен в true, оптимизатор будет сравнивать запрос с существующими материализованными представлениями. Запрос будет переписан, если абстрактное синтаксическое дерево определения материализованного представления соответствует дереву запроса или его подзапроса.
  • По умолчанию: true
  • Введено в: v3.2.5, v3.3.0

materialized_view_subuqery_text_match_max_count

  • Описание: Указывает максимальное количество раз, когда система проверяет, соответствует ли подзапрос запроса определению материализованных представлений.
  • По умолчанию: 4
  • Введено в: v3.2.5, v3.3.0

enable_force_rule_based_mv_rewrite

  • Описание: Включать ли перезапись запросов для запросов к нескольким таблицам в фазе оптимизации на основе правил оптимизатора. Включение этой функции улучшит надежность перезаписи запросов. Однако это также увеличит потребление времени, если запрос пропустит материализованное представление.
  • По умолчанию: true
  • Введено в: v3.3.0

enable_view_based_mv_rewrite

  • Описание: Включать ли перезапись запросов для материализованных представлений на основе логических представлений. Если этот элемент установлен в true, логическое представление используется как унифицированный узел для перезаписи запросов к себе для лучшей производительности. Если этот элемент установлен в false, система переписывает запросы к логическим представлениям в запросы к физическим таблицам или материализованным представлениям, а затем переписывает их.
  • По умолчанию: false
  • Введено в: v3.1.9, v3.2.5, v3.3.0

enable_materialized_view_union_rewrite

  • Описание: Включать ли перезапись объединения материализованных представлений. Если этот элемент установлен в true, система стремится компенсировать предикаты, используя UNION ALL, когда предикаты в материализованном представлении не могут удовлетворить предикаты запроса.
  • По умолчанию: true
  • Введено в: v2.5.20, v3.1.9, v3.2.7, v3.3.0

enable_materialized_view_plan_cache

  • Описание: Включать ли кэш планов материализованных представлений, который может оптимизировать производительность автоматической перезаписи материализованных представлений. Установка в true указывает на включение.
  • По умолчанию: true
  • Введено в: v2.5.13, v3.0.7, v3.1.4, v3.2.0, v3.3.0

enable_cbo_based_mv_rewrite

  • Описание: Включать ли перезапись материализованных представлений в фазе CBO, которая может максимизировать вероятность успешной перезаписи запросов (например, когда порядок соединений отличается между материализованными представлениями и запросами), но это увеличит время выполнения фазы оптимизатора.
  • По умолчанию: true
  • Введено в: v3.5.5, v4.0.1

follower_query_forward_mode

  • Описание: Указывает, к каким узлам FE направляются операторы запросов.

    • Допустимые значения:

      • default: Направляет оператор запроса к Leader FE или Follower FE, в зависимости от прогресса воспроизведения Follower. Если узлы Follower FE не завершили прогресс воспроизведения, запросы будут направлены к узлу Leader FE. Если прогресс воспроизведения завершен, запросы будут предпочтительно направлены к узлу Follower FE.
      • leader: Направляет оператор запроса к Leader FE.
      • follower: Направляет оператор запроса к Follower FE.
  • По умолчанию: default

  • Тип данных: String

  • Введено в: v2.5.20, v3.1.9, v3.2.7, v3.3.0

character_set_database (global)

  • Тип данных: String Набор символов, поддерживаемый Selena. Поддерживается только UTF8 (utf8).
  • По умолчанию: utf8
  • Тип данных: String

connector_io_tasks_per_scan_operator

  • Описание: Максимальное количество одновременных задач I/O, которые могут быть выданы оператором сканирования во время запросов к внешним таблицам. Значение является целым числом. В настоящее время Selena может адаптивно регулировать количество одновременных задач I/O при запросах к внешним таблицам. Эта функция контролируется переменной enable_connector_adaptive_io_tasks, которая включена по умолчанию.
  • По умолчанию: 16
  • Тип данных: Int
  • Введено в: v2.5

connector_sink_compression_codec

  • Описание: Указывает алгоритм сжатия, используемый для записи данных в таблицы Hive или таблицы Iceberg, или экспорта данных с помощью Files().
  • Допустимые значения: uncompressed, snappy, lz4, zstd и gzip.
  • По умолчанию: uncompressed
  • Тип данных: String
  • Введено в: v3.2.3

connector_sink_target_max_file_size

  • Описание: Указывает максимальный размер целевого файла для записи данных в таблицы Hive или таблицы Iceberg, или экспорта данных с помощью Files(). Ограничение не является точным и применяется по принципу "лучших усилий".
  • Единица: Байты
  • По умолчанию: 1073741824
  • Тип данных: Long
  • Введено в: v3.3.0

count_distinct_column_buckets

  • Описание: Количество корзин для столбца COUNT DISTINCT в запросе group-by-count-distinct. Эта переменная действует только когда enable_distinct_column_bucketization установлена в true.
  • По умолчанию: 1024
  • Введено в: v2.5

default_rowset_type (global)

Используется для установки формата хранения по умолчанию, используемого движком хранения вычислительного узла. В настоящее время поддерживаемые форматы хранения: alpha и beta.

default_table_compression

  • Описание: Алгоритм сжатия по умолчанию для хранения таблиц. Поддерживаемые алгоритмы сжатия: snappy, lz4, zlib, zstd.

    Обратите внимание, что если вы указали свойство compression в операторе CREATE TABLE, алгоритм сжатия, указанный compression, вступает в силу.

  • По умолчанию: lz4_frame

  • Введено в: v3.0

disable_colocate_join

  • Описание: Используется для контроля того, включен ли Colocation Join. Значение по умолчанию false, что означает, что функция включена. Когда эта функция отключена, планирование запросов не будет пытаться выполнить Colocation Join.
  • По умолчанию: false

disable_streaming_preaggregations

Используется для включения потоковых предварительных агрегаций. Значение по умолчанию false, что означает, что функция включена.

div_precision_increment

Используется для совместимости с клиентом MySQL. Практического применения нет.

enable_datacache_async_populate_mode

  • Описание: Заполнять ли кэш данных в асинхронном режиме. По умолчанию система использует синхронный режим для заполнения кэша данных, то есть заполнение кэша во время запроса данных.
  • По умолчанию: false
  • Введено в: v3.2.7

enable_connector_adaptive_io_tasks

  • Описание: Адаптивно ли регулировать количество одновременных задач I/O при запросах к внешним таблицам. Значение по умолчанию true. Если эта функция не включена, вы можете вручную установить количество одновременных задач I/O, используя переменную connector_io_tasks_per_scan_operator.
  • По умолчанию: true
  • Введено в: v2.5

enable_distinct_column_bucketization

  • Описание: Включать ли разделение на корзины для столбца COUNT DISTINCT в запросе group-by-count-distinct. Используйте запрос select a, count(distinct b) from t group by a; в качестве примера. Если столбец GROUP BY a является столбцом с низкой кардинальностью, а столбец COUNT DISTINCT b является столбцом с высокой кардинальностью, который имеет серьезный перекос данных, возникнет узкое место производительности. В этой ситуации вы можете разделить данные в столбце COUNT DISTINCT на несколько корзин для балансировки данных и предотвращения перекоса данных. Вы должны использовать эту переменную с переменной count_distinct_column_buckets.

    Вы также можете включить разделение на корзины для столбца COUNT DISTINCT, добавив подсказку skew к вашему запросу, например, select a,count(distinct [skew] b) from t group by a;.

  • По умолчанию: false, что означает, что эта функция отключена.

  • Введено в: v2.5

enable_gin_filter

enable_group_level_query_queue (global)

  • Описание: Включать ли очередь запросов на уровне группы ресурсов.
  • По умолчанию: false, что означает, что эта функция отключена.
  • Введено в: v3.1.4

enable_iceberg_metadata_cache

  • Описание: Кэшировать ли указатели и имена разделов для таблиц Iceberg. С v3.2.1 до v3.2.3 этот параметр установлен в true по умолчанию, независимо от того, какая служба метаданных используется. В v3.2.4 и позже, если кластер Iceberg использует AWS Glue в качестве метаданных, этот параметр по-прежнему по умолчанию true. Однако, если кластер Iceberg использует другую службу метаданных, такую как Hive metastore, этот параметр по умолчанию false.
  • Введено в: v3.2.1

enable_metadata_profile

  • Описание: Включать ли Profile для запросов сбора метаданных Iceberg Catalog.
  • По умолчанию: true
  • Введено в: v3.3.3

plan_mode

  • Описание: Стратегия извлечения метаданных Iceberg Catalog. Для получения дополнительной информации см. Стратегия извлечения метаданных Iceberg Catalog. Допустимые значения:
    • auto: Система автоматически выберет план извлечения.
    • local: Использовать план локального кэша.
    • distributed: Использовать распределенный план.
  • По умолчанию: auto
  • Введено в: v3.3.3

metadata_collect_query_timeout

  • Описание: Время ожидания для запросов сбора метаданных Iceberg Catalog.
  • Единица: Секунда
  • По умолчанию: 60
  • Введено в: v3.3.3

enable_insert_strict

Используется для включения строгого режима при загрузке данных с помощью оператора INSERT. Значение по умолчанию true, указывающее, что строгий режим включен по умолчанию. Для получения дополнительной информации см. Строгий режим.

enable_materialized_view_for_insert

  • Описание: Разрешать ли Selena переписывать запросы в операторах INSERT INTO SELECT.
  • По умолчанию: false, что означает, что Query Rewrite в таких сценариях отключена по умолчанию.
  • Введено в: v2.5.18, v3.0.9, v3.1.7, v3.2.2

enable_rule_based_materialized_view_rewrite

  • Описание: Контролирует, включать ли перезапись запросов материализованных представлений на основе правил. Эта переменная в основном используется в перезаписи запросов к одной таблице.
  • По умолчанию: true
  • Тип данных: Boolean
  • Введено в: v2.5

enable_short_circuit

  • Описание: Включать ли короткое замыкание для запросов. По умолчанию: false. Если установлено в true, когда запрос соответствует критериям (для оценки того, является ли запрос точечным запросом): условные столбцы в предложении WHERE включают все столбцы первичного ключа, а операторы в предложении WHERE являются = или IN, запрос использует короткое замыкание.
  • По умолчанию: false
  • Введено в: v3.2.3

enable_spill

  • Описание: Включать ли сброс промежуточных результатов. По умолчанию: false. Если установлено в true, Selena сбрасывает промежуточные результаты на диск для уменьшения использования памяти при обработке операторов агрегации, сортировки или соединения в запросах.
  • По умолчанию: false
  • Введено в: v3.0

enable_spill_to_remote_storage

  • Описание: Включать ли сброс промежуточных результатов в объектное хранилище. Если установлено в true, Selena сбрасывает промежуточные результаты в том хранилища, указанный в spill_storage_volume, после достижения предела емкости локального диска. Для получения дополнительной информации см. Сброс в объектное хранилище.
  • По умолчанию: false
  • Введено в: v3.3.0

enable_strict_order_by

  • Описание: Используется для проверки того, является ли имя столбца, на которое ссылается ORDER BY, неоднозначным. Когда эта переменная установлена в значение по умолчанию TRUE, сообщается об ошибке для такого шаблона запроса: Дублирующийся псевдоним используется в разных выражениях запроса, и этот псевдоним также является полем сортировки в ORDER BY, например, select distinct t1.* from tbl1 t1 order by t1.k1;. Логика такая же, как в v2.3 и ранее. Когда эта переменная установлена в FALSE, используется свободный механизм дедупликации, который обрабатывает такие запросы как действительные SQL-запросы.
  • По умолчанию: true
  • Введено в: v2.5.18 и v3.1.7

enable_profile

  • Описание: Указывает, отправлять ли профиль запроса для анализа. Значение по умолчанию false, что означает, что профиль не требуется.

    По умолчанию профиль отправляется в FE только при возникновении ошибки запроса в BE. Отправка профиля вызывает сетевые накладные расходы и поэтому влияет на высокую параллельность.

    Если вам нужно проанализировать профиль запроса, вы можете установить эту переменную в true. После завершения запроса профиль можно просмотреть на веб-странице текущего подключенного FE (адрес: fe_host:fe_http_port/query). Эта страница отображает профили последних 100 запросов с включенным enable_profile.

  • По умолчанию: false

enable_query_queue_load (global)

  • Описание: Логическое значение для включения очередей запросов для задач загрузки.
  • По умолчанию: false

enable_query_queue_select (global)

  • Описание: Включать ли очереди запросов для запросов SELECT.
  • По умолчанию: false

enable_query_queue_statistic (global)

  • Описание: Включать ли очереди запросов для статистических запросов.
  • По умолчанию: false

enable_query_tablet_affinity

  • Описание: Логическое значение для контроля того, направлять ли несколько запросов к одному и тому же планшету к фиксированной реплике.

    В сценариях, где таблица для запроса имеет большое количество планшетов, эта функция значительно улучшает производительность запросов, поскольку метаинформация и данные планшета могут быть кэшированы в памяти быстрее.

    Однако, если есть некоторые горячие планшеты, эта функция может ухудшить производительность запросов, поскольку она направляет запросы к одному и тому же BE, делая его неспособным полностью использовать ресурсы нескольких BE в сценариях высокой параллельности.

  • По умолчанию: false, что означает, что система выбирает реплику для каждого запроса.

  • Введено в: v2.5.6, v3.0.8, v3.1.4 и v3.2.0.

enable_lake_tablet_internal_parallel

  • Описание: Включать ли Parallel Scan для облачных таблиц в кластере с общими данными.
  • По умолчанию: false
  • Тип данных: Boolean
  • Введено в: v3.3.0

tablet_internal_parallel_mode

  • Описание: Стратегия Internal Parallel Scan планшетов. Допустимые значения:
    • auto: Когда количество планшетов для сканирования на узлах BE или CN меньше степени параллелизма (DOP), система автоматически определяет, нужно ли Parallel Scan, на основе оценочного размера планшетов.
    • force_split: Принудительно разделяет планшеты и выполняет Parallel Scan.
  • По умолчанию: auto
  • Тип данных: String
  • Введено в: v2.5.0

enable_scan_datacache

  • Описание: Указывает, включать ли функцию Data Cache. После включения этой функции Selena кэширует горячие данные, считанные из внешних систем хранения, в блоки, что ускоряет запросы и анализ. Для получения дополнительной информации см. Data Cache. В версиях до 3.2 эта переменная называлась enable_scan_block_cache.
  • По умолчанию: true
  • Введено в: v2.5

populate_datacache_mode

  • Описание: Указывает поведение заполнения Data Cache при чтении блоков данных из внешних систем хранения. Допустимые значения:
    • auto (по умолчанию): система автоматически кэширует данные селективно на основе правила заполнения.
    • always: Всегда кэшировать данные.
    • never: Никогда не кэшировать данные.
  • По умолчанию: auto
  • Введено в: v3.3.2

enable_datacache_io_adaptor

  • Описание: Включать ли Data Cache I/O Adaptor. Установка в true включает функцию. Когда эта функция включена, система автоматически направляет некоторые запросы кэша в удаленное хранилище при высокой нагрузке дискового I/O, снижая давление на диск.
  • По умолчанию: true
  • Введено в: v3.3.0

enable_file_metacache

  • Описание: Включать ли кэш метаданных для файлов в удаленном хранилище (Footer Cache). Установка в true включает функцию. Footer Cache напрямую кэширует разобранный объект Footer в памяти. Когда Footer того же файла доступен в последующих запросах, дескриптор объекта может быть получен напрямую из кэша, избегая повторного разбора. Эта функция использует модуль памяти Data Cache для кэширования данных. Поэтому вы должны убедиться, что параметр BE datacache_enable установлен в true и настроить разумное значение для datacache_mem_size.
  • По умолчанию: true
  • Введено в: v3.3.0

enable_tablet_internal_parallel

  • Описание: Включать ли адаптивное параллельное сканирование планшетов. После включения этой функции несколько потоков могут использоваться для сканирования одного планшета по сегментам, увеличивая параллельность сканирования.
  • По умолчанию: true
  • Введено в: v2.3

enable_query_cache

  • Описание: Указывает, включать ли функцию Query Cache. Допустимые значения: true и false. true указывает на включение этой функции, а false указывает на отключение этой функции. Когда эта функция включена, она работает только для запросов, которые соответствуют условиям, указанным в сценариях применения Query Cache.
  • По умолчанию: false
  • Введено в: v2.5

enable_adaptive_sink_dop

  • Описание: Указывает, включать ли адаптивный параллелизм для загрузки данных. После включения этой функции система автоматически устанавливает параллелизм загрузки для заданий INSERT INTO и Broker Load, что эквивалентно механизму pipeline_dop. Для вновь развернутого кластера Selena v2.5 значение по умолчанию true. Для кластера v2.5, обновленного с v2.4, значение false.
  • По умолчанию: false
  • Введено в: v2.5

enable_pipeline_engine

  • Описание: Указывает, включать ли движок выполнения конвейера. true указывает на включение, а false указывает на противоположное. Значение по умолчанию: true.
  • По умолчанию: true

enable_sort_aggregate

  • Описание: Указывает, включать ли сортированную потоковую передачу. true указывает, что сортированная потоковая передача включена для сортировки данных в потоках данных.
  • По умолчанию: false
  • Введено в: v2.5

enable_global_runtime_filter

Включать ли глобальный runtime filter (сокращенно RF). RF фильтрует данные во время выполнения. Фильтрация данных часто происходит на этапе Join. Во время соединения нескольких таблиц используются оптимизации, такие как проталкивание предикатов, для фильтрации данных, чтобы уменьшить количество сканируемых строк для Join и I/O на этапе Shuffle, тем самым ускоряя запрос.

Selena предлагает два типа RF: Local RF и Global RF. Local RF подходит для Broadcast Hash Join, а Global RF подходит для Shuffle Join.

Значение по умолчанию: true, что означает, что глобальный RF включен. Если эта функция отключена, глобальный RF не действует. Local RF все еще может работать.

enable_multicolumn_global_runtime_filter

Включать ли многостолбцовый глобальный runtime filter. Значение по умолчанию: false, что означает, что многостолбцовый глобальный RF отключен.

Если Join (кроме Broadcast Join и Replicated Join) имеет несколько условий equi-join:

  • Если эта функция отключена, работает только Local RF.
  • Если эта функция включена, многостолбцовый Global RF вступает в силу и несет multi-column в предложении partition by.

enable_write_hive_external_table

  • Описание: Разрешать ли сброс данных во внешние таблицы Hive.
  • По умолчанию: false
  • Введено в: v3.2

event_scheduler

Используется для совместимости с клиентом MySQL. Практического применения нет.

enable_strict_type

  • Описание: Разрешать ли неявные преобразования для всех составных предикатов и для всех выражений в предложении WHERE.
  • По умолчанию: false
  • Введено в: v3.1

force_streaming_aggregate

Используется для контроля того, включает ли узел агрегации потоковую агрегацию для вычислений. Значение по умолчанию false, что означает, что функция не включена.

forward_to_leader

Используется для указания того, будут ли некоторые команды перенаправлены лидеру FE для выполнения. Псевдоним: forward_to_master. Значение по умолчанию false, что означает отсутствие перенаправления к лидеру FE. В кластере Selena есть несколько FE, один из которых является лидером FE. Обычно пользователи могут подключаться к любому FE для полнофункциональных операций. Однако некоторая информация доступна только на лидере FE.

Например, если команда SHOW BACKENDS не перенаправляется лидеру FE, можно просмотреть только основную информацию (например, жив ли узел). Перенаправление лидеру FE может получить более подробную информацию, включая время запуска узла и время последнего сердцебиения.

Команды, затронутые этой переменной, следующие:

  • SHOW FRONTENDS: Перенаправление лидеру FE позволяет пользователям просматривать последнее сообщение сердцебиения.

  • SHOW BACKENDS: Перенаправление лидеру FE позволяет пользователям просматривать время загрузки, информацию о последнем сердцебиении и информацию о емкости диска.

  • SHOW BROKER: Перенаправление лидеру FE позволяет пользователям просматривать время загрузки и информацию о последнем сердцебиении.

  • SHOW TABLET

  • ADMIN SHOW REPLICA DISTRIBUTION

  • ADMIN SHOW REPLICA STATUS: Перенаправление лидеру FE позволяет пользователям просматривать информацию о планшетах, хранящуюся в метаданных лидера FE. Обычно информация о планшетах должна быть одинаковой в метаданных разных FE. Если возникает ошибка, вы можете использовать этот метод для сравнения метаданных текущего FE и лидера FE.

  • Show PROC: Перенаправление лидеру FE позволяет пользователям просматривать информацию PROC, хранящуюся в метаданных. Это в основном используется для сравнения метаданных.

group_concat_max_len

  • Описание: Максимальная длина строки, возвращаемой функцией group_concat.
  • По умолчанию: 1024
  • Минимальное значение: 4
  • Единица: Символы
  • Тип данных: Long

hash_join_push_down_right_table

  • Описание: Используется для контроля того, могут ли данные левой таблицы быть отфильтрованы с использованием условия фильтра против правой таблицы в запросе Join. Если да, это может уменьшить количество данных, которые необходимо обработать во время запроса. По умолчанию: true указывает, что операция разрешена, и система решает, может ли левая таблица быть отфильтрована. false указывает, что операция отключена. Значение по умолчанию true.

init_connect (global)

Используется для совместимости с клиентом MySQL. Практического применения нет.

interactive_timeout

Используется для совместимости с клиентом MySQL. Практического применения нет.

io_tasks_per_scan_operator

  • Описание: Количество одновременных задач I/O, которые могут быть выданы оператором сканирования. Увеличьте это значение, если вы хотите получить доступ к удаленным системам хранения, таким как HDFS или S3, но задержка высока. Однако большее значение вызывает больше потребления памяти.
  • По умолчанию: 4
  • Тип данных: Int
  • Введено в: v2.5

jit_level

  • Описание: Уровень, на котором включена JIT-компиляция для выражений. Допустимые значения:
    • 1: Система адаптивно включает JIT-компиляцию для компилируемых выражений.
    • -1: JIT-компиляция включена для всех компилируемых, не константных выражений.
    • 0: JIT-компиляция отключена. Вы можете отключить ее вручную, если для этой функции возвращается какая-либо ошибка.
  • По умолчанию: 1
  • Тип данных: Int
  • Введено в: -

language (global)

Используется для совместимости с клиентом MySQL. Практического применения нет.

license (global)

  • Описание: Отображает лицензию Selena.
  • По умолчанию: Apache License 2.0

load_mem_limit

Указывает ограничение памяти для операции импорта. Значение по умолчанию 0, что означает, что эта переменная не используется, и вместо нее используется query_mem_limit.

Эта переменная используется только для операции INSERT, которая включает как запрос, так и импорт. Если пользователь не устанавливает эту переменную, ограничение памяти как для запроса, так и для импорта будет установлено как exec_mem_limit. В противном случае ограничение памяти для запроса будет установлено как exec_mem_limit, а ограничение памяти для импорта как load_mem_limit.

Другие методы импорта, такие как BROKER LOAD, STREAM LOAD, по-прежнему используют exec_mem_limit для ограничения памяти.

log_rejected_record_num (v3.1 и позже)

Указывает максимальное количество неквалифицированных строк данных, которые могут быть зарегистрированы. Допустимые значения: 0, -1 и любое ненулевое положительное целое число. Значение по умолчанию: 0.

  • Значение 0 указывает, что строки данных, которые отфильтрованы, не будут зарегистрированы.
  • Значение -1 указывает, что все строки данных, которые отфильтрованы, будут зарегистрированы.
  • Ненулевое положительное целое число, такое как n, указывает, что до n строк данных, которые отфильтрованы, могут быть зарегистрированы на каждом BE.

lower_case_table_names (global)

Используется для совместимости с клиентом MySQL. Практического применения нет. Имена таблиц в Selena чувствительны к регистру.

materialized_view_rewrite_mode (v3.2 и позже)

Указывает режим перезаписи запросов асинхронных материализованных представлений. Допустимые значения:

  • disable: Отключить автоматическую перезапись запросов асинхронных материализованных представлений.
  • default (значение по умолчанию): Включить автоматическую перезапись запросов асинхронных материализованных представлений и позволить оптимизатору решать, может ли запрос быть переписан с использованием материализованного представления на основе стоимости. Если запрос не может быть переписан, он напрямую сканирует данные в базовой таблице.
  • default_or_error: Включить автоматическую перезапись запросов асинхронных материализованных представлений и позволить оптимизатору решать, может ли запрос быть переписан с использованием материализованного представления на основе стоимости. Если запрос не может быть переписан, возвращается ошибка.
  • force: Включить автоматическую перезапись запросов асинхронных материализованных представлений, и оптимизатор приоритизирует перезапись запросов с использованием материализованного представления. Если запрос не может быть переписан, он напрямую сканирует данные в базовой таблице.
  • force_or_error: Включить автоматическую перезапись запросов асинхронных материализованных представлений, и оптимизатор приоритизирует перезапись запросов с использованием материализованного представления. Если запрос не может быть переписан, возвращается ошибка.

max_allowed_packet

  • Описание: Используется для совместимости с пулом соединений JDBC C3P0. Эта переменная указывает максимальный размер пакетов, которые могут быть переданы между клиентом и сервером.
  • По умолчанию: 33554432 (32 МБ). Вы можете увеличить это значение, если клиент сообщает "PacketTooBigException".
  • Единица: Байт
  • Тип данных: Int

max_pushdown_conditions_per_column

  • Описание: Максимальное количество предикатов, которые могут быть проталкиваны для столбца.
  • По умолчанию: -1, указывающее, что используется значение в файле be.conf. Если эта переменная установлена в значение больше 0, значение в be.conf игнорируется.
  • Тип данных: Int

max_scan_key_num

  • Описание: Максимальное количество ключей сканирования, сегментированных каждым запросом.
  • По умолчанию: -1, указывающее, что используется значение в файле be.conf. Если эта переменная установлена в значение больше 0, значение в be.conf игнорируется.

nested_mv_rewrite_max_level

  • Описание: Максимальные уровни вложенных материализованных представлений, которые могут использоваться для перезаписи запросов.
  • Диапазон значений: [1, +∞). Значение 1 указывает, что только материализованные представления, созданные на базовых таблицах, могут использоваться для перезаписи запросов.
  • По умолчанию: 3
  • Тип данных: Int

net_buffer_length

Используется для совместимости с клиентом MySQL. Практического применения нет.

net_read_timeout

Используется для совместимости с клиентом MySQL. Практического применения нет.

net_write_timeout

Используется для совместимости с клиентом MySQL. Практического применения нет.

new_planner_optimize_timeout

  • Описание: Время ожидания оптимизатора запросов. Когда оптимизатор превышает время ожидания, возвращается ошибка и запрос останавливается, что влияет на производительность запроса. Вы можете установить эту переменную в большее значение на основе вашего запроса или обратиться в техническую поддержку Selena для устранения неполадок. Превышение времени ожидания часто происходит, когда запрос имеет слишком много соединений.
  • По умолчанию: 3000
  • Единица: мс

parallel_exchange_instance_num

Используется для установки количества узлов обмена, которые узел верхнего уровня использует для получения данных от узла нижнего уровня в плане выполнения. Значение по умолчанию -1, что означает, что количество узлов обмена равно количеству экземпляров выполнения узла нижнего уровня. Когда эта переменная установлена больше 0, но меньше количества экземпляров выполнения узла нижнего уровня, количество узлов обмена равно установленному значению.

В распределенном плане выполнения запросов узел верхнего уровня обычно имеет один или несколько узлов обмена для получения данных от экземпляров выполнения узла нижнего уровня на разных BE. Обычно количество узлов обмена равно количеству экземпляров выполнения узла нижнего уровня.

В некоторых сценариях агрегационных запросов, где количество данных резко уменьшается после агрегации, вы можете попробовать изменить эту переменную на меньшее значение, чтобы уменьшить накладные расходы ресурсов. Примером может служить выполнение агрегационных запросов с использованием таблицы Duplicate Key.

parallel_fragment_exec_instance_num

Используется для установки количества экземпляров, используемых для сканирования узлов на каждом BE. Значение по умолчанию 1.

План запроса обычно производит набор диапазонов сканирования. Эти данные распределены по нескольким узлам BE. Узел BE будет иметь один или несколько диапазонов сканирования, и по умолчанию набор диапазонов сканирования каждого узла BE обрабатывается только одним экземпляром выполнения. Когда ресурсы машины достаточны, вы можете увеличить эту переменную, чтобы позволить большему количеству экземпляров выполнения обрабатывать диапазон сканирования одновременно для повышения эффективности.

Количество экземпляров сканирования определяет количество других узлов выполнения на верхнем уровне, таких как узлы агрегации и узлы соединения. Поэтому это увеличивает параллельность выполнения всего плана запроса. Изменение этой переменной поможет повысить эффективность, но большие значения будут потреблять больше ресурсов машины, таких как CPU, память и дисковый I/O.

partial_update_mode

  • Описание: Используется для контроля режима частичных обновлений. Допустимые значения:

    • auto (по умолчанию): Система автоматически определяет режим частичных обновлений, анализируя оператор UPDATE и задействованные столбцы.
    • column: Режим столбца используется для частичных обновлений, что особенно подходит для частичных обновлений, которые включают небольшое количество столбцов и большое количество строк.

    Для получения дополнительной информации см. UPDATE.

  • По умолчанию: auto

  • Введено в: v3.1

performance_schema (global)

Используется для совместимости с MySQL JDBC версий 8.0.16 и выше. Практического применения нет.

prefer_compute_node

  • Описание: Указывает, распределяют ли FE планы выполнения запросов на узлы CN. Допустимые значения:
    • true: указывает, что FE распределяют планы выполнения запросов на узлы CN.
    • false: указывает, что FE не распределяют планы выполнения запросов на узлы CN.
  • По умолчанию: false
  • Введено в: v2.4

pipeline_dop

  • Описание: Параллелизм экземпляра конвейера, который используется для настройки параллельности запросов. Значение по умолчанию: 0, указывающее, что система автоматически настраивает параллелизм каждого экземпляра конвейера. Эта переменная также контролирует параллелизм заданий загрузки в таблицы OLAP. Вы также можете установить эту переменную в значение больше 0. Обычно устанавливайте значение в половину количества физических ядер CPU. Начиная с v3.0, Selena адаптивно настраивает эту переменную на основе параллельности запросов.

  • По умолчанию: 0

  • Тип данных: Int

pipeline_sink_dop

  • Описание: Параллелизм приемника для загрузки данных в таблицы Iceberg и таблицы Hive, а также выгрузки данных с использованием INSERT INTO FILES(). Используется для настройки параллельности этих заданий загрузки. Значение по умолчанию: 0, указывающее, что система автоматически настраивает параллелизм. Вы также можете установить эту переменную в значение больше 0.
  • По умолчанию: 0
  • Тип данных: Int

pipeline_profile_level

  • Описание: Контролирует уровень профиля запроса. Профиль запроса часто имеет пять слоев: Fragment, FragmentInstance, Pipeline, PipelineDriver и Operator. Разные уровни предоставляют разные детали профиля:

    • 0: Selena объединяет метрики профиля и показывает только несколько основных метрик.
    • 1: значение по умолчанию. Selena упрощает профиль и объединяет метрики профиля для уменьшения слоев профиля.
    • 2: Selena сохраняет все слои профиля. Размер профиля большой в этом сценарии, особенно когда SQL-запрос сложный. Это значение не рекомендуется.
  • По умолчанию: 1

  • Тип данных: Int

query_cache_entry_max_bytes

  • Описание: Порог для запуска режима Passthrough. Когда количество байтов или строк из результатов вычислений определенного планшета, к которому обращается запрос, превышает порог, указанный query_cache_entry_max_bytes или query_cache_entry_max_rows, запрос переключается в режим Passthrough.
  • Допустимые значения: 0 до 9223372036854775807
  • По умолчанию: 4194304
  • Единица: Байт
  • Введено в: v2.5

query_cache_entry_max_rows

  • Описание: Верхний предел строк, которые могут быть кэшированы. См. описание в query_cache_entry_max_bytes. Значение по умолчанию: .
  • По умолчанию: 409600
  • Введено в: v2.5

query_cache_agg_cardinality_limit

  • Описание: Верхний предел кардинальности для GROUP BY в Query Cache. Query Cache не включается, если строки, сгенерированные GROUP BY, превышают это значение. Значение по умолчанию: 5000000. Если query_cache_entry_max_bytes или query_cache_entry_max_rows установлены в 0, используется режим Passthrough, даже когда не генерируются результаты вычислений из задействованных планшетов.
  • По умолчанию: 5000000
  • Тип данных: Long
  • Введено в: v2.5

query_cache_size (global)

Используется для совместимости с клиентом MySQL. Практического применения нет.

query_cache_type

Используется для совместимости с пулом соединений JDBC C3P0. Практического применения нет.

query_mem_limit

  • Описание: Используется для установки ограничения памяти запроса на каждом узле BE. Значение по умолчанию 0, что означает отсутствие ограничения для него. Этот элемент действует только после включения Pipeline Engine. Когда происходит ошибка Memory Exceed Limit, вы можете попробовать увеличить эту переменную. Установка в 0 указывает, что ограничение не накладывается.
  • По умолчанию: 0
  • Единица: Байт

query_queue_concurrency_limit (global)

  • Описание: Верхний предел одновременных запросов на BE. Действует только после установки больше 0. Установка в 0 указывает, что ограничение не накладывается.
  • По умолчанию: 0
  • Тип данных: Int

query_queue_cpu_used_permille_limit (global)

  • Описание: Верхний предел промилле использования CPU (использование CPU * 1000) на BE. Действует только после установки больше 0. Установка в 0 указывает, что ограничение не накладывается.
  • Диапазон значений: [0, 1000]
  • По умолчанию: 0

query_queue_max_queued_queries (global)

  • Описание: Верхний предел запросов в очереди. Когда этот порог достигнут, входящие запросы отклоняются. Действует только после установки больше 0. Установка в 0 указывает, что ограничение не накладывается.
  • По умолчанию: 1024.

query_queue_mem_used_pct_limit (global)

  • Описание: Верхний предел процента использования памяти на BE. Действует только после установки больше 0. Установка в 0 указывает, что ограничение не накладывается.
  • Диапазон значений: [0, 1]
  • По умолчанию: 0

query_queue_pending_timeout_second (global)

  • Описание: Максимальное время ожидания ожидающего запроса в очереди. Когда этот порог достигнут, соответствующий запрос отклоняется.
  • По умолчанию: 300
  • Единица: Секунда

query_timeout

  • Описание: Используется для установки времени ожидания запроса в "секундах". Эта переменная будет действовать на все операторы запросов в текущем соединении, а также операторы INSERT. Значение по умолчанию 300 секунд.
  • Диапазон значений: [1, 259200]
  • По умолчанию: 300
  • Тип данных: Int
  • Единица: Секунда

range_pruner_max_predicate

  • Описание: Максимальное количество предикатов IN, которые могут использоваться для обрезки разделов Range. Значение по умолчанию: 100. Значение больше 100 может привести к тому, что система будет сканировать все планшеты, что ухудшает производительность запросов.
  • По умолчанию: 100
  • Введено в: v3.0

rewrite_count_distinct_to_bitmap_hll

Используется для решения, переписывать ли запросы count distinct в bitmap_union_count и hll_union_agg.

runtime_filter_on_exchange_node

  • Описание: Размещать ли GRF на Exchange Node после того, как GRF проталкивается через оператор Exchange к оператору нижнего уровня. Значение по умолчанию false, что означает, что GRF не будет размещен на Exchange Node после того, как он проталкивается через оператор Exchange к оператору нижнего уровня. Это предотвращает повторное использование GRF и сокращает время вычислений.

    Однако доставка GRF является процессом "try-best". Если оператор нижнего уровня не может получить GRF, но GRF не размещен на Exchange Node, данные не могут быть отфильтрованы, что ухудшает производительность фильтра. true означает, что GRF все еще будет размещен на Exchange Node даже после того, как он проталкивается через оператор Exchange к оператору нижнего уровня.

  • По умолчанию: false

runtime_join_filter_push_down_limit

  • Описание: Максимальное количество строк, разрешенное для хэш-таблицы, на основе которой генерируется Bloom filter Local RF. Local RF не будет сгенерирован, если это значение превышено. Эта переменная предотвращает генерацию чрезмерно длинного Local RF.
  • По умолчанию: 1024000
  • Тип данных: Int

runtime_profile_report_interval

  • Описание: Интервал времени, с которым сообщаются профили времени выполнения.
  • По умолчанию: 10
  • Единица: Секунда
  • Тип данных: Int
  • Введено в: v3.1.0

scan_olap_partition_num_limit

  • Описание: Количество разделов, разрешенных для сканирования для одной таблицы в плане выполнения.
  • По умолчанию: 0 (Без ограничений)
  • Введено в: v3.3.9

spill_mode (3.0 и позже)

Режим выполнения сброса промежуточных результатов. Допустимые значения:

  • auto: Сброс автоматически запускается при достижении порога использования памяти.
  • force: Selena принудительно выполняет сброс для всех соответствующих операторов, независимо от использования памяти.

Эта переменная действует только когда переменная enable_spill установлена в true.

spill_storage_volume

  • Описание: Том хранилища, с которым вы хотите хранить промежуточные результаты запросов, которые вызвали сброс. Для получения дополнительной информации см. Сброс в объектное хранилище.
  • По умолчанию: Пустая строка
  • Введено в: v3.3.0

SQL_AUTO_IS_NULL

Используется для совместимости с пулом соединений JDBC C3P0. Практического применения нет.

sql_dialect

  • Описание: SQL-диалект, который используется. Например, вы можете выполнить команду set sql_dialect = 'trino'; для установки SQL-диалекта в Trino, чтобы вы могли использовать специфичный для Trino SQL-синтаксис и функции в ваших запросах.

    УВЕДОМЛЕНИЕ

    После настройки Selena для использования диалекта Trino идентификаторы в запросах по умолчанию не чувствительны к регистру. Поэтому вы должны указывать имена в нижнем регистре для ваших баз данных и таблиц при создании базы данных и таблицы. Если вы указываете имена баз данных и таблиц в верхнем регистре, запросы к этим базам данных и таблицам будут неудачными.

  • Тип данных: Selena

  • Введено в: v3.0

sql_mode

Используется для указания SQL-режима для размещения определенных SQL-диалектов. Допустимые значения включают:

  • PIPES_AS_CONCAT: Символ трубы | используется для конкатенации строк, например, select 'hello ' || 'world'.
  • ONLY_FULL_GROUP_BY (По умолчанию): SELECT LIST может содержать только столбцы GROUP BY или агрегатные функции.
  • ALLOW_THROW_EXCEPTION: возвращает ошибку вместо NULL при неудаче преобразования типа.
  • FORBID_INVALID_DATE: запрещает недействительные даты.
  • MODE_DOUBLE_LITERAL: интерпретирует типы с плавающей точкой как DOUBLE, а не DECIMAL.
  • SORT_NULLS_LAST: размещает значения NULL в конце после сортировки.
  • ERROR_IF_OVERFLOW: возвращает ошибку вместо NULL в случае арифметического переполнения. В настоящее время только тип данных DECIMAL поддерживает эту опцию.
  • GROUP_CONCAT_LEGACY: использует синтаксис group_concat v2.5 и ранее. Эта опция поддерживается с v3.0.9 и v3.1.6.

Вы можете установить только один SQL-режим, например:

set sql_mode = 'PIPES_AS_CONCAT';

Или вы можете установить несколько режимов одновременно, например:

set sql_mode = 'PIPES_AS_CONCAT,ERROR_IF_OVERFLOW,GROUP_CONCAT_LEGACY';

sql_safe_updates

Используется для совместимости с клиентом MySQL. Практического применения нет.

sql_select_limit

  • Описание: Используется для ограничения максимального количества строк, возвращаемых запросом, что может предотвратить проблемы, такие как недостаточная память или перегрузка сети, вызванные возвращением слишком большого количества данных запросом.
  • По умолчанию: Неограниченно
  • Тип данных: Long

statistic_collect_parallel

  • Описание: Используется для настройки параллелизма задач сбора статистики, которые могут выполняться на BE. Значение по умолчанию: 1. Вы можете увеличить это значение для ускорения задач сбора.
  • По умолчанию: 1
  • Тип данных: Int

storage_engine

Типы движков, поддерживаемых Selena:

  • olap (по умолчанию): Собственный движок системы Selena.
  • mysql: Внешние таблицы MySQL.
  • broker: Доступ к внешним таблицам через программу брокера.
  • elasticsearch или es: Внешние таблицы Elasticsearch.
  • hive: Внешние таблицы Hive.
  • iceberg: Внешние таблицы Iceberg, поддерживаются с v2.1.
  • hudi: Внешние таблицы Hudi, поддерживаются с v2.2.
  • jdbc: внешняя таблица для баз данных, совместимых с JDBC, поддерживается с v2.3.

streaming_preaggregation_mode

Используется для указания режима предварительной агрегации для первой фазы GROUP BY. Если эффект предварительной агрегации в первой фазе неудовлетворительный, вы можете использовать потоковый режим, который выполняет простую сериализацию данных перед потоковой передачей данных в пункт назначения. Допустимые значения:

  • auto: Система сначала пытается локальную предварительную агрегацию. Если эффект неудовлетворительный, она переключается на потоковый режим. Это значение по умолчанию.
  • force_preaggregation: Система напрямую выполняет локальную предварительную агрегацию.
  • force_streaming: Система напрямую выполняет потоковую передачу.

system_time_zone

Используется для отображения часового пояса текущей системы. Не может быть изменен.

time_zone

Используется для установки часового пояса текущей сессии. Часовой пояс может влиять на результаты определенных временных функций.

trace_log_mode

  • Описание: Используется для контроля того, где выводить логи профилей трассировки запросов. Допустимые значения:

    • command: Возвращать логи профилей трассировки запросов как Explain String после выполнения TRACE LOGS.
    • file: Возвращать логи профилей трассировки запросов в файл лога FE fe.log с именем класса FileLogTracer.
  • По умолчанию: command

  • Тип данных: String

  • Введено в: v3.2.0

transaction_read_only

  • Описание: Используется для совместимости с MySQL 5.8. Псевдоним tx_read_only. Эта переменная указывает режим доступа к транзакции. ON указывает только для чтения, а OFF указывает читаемый и записываемый.
  • По умолчанию: OFF
  • Введено в: v2.5.18, v3.0.9, v3.1.7

tx_isolation

Используется для совместимости с клиентом MySQL. Практического применения нет. Псевдоним transaction_isolation.

use_compute_nodes

  • Описание: Максимальное количество узлов CN, которые могут использоваться. Эта переменная действительна, когда prefer_compute_node=true. Допустимые значения:

    • -1: указывает, что используются все узлы CN.
    • 0: указывает, что узлы CN не используются.
  • По умолчанию: -1

  • Тип данных: Int

  • Введено в: v2.4

use_v2_rollup

Используется для контроля запроса на получение данных с использованием индекса rollup формата хранения segment v2. Эта переменная используется для валидации при переходе в онлайн с segment v2. Не рекомендуется для других случаев.

vectorized_engine_enable (устарела с v2.4)

Используется для контроля того, используется ли векторизованный движок для выполнения запросов. Значение true указывает, что используется векторизованный движок, иначе используется невекторизованный движок. По умолчанию true. Эта функция включена по умолчанию с v2.4 и поэтому устарела.

version (global)

Версия сервера MySQL, возвращаемая клиенту. Значение такое же, как параметр FE mysql_server_version.

version_comment (global)

Версия Selena. Не может быть изменена.

wait_timeout

  • Описание: Количество секунд, которое сервер ждет активности на неинтерактивном соединении перед его закрытием. Если клиент не взаимодействует с Selena в течение этого времени, Selena активно закроет соединение.
  • По умолчанию: 28800 (8 часов).
  • Единица: Секунда
  • Тип данных: Int

orc_use_column_names

  • Описание: Используется для указания того, как сопоставляются столбцы, когда Selena читает файлы ORC из Hive. Значение по умолчанию false, что означает, что столбцы в файлах ORC читаются на основе их порядковых позиций в определении таблицы Hive. Если эта переменная установлена в true, столбцы читаются на основе их имен.
  • По умолчанию: false
  • Введено в: v3.1.10

enable_phased_scheduler

  • Описание: Включать ли многофазное планирование. Когда многофазное планирование включено, оно будет планировать фрагменты в соответствии с их зависимостями. Например, система сначала запланирует фрагмент на стороне сборки Shuffle Join, а затем фрагмент на стороне зондирования (Обратите внимание, что, в отличие от поэтапного планирования, фазовое планирование все еще находится в режиме выполнения MPP). Включение многофазного планирования может значительно уменьшить использование памяти для большого количества запросов UNION ALL.
  • По умолчанию: false
  • Введено в: v3.3

phased_scheduler_max_concurrency

  • Описание: Параллельность для планирования фрагментов листовых узлов фазового планировщика. Например, значение по умолчанию означает, что в большом количестве запросов сканирования UNION ALL одновременно разрешено планировать не более двух фрагментов сканирования.
  • По умолчанию: 2
  • Введено в: v3.3

enable_wait_dependent_event

  • Описание: Ждет ли Pipeline завершения выполнения зависимого оператора перед продолжением в том же фрагменте. Например, в запросе левого соединения, когда эта функция включена, оператор стороны зондирования ждет завершения оператора стороны сборки перед началом выполнения. Включение этой функции может уменьшить использование памяти, но может увеличить задержку запроса. Однако для запросов, повторно используемых в CTE, включение этой функции может увеличить использование памяти.
  • По умолчанию: false
  • Введено в: v3.3

enable_topn_runtime_filter

  • Описание: Включать ли TopN Runtime Filter. Если эта функция включена, runtime filter будет динамически построен для запросов ORDER BY LIMIT и проталкиваться к сканированию для фильтрации.
  • По умолчанию: true
  • Введено в: v3.3

enable_partition_hash_join

  • Описание: Включать ли адаптивный Partition Hash Join.
  • По умолчанию: true
  • Введено в: v3.4

spill_enable_direct_io

  • Описание: Пропускать ли Page Cache при чтении или записи файлов для Spilling. Если эта функция включена, Spilling будет использовать режим прямого I/O для чтения или записи файлов напрямую. Режим прямого I/O может уменьшить влияние на OS Page Cache, но может вызвать увеличение времени чтения/записи диска.
  • По умолчанию: false
  • Введено в: v3.4

spill_enable_compaction

  • Описание: Включать ли Compaction для небольших файлов от Spilling. Когда эта функция включена, она уменьшает использование памяти для агрегации и сортировки.
  • По умолчанию: true
  • Введено в: v3.4