Les variables d'ApsaraDB for SelectDB contrôlent le comportement des requêtes, les paramètres de session et la configuration à l'échelle du cluster. Elles se divisent en deux catégories : celles spécifiques à ApsaraDB for SelectDB et celles compatibles avec le protocole client MySQL.
Fonctionnement des variables
Les variables peuvent être définies à deux niveaux :
Niveau Session : S'applique uniquement à la connexion actuelle. Les paramètres sont réinitialisés à la fin de la session.
Niveau Global : S'applique à la session actuelle ainsi qu'à toutes les sessions suivantes. Seul l'utilisateur admin est autorisé à définir les variables globales.
Lorsque plusieurs niveaux sont configurés, les paramètres s'appliquent selon l'ordre de priorité suivant (du plus élevé au plus faible) :
Variables de session
Propriétés utilisateur
Variables globales
Valeurs par défaut
Si un paramètre de priorité supérieure n'est pas configuré, le niveau suivant s'applique automatiquement.
Consulter les variables
Exécutez SHOW VARIABLES pour lister toutes les variables et leurs valeurs actuelles :
SHOW VARIABLES;
Pour filtrer selon un modèle de nom :
SHOW VARIABLES LIKE '%time_zone%';
Définir les variables
Définir une variable de session
Les variables de session prennent effet immédiatement et s'appliquent uniquement à la connexion actuelle :
SET exec_mem_limit = 137438953472;
SET forward_to_master = true;
SET time_zone = "Asia/Shanghai";
Les variables acceptent également les expressions constantes :
SET exec_mem_limit = 10 * 1024 * 1024 * 1024;
SET forward_to_master = concat('tr', 'u', 'e');
Définir une variable globale
Les variables globales s'appliquent à la session actuelle ainsi qu'à toutes les sessions suivantes :
SET GLOBAL exec_mem_limit = 137438953472;
Seul l'utilisateur admin peut définir les variables globales.
Les variables suivantes prennent en charge à la fois les niveaux session et global :
time_zonewait_timeoutsql_modeenable_profilequery_timeoutinsert_timeoutexec_mem_limitbatch_sizeallow_partition_column_nullableinsert_visible_timeout_msenable_fold_constant_by_be
Les variables suivantes prennent en charge uniquement le niveau global :
default_rowset_typedefault_password_lifetimepassword_historyvalidate_password_policy
Remplacer une variable pour une seule requête
Utilisez l'indicateur SET_VAR pour définir une variable de session pour une instruction unique sans modifier l'état de la session :
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);
Les commentaires doivent commencer par /*+ et suivre l'instruction SELECT.
Variables de fuseau horaire
ApsaraDB for SelectDB propose deux variables de fuseau horaire :
| Variable | Description | Modifiable |
|---|---|---|
system_time_zone |
Fuseau horaire système du cluster. Défini automatiquement au démarrage du serveur, en fonction du fuseau horaire du système d'exploitation du serveur. | Non |
time_zone |
Fuseau horaire actuel du cluster. Affecte les fonctions temporelles et les données importées comportant des décalages de fuseau horaire. | Oui |
Consulter et définir les variables de fuseau horaire
Pour afficher les deux variables de fuseau horaire :
SHOW VARIABLES LIKE '%time_zone%';
Pour définir le fuseau horaire de la session :
SET time_zone = 'Asia/Shanghai';
Pour définir le fuseau horaire du cluster pour toutes les sessions suivantes :
SET GLOBAL time_zone = 'Asia/Shanghai';
Formats de fuseau horaire pris en charge
| Type de format | Exemples |
|---|---|
| Nommé (base de données IANA tz) | Asia/Shanghai, America/Los_Angeles |
| Décalage UTC | +02:30, -10:00 |
| Abréviations | GMT, UTC (équivalent à +00:00) ; CST (équivalent à Asia/Shanghai) |
| Zulu | Z (équivalent à +00:00) |
Certaines méthodes d'importation de données peuvent accepter des formats de fuseau horaire supplémentaires non répertoriés ci-dessus. Évitez d'utiliser des formats non standard en production, car ApsaraDB for SelectDB peut modifier leur gestion à tout moment.
Impact des paramètres de fuseau horaire sur les fonctions et les données
Fonctions concernées
Les fonctions suivantes renvoient des résultats basés sur le paramètre time_zone actuel :
| Fonction | Comportement |
|---|---|
FROM_UNIXTIME |
Convertit un horodatage UTC en date et heure selon le fuseau horaire configuré. Avec CST, FROM_UNIXTIME(0) renvoie 1970-01-01 08:00:00. |
UNIX_TIMESTAMP |
Convertit une date et une heure en horodatage UTC. Avec CST, UNIX_TIMESTAMP('1970-01-01 08:00:00') renvoie 0. |
CURTIME |
Renvoie l'heure actuelle selon le fuseau horaire configuré. |
NOW |
Renvoie la date et l'heure actuelles selon le fuseau horaire configuré. |
CONVERT_TZ |
Convertit une date et une heure d'un fuseau horaire à un autre. |
La sortie des commandes SHOW LOAD et SHOW BACKENDS reflète également le fuseau horaire configuré.
Non affecté par les paramètres de fuseau horaire :
Les valeurs
less thandes colonnes de clé de partition de type temporel dansCREATE TABLELes valeurs stockées sous le type
DATEouDATETIME(la valeur stockée elle-même ne change pas)
Données de type temporel lors de l'importation
Lors de l'importation de données de type DATE, DATEV2, DATETIME ou DATETIMEV2, ApsaraDB for SelectDB gère la conversion de fuseau horaire comme suit :
Données avec un suffixe de fuseau horaire (par exemple,
2020-12-12 12:12:12+08:00) : Converties vers letime_zoneactuel du cluster. Par exemple, sitime_zoneest défini sur+00:00, la valeur stockée devient2020-12-12 04:12:12.Données sans suffixe de fuseau horaire (par exemple,
2020-12-12 12:12:12) : Traitées comme une heure absolue — importées telles quelles sans conversion.
Heure d'été
Les ajustements liés à l'heure d'été sont intégrés aux fuseaux horaires nommés. Par exemple, America/Los_Angeles passe de -08:00 à -07:00 en mars, puis revient en novembre.
Pour éviter les changements liés à l'heure d'été, définissez time_zone sur un décalage UTC fixe (par exemple, -08:00) plutôt que sur un fuseau nommé comme America/Los_Angeles.
Sources de données de fuseau horaire
Sur chaque nœud backend (BE), ApsaraDB for SelectDB recherche les données de fuseau horaire aux emplacements suivants, dans l'ordre :
Le répertoire renvoyé par la commande
TZDIR/usr/share/zoneinfoLe répertoire
zoneinfodans le répertoire de déploiement du BE
Si aucune donnée de fuseau horaire n'est trouvée à aucun emplacement, le nœud BE ne démarre pas.
Bonnes pratiques
Données sensibles au fuseau horaire
Avant d'importer des données, décidez comment gérer les informations de fuseau horaire de manière cohérente. Les données de types temporels tels que DATETIME ne stockent pas de fuseau horaire. ApsaraDB for SelectDB distingue deux catégories :
Heure absolue : Aucun fuseau horaire dans les données, aucun fuseau horaire configuré au moment de l'importation. Exemple : 2023-12-12 08:00:00. Stockée et interrogée telle quelle, sans être affectée par time_zone.
Heure dans un fuseau horaire spécifique : Les données incluent un suffixe de fuseau horaire. Exemple : 2020-12-12 12:12:12+02:00. La méthode d'importation détermine quel paramètre de fuseau horaire s'applique :
INSERT INTO: Régie par la variable de sessiontime_zone.Stream Load ou Broker Load : Régis par l'en-tête de requête
timezone. Si l'en-têtetimezoneentre en conflit avec la variable de sessiontime_zone, l'en-têtetimezonea la priorité.
ApsaraDB for SelectDB convertit le fuseau horaire littéral présent dans les données entrantes vers le fuseau horaire configuré par time_zone au moment de l'importation.
Approche recommandée : Définissez time_zone une fois avant l'importation, puis maintenez-le constant. Modifier time_zone après avoir importé des données conscientes du fuseau horaire entraîne une interprétation erronée des valeurs stockées lors des requêtes suivantes.
L'exemple suivant illustre ce qui se produit lorsque time_zone est modifié en cours de session :
-- Current time zone: Asia/Hong_Kong
SELECT @@time_zone;
-- +----------------+
-- | @@time_zone |
-- +----------------+
-- | Asia/Hong_Kong |
-- +----------------+
-- Import data with literal time zone +02:00
-- Stored as 2020-12-12 18:12:12 (converted to 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 |
-- +-------------------------+
-- Changing time_zone does not update stored values
SET time_zone = 'America/Los_Angeles';
-- A second import now uses America/Los_Angeles for conversion
INSERT INTO dtv23 VALUES('2020-12-12 12:12:12+02:00');
SELECT * FROM dtv23;
-- Rows now carry inconsistent time zone semantics
-- +-------------------------+
-- | k0 |
-- +-------------------------+
-- | 2020-12-12 02:12:12.000 | -- imported under America/Los_Angeles
-- | 2020-12-12 18:12:12.000 | -- imported under Asia/Hong_Kong
-- +-------------------------+
Résumé des bonnes pratiques relatives au fuseau horaire :
Vérifiez le
time_zonedu cluster avant d'importer les données et ne le modifiez pas par la suite.Lors de l'utilisation de Stream Load ou Broker Load, définissez l'en-tête
timezonesur la même valeur que la variable de sessiontime_zone.Pour les données d'heure absolue, importez sans suffixe de fuseau horaire. Pour les données conscientes du fuseau horaire, incluez le suffixe de fuseau horaire et laissez ApsaraDB for SelectDB gérer la conversion.
Précision de l'heure d'été
Les données de fuseau horaire nommé (y compris les dates de début et de fin de l'heure d'été) sont maintenues par l'Internet Assigned Numbers Authority (IANA). Les données stockées sur chaque nœud BE peuvent ne pas refléter les modifications les plus récentes confirmées par l'IANA pour l'année en cours.
Si votre charge de travail nécessite le calendrier d'heure d'été le plus récent, assurez-vous que la source de données de fuseau horaire sur chaque nœud BE contient la dernière version de la base de données IANA tz. Pour obtenir les dernières données, consultez The tz-announce Archives.
Paramètres de délai d'expiration
ApsaraDB for SelectDB prend en charge la configuration des délais d'expiration à plusieurs niveaux à l'aide des variables query_timeout et insert_timeout ainsi que des propriétés utilisateur.
Priority order (highest to lowest): Variables de session > Propriétés utilisateur > Variables globales > Valeurs par défaut
| Variable | Niveau | Par défaut | Description |
|---|---|---|---|
query_timeout |
Session, Global, Propriété utilisateur | 900 s (15 min) | Contrôle le délai d'expiration pour toutes les instructions de requête. |
insert_timeout |
Session, Global, Propriété utilisateur | 14400 s (4 h) | Contrôle spécifiquement le délai d'expiration pour les instructions INSERT. Lors de l'exécution d'une instruction INSERT, c'est la valeur la plus longue entre query_timeout et insert_timeout qui s'applique. |
Propriétés utilisateur pour le délai d'expiration :
Les propriétés utilisateur
query_timeoutetinsert_timeoutne peuvent être définies que par l'utilisateur admin pour un utilisateur spécifique.Ces propriétés n'ont pas de sémantique de quota — elles modifient le délai d'expiration par défaut pour l'utilisateur spécifié.
Les modifications apportées aux propriétés utilisateur prennent effet après la reconnexion du client.
Annexe
Variables prises en charge
Variables booléennes
Les variables booléennes activent ou désactivent une fonctionnalité. Valeurs valides : true et false.
| Variable | Par défaut | Description |
|---|---|---|
delete_without_partition |
false | Lorsque la valeur est true, une instruction DELETE sans clause de partition s'applique automatiquement à toutes les partitions. Cela prolonge la durée de l'opération DELETE et génère un grand nombre de tâches. Laissez cette option désactivée sauf si nécessaire. |
disable_colocate_join |
false | Lorsque la valeur est true, désactive la fonctionnalité Colocation Join. Le plan d'exécution n'essaie pas d'effectuer des opérations Colocation Join. |
enable_bucket_shuffle_join |
true | Lorsque la valeur est false, désactive la fonctionnalité Bucket Shuffle Join. Le plan d'exécution n'essaie pas d'effectuer des opérations Bucket Shuffle Join. |
disable_streaming_preaggregations |
false | Lorsque la valeur est true, désactive la pré-agrégation en flux continu. Cette variable ne peut pas être modifiée. |
enable_insert_strict |
false | Lorsque la valeur est true, active le mode strict pour les importations de données via l'instruction INSERT. |
enable_spilling |
false | Lorsque la valeur est true, active le tri sur disque pour les grands ensembles de données. Les données temporaires sont écrites dans le répertoire doris-scratch/ sur le BE et supprimées une fois la requête terminée. Cette fonctionnalité est expérimentale — ne l'activez pas en production. |
forward_to_master |
true | Lorsque la valeur est true, transfère certaines instructions SHOW vers le nœud FE maître pour exécution. Le nœud FE maître renvoie des informations plus détaillées pour SHOW FRONTENDS, SHOW BACKENDS, SHOW BROKER, SHOW TABLET, SHOW REPLICA DISTRIBUTION, SHOW REPLICA STATUS et SHOW PROC. |
enable_profile |
false | Lorsque la valeur est true, envoie le profil de requête au FE après chaque requête. Consultez les profils à l'adresse fe_host:fe_http_port/query. La page affiche les 100 requêtes les plus récentes après l'activation de cette variable. |
rewrite_count_distinct_to_bitmap_hll |
true | Lorsque la valeur est true, remplace COUNT DISTINCT par BITMAP_UNION_COUNT ou HLL_UNION_AGG pour les données bitmap ou HyperLogLog (HLL). |
allow_partition_column_nullable |
true | Lorsque la valeur est true, les colonnes de clé de partition peuvent être définies comme NULL. Lorsque la valeur est false, les colonnes de clé de partition doivent être NOT NULL. |
enable_exchange_node_parallel_merge |
false | Lorsque la valeur est true, le nœud d'échange utilise plusieurs threads pour fusionner les données triées en parallèle, réduisant ainsi les goulets d'étranglement liés à la fusion monothread lors des grandes opérations de tri. |
extract_wide_range_expr |
false | Lorsque la valeur est true, active l'extraction de facteurs communs étendus. |
enable_fold_constant_by_be |
false | Lorsque la valeur est true, le pliage de constantes est effectué sur le BE via des appels de procédure distante (RPC). Lorsque la valeur est false, le pliage de constantes s'exécute sur le FE. |
disable_join_reorder |
false | Lorsque la valeur est true, désactive tous les algorithmes automatiques de réorganisation des jointures (Join Reorder). Les opérations JOIN suivent l'ordre des tables dans l'instruction SQL. |
enable_infer_predicate |
true | Lorsque la valeur est true, active la dérivation de prédicats. Lorsque la valeur est false, ApsaraDB for SelectDB utilise le prédicat original sans dérivation. |
trim_tailing_spaces_for_external_table_query |
false | Lorsque la valeur est true, supprime les espaces de fin des champs lors de l'interrogation des tables externes Hive. |
enable_inverted_index_query |
true | Lorsque la valeur est true, les index inversés sont utilisés dans les requêtes. |
skip_missing_version |
false | Lorsque la valeur est true, les requêtes ignorent la version visible enregistrée sur le FE et utilisent la version du réplica BE à la place, en ignorant les versions manquantes. À utiliser uniquement dans les scénarios de récupération d'urgence des données. Cette variable prend effet uniquement lorsque use_fix_replica est défini sur -1. |
enable_parquet_lazy_materialization |
true | Lorsque la valeur est true, active la matérialisation tardive pour Parquet Reader. |
enable_orc_lazy_materialization |
true | Lorsque la valeur est true, active la matérialisation tardive pour ORC Reader. |
enable_strong_consistency_read |
true | Lorsque la valeur est true, active la forte cohérence pour les lectures de données entre les sessions. Par défaut, la forte cohérence est maintenue uniquement au sein de la même session. Si vous souhaitez activer la forte cohérence pour les lectures de données entre les sessions, définissez cette variable sur true. |
truncate_char_or_varchar_columns |
false | Lorsque la valeur est true, tronque les colonnes CHAR et VARCHAR à la longueur maximale définie dans le schéma de la table, même si le fichier Parquet ou ORC sous-jacent utilise une longueur différente. |
jdbc_clickhouse_query_final |
false | Lorsque la valeur est true, ajoute le mot-clé FINAL aux requêtes ClickHouse effectuées via la fonctionnalité JDBC Catalog, pour la déduplication avec le moteur de table ReplacingMergeTree. |
enable_memtable_on_sink_node |
false | Lorsque la valeur est true, crée une table en mémoire sur le nœud Data Sink lors de l'importation et envoie les segments aux autres nœuds BE via le streaming bRPC, réduisant ainsi le travail redondant entre les réplicas. |
enable_unique_key_partial_update |
false | Lorsque la valeur est true, active la sémantique de mise à jour partielle des colonnes pour INSERT INTO sur les tables du modèle Unique Key utilisant le mode Merge on Write (MOW). Si enable_unique_key_partial_update et enable_insert_strict sont tous deux définis sur true, INSERT INTO ne peut mettre à jour que les lignes existantes. Pour insérer de nouvelles lignes avec des mises à jour partielles des colonnes, définissez enable_unique_key_partial_update sur true et enable_insert_strict sur false. |
describe_extend_variant_column |
false | Lorsque la valeur est true, affiche les sous-colonnes pour les colonnes de type VARIANT dans la sortie de DESCRIBE. |
dry_run_query |
false | Lorsque la valeur est true, renvoie uniquement le nombre de lignes au lieu du jeu de résultats réel. Le nœud Data Sink supprime les données au lieu de les écrire. Utile pour tester de grands ensembles de données sans la surcharge liée à la transmission des résultats. |
drop_table_if_ctas_failed |
true | Lorsque la valeur est true, supprime la table créée si CREATE TABLE AS SELECT échoue en raison d'une erreur d'écriture. |
show_user_default_role |
false | Lorsque la valeur est true, inclut le rôle implicite de chaque utilisateur dans la sortie de SHOW ROLES. |
group_by_and_having_use_alias_first |
false | Lorsque la valeur est true, les clauses GROUP BY et HAVING résolvent les alias de colonne avant de rechercher dans la clause FROM. |
enable_file_cache |
false | Lorsque la valeur est true, active le cache de fichiers blocs. Cette variable prend effet uniquement si enable_file_cache=true est également défini dans le fichier be.conf du BE. |
enable_auto_analyze |
true | Lorsque la valeur est true, active la collecte automatique des statistiques. |
enable_cost_based_join_reorder |
false | Lorsque la valeur est true, active la réorganisation des jointures basée sur le coût pour ajuster automatiquement l'ordre des tables dans les opérations JOIN. |
enable_fallback_to_original_planner |
false | Lorsque la valeur est true, revient automatiquement à l'optimiseur d'origine lorsque le nouvel optimiseur rencontre des scénarios non pris en charge. |
enable_odbc_transcation |
false | Lorsque la valeur est true, active la prise en charge des transactions pour l'écriture de données dans un JDBC Catalog. |
enable_parallel_outfile |
false | Lorsque la valeur est true, active l'analyse parallèle pour SELECT INTO OUTFILE. |
enable_sql_cache |
false | Lorsque la valeur est true, active la mise en cache des résultats des instructions SQL. |
enable_unicode_name_support |
false | Lorsque la valeur est true, prend en charge les noms de table et de colonne contenant des caractères Unicode (y compris le chinois). |
enable_vectorized_engine |
true | Lorsque la valeur est true, active le moteur vectorisé pour accélérer les requêtes. |
experimental_enable_nereids_planner |
true | Lorsque la valeur est true, active le nouvel optimiseur (Nereids). Cette fonctionnalité est expérimentale. |
experimental_enable_pipeline_engine |
true | Lorsque la valeur est true, active le moteur d'exécution Pipeline. Cette fonctionnalité est expérimentale. |
experimental_enable_single_replica_insert |
false | Lorsque la valeur est true, sélectionne un réplica comme principal pour l'importation des données. Les autres réplicas extraient les fichiers de données depuis le principal une fois l'écriture terminée, réduisant ainsi le calcul redondant entre les réplicas. |
faster_float_convert |
false | Lorsque la valeur est true, utilise un algorithme de conversion de nombres à virgule flottante plus rapide. Notez que cet algorithme peut modifier le format de sortie. |
enable_page_cache |
true | Lorsque la valeur est true, active le cache au niveau des pages. |
strict_mode |
false | Lorsque la valeur est true, active le mode strict pour l'importation de données. |
Variables de configuration
Les variables de configuration acceptent une plage de valeurs au-delà d'un simple true/false.
| Variable | Par défaut | Description | |
|---|---|---|---|
auto_broadcast_join_threshold |
0.8 | Le ratio maximal de la mémoire de la table de hachage par rapport à la mémoire d'exécution globale autorisé pour Broadcast Join. Lorsque la table de hachage dépasse ce ratio, ApsaraDB for SelectDB bascule vers Shuffle Join. Définissez sur -1 pour désactiver complètement la diffusion. Utilisez un indicateur de requête tel que join[shuffle] pour contrôler explicitement la méthode de jointure. |
|
batch_size |
1024 | Le nombre de lignes par paquet transmis entre les nœuds lors d'une requête. Des valeurs plus élevées augmentent le débit pour les analyses volumineuses, mais peuvent accroître la latence et l'utilisation de la mémoire pour les petites requêtes. Plage recommandée : 1024–4096. | |
default_order_by_limit |
-1 | Le nombre par défaut de lignes renvoyées après ORDER BY. -1 signifie aucune limite (jusqu'à la valeur maximale LONG). |
|
exec_mem_limit |
2 GB | La mémoire maximale pour une seule requête. Accepte les unités : octets (par défaut), KB, MB, GB, TB, PB. Limite la mémoire par instance de fragment — et non la mémoire totale de la requête à travers le cluster. Si une erreur Memory Exceed Limit se produit, augmentez cette valeur de manière exponentielle (4 GB, 8 GB, 16 GB). |
|
lower_case_table_names |
0 | Contrôle la sensibilité à la casse des noms de table. 0 : Sensible à la casse. 1 : Insensible à la casse ; les noms sont stockés et comparés en minuscules. 2 : Insensible à la casse ; les noms sont stockés tels que spécifiés dans CREATE TABLE mais comparés en minuscules. Doit être défini dans fe.conf lors de l'initialisation du cluster et ne peut pas être modifié par la suite avec SET. |
|
max_pushdown_conditions_per_column |
-1 | Le nombre maximal de conditions de prédicat poussées vers le moteur de stockage par colonne. -1 utilise la valeur de be.conf. Une valeur positive remplace be.conf pour la session actuelle. |
|
max_scan_key_num |
-1 | Le nombre maximal de clés d'analyse qu'un nœud d'analyse peut diviser par requête. -1 utilise la valeur de be.conf. Une valeur positive remplace be.conf pour la session actuelle. |
|
parallel_exchange_instance_num |
-1 | Le nombre de nœuds d'échange qu'un nœud amont utilise pour recevoir des données des nœuds aval. -1 correspond au nombre d'instances aval. Une valeur positive inférieure au nombre d'instances aval limite le nombre de nœuds d'échange, ce qui est utile pour réduire la surcharge dans les requêtes d'agrégation avec une petite sortie agrégée. |
|
analyze_timeout |
43200 s | Le délai d'expiration pour les instructions ANALYZE, en secondes. |
|
auto_analyze_end_time |
— | L'heure de fin de la fenêtre de collecte automatique des statistiques. | |
auto_analyze_start_time |
— | L'heure de début de la fenêtre de collecte automatique des statistiques. | |
auto_analyze_table_width_threshold |
70 | Les tables comportant plus de colonnes que ce seuil sont exclues de la collecte automatique des statistiques. | |
div_precision_increment |
4 | Le nombre de décimales supplémentaires ajoutées au résultat des opérations de division /. |
|
external_agg_bytes_threshold |
— | Le seuil de mémoire pour les opérations d'agrégation. Lorsqu'il est dépassé, les données en mémoire sont vidées sur le disque. | |
external_sort_bytes_threshold |
— | Le seuil de mémoire pour les opérations de tri. Lorsqu'il est dépassé, les données en mémoire sont vidées sur le disque. | |
external_table_auto_analyze_interval_in_millis |
86400000 ms | L'intervalle minimal entre les collectes automatiques de statistiques pour les tables externes. | |
fragment_transmission_compression_codec |
lz4 | Le format de compression utilisé lors de la transmission des données entre les nœuds. | |
huge_table_auto_analyze_interval_in_millis |
0 | L'intervalle minimal entre les collectes automatiques de statistiques pour les grandes tables (plus de 5 fois la taille spécifiée par huge_table_lower_bound_size_in_bytes). |
|
huge_table_default_sample_rows |
4194304 | Le nombre de lignes échantillonnées pour les grandes tables lors de la collecte automatique des statistiques. | |
huge_table_lower_bound_size_in_bytes |
0 | Les tables plus grandes que ce seuil sont échantillonnées lors de la collecte automatique des statistiques. | |
ignore_runtime_filter_ids |
(vide) | IDs de filtre d'exécution à ignorer. | |
max_filter_ratio |
0 | Le ratio maximal de lignes pouvant être filtrées lors de l'importation (par exemple, les lignes qui échouent à la validation). | |
max_instance_num |
64 | Le nombre maximal de tâches Pipeline concurrentes par requête SQL lorsque parallel_pipeline_task_num n'est pas défini. |
|
parallel_pipeline_task_num |
0 | Le nombre de tâches Pipeline concurrentes par requête SQL. Lorsque la valeur est 0, ApsaraDB for SelectDB définit ce paramètre sur la moitié du nombre de cœurs CPU sur chaque nœud BE, jusqu'à max_instance_num. |
|
runtime_filter_type |
IN ou filtre Bloom | Le type de filtre d'exécution utilisé. Options : filtre Bloom, filtre MinMax, prédicat IN, IN ou filtre Bloom, filtre bitmap. | |
runtime_filter_mode |
GLOBAL | La politique de pushdown pour les filtres d'exécution. Options : OFF, LOCAL, GLOBAL. |
|
runtime_filter_wait_time_ms |
1000 ms | La durée pendant laquelle le nœud d'analyse de la table de gauche attend chaque filtre d'exécution. | |
runtime_filters_max_num |
10 | Le nombre maximal de filtres Bloom par requête. | |
runtime_bloom_filter_min_size |
1048576 octets (1 Mo) | La taille minimale d'un filtre Bloom. | |
runtime_bloom_filter_max_size |
16777216 octets (16 Mo) | La taille maximale d'un filtre Bloom. | |
runtime_bloom_filter_size |
2097152 octets (2 Mo) | La taille par défaut d'un filtre Bloom. | |
runtime_filter_max_in_num |
1024 | Le nombre maximal de lignes dans la table de droite pour lesquelles un prédicat IN peut être généré. | |
parallel_fragment_exec_instance_num |
1 | Le nombre d'instances traitant les plages d'analyse sur chaque nœud BE. L'augmentation de cette valeur améliore le débit pour les grandes requêtes, mais augmente l'utilisation du CPU, de la mémoire et des E/S disque. | |
query_timeout |
900 s | Le délai d'expiration pour toutes les instructions de requête dans la connexion actuelle. Pour les instructions INSERT, utilisez plutôt insert_timeout. |
|
insert_timeout |
14400 s | Le délai d'expiration pour les instructions INSERT. Si insert_timeout est inférieur à query_timeout, query_timeout s'applique à la place (pour la rétrocompatibilité). |
|
send_batch_parallelism |
— | La concurrence par défaut pour les envois de données par lots lors des opérations INSERT. Plafonnée à l'élément de configuration BE max_send_batch_parallelism_per_job. |
|
sql_mode |
— | Contrôle la compatibilité de la syntaxe SQL et la rigueur de la validation des données. Voir SQL Mode. | |
sql_select_limit |
(aucune limite) | Le nombre maximal par défaut de lignes renvoyées par SELECT, y compris SELECT au sein de INSERT. |
|
time_zone |
Valeur de system_time_zone |
Le fuseau horaire de la session actuelle. Affecte les résultats des fonctions temporelles. Voir Variables de fuseau horaire. | |
wait_timeout |
28800 s (8 h) | Le délai d'expiration de la connexion inactive. ApsaraDB for SelectDB ferme les connexions inactives depuis plus longtemps que cette période. | |
default_rowset_type |
beta | Le format de stockage par défaut pour les nœuds de calcul. Valeurs valides : alpha, beta. |
|
use_v2_rollup |
— | Contrôle si les requêtes utilisent les index ROLLUP au format Segment V2. Utilisé pour la vérification lors de la migration vers Segment V2. | |
prefer_join_method |
— | La méthode de jointure préférée lorsque Broadcast Join et Shuffle Join ont un coût égal. Valeurs valides : broadcast, shuffle. |
|
insert_visible_timeout_ms |
10000 ms | Le temps pendant lequel ApsaraDB for SelectDB attend que la transaction soit validée et que les données deviennent visibles après la fin d'une instruction INSERT. Valeur minimale : 1000 ms. |
|
cpu_resource_limit |
-1 (aucune limite) | Limite le nombre de threads d'analyse qu'une requête peut utiliser sur un seul nœud. Remplace parallel_fragment_exec_instance_num. Remplacé par la propriété utilisateur cpu_resource_limit. Cette fonctionnalité est expérimentale. |
|
return_object_data_as_binary |
— | Lorsque la valeur est true, renvoie les données bitmap et HLL au format binaire dans les résultats SELECT. Pour SELECT INTO OUTFILE, la sortie CSV encode en Base64 ; la sortie Parquet stocke sous forme de tableau d'octets. Exemple en Java : stmt.execute("set return_object_data_as_binary=true");. Pour plus d'informations, voir samples. |
|
block_encryption_mode |
NULL | Le mode de chiffrement par bloc. AES_128_ECB utilise l'algorithme Advanced Encryption Standard (AES). SM4_128_ECB utilise l'algorithme ShangMi 4 (SM4). Voir la description de la variable pour la liste complète des modes pris en charge. |
|
default_password_lifetime |
0 (n'expire jamais) | La période d'expiration par défaut du mot de passe en jours. S'applique uniquement aux utilisateurs ayant la politique PASSWORD_EXPIRE DEFAULT. |
|
password_history |
0 (aucune limite) | Le nombre de mots de passe précédents conservés. S'applique uniquement aux utilisateurs ayant la politique PASSWORD_HISTORY DEFAULT. |
|
validate_password_policy |
NONE (0) | La politique de force du mot de passe. STRONG (2) exige des mots de passe d'au moins 8 caractères contenant au moins 3 des éléments suivants : lettres majuscules, lettres minuscules, chiffres et caractères spéciaux (`~ ! @ # $ % ^ & * ( ) _ + |
< > , . ? / : ; ' [ ] { } "`). |
rewrite_or_to_in_predicate_threshold |
2 | Le nombre minimal d'opérateurs OR avant la réécriture en prédicat IN. |
|
file_cache_base_path |
random | Le chemin de stockage pour le cache de fichiers blocs sur le BE. Par défaut, un chemin sélectionné aléatoirement à partir de la configuration du BE. | |
topn_opt_limit_threshold |
1024 | Le seuil de la clause LIMIT pour activer les optimisations de requête top-N (filtrage dynamique, récupération des résultats en deux phases, lectures ordonnées par clé). Les optimisations s'appliquent lorsque n <= threshold. |
|
use_fix_replica |
-1 (désactivé) | Lorsqu'il est défini sur 0 ou plus, utilise toujours le réplica avec ce rang de numéro de série (0 = le plus petit). |
Variables compatibles et réservées
Ces variables n'ont aucun effet fonctionnel dans ApsaraDB for SelectDB. Elles existent pour assurer la compatibilité avec les clients MySQL ou les pools de connexions JDBC.
| Variable | Objectif |
|---|---|
SQL_AUTO_IS_NULL |
Compatibilité avec le pool de connexions JDBC c3p0. |
auto_increment_increment |
Compatibilité client MySQL. N'affecte pas le comportement des colonnes à incrémentation automatique. |
auto_increment_offset |
Compatibilité client MySQL. N'affecte pas le comportement des colonnes à incrémentation automatique. |
autocommit |
Compatibilité client MySQL. |
character_set_client |
Compatibilité client MySQL. |
character_set_connection |
Compatibilité client MySQL. |
character_set_results |
Compatibilité client MySQL. |
character_set_server |
Compatibilité client MySQL. |
collation_connection |
Compatibilité client MySQL. |
collation_database |
Compatibilité client MySQL. |
collation_server |
Compatibilité client MySQL. |
have_query_cache |
Compatibilité client MySQL. |
init_connect |
Compatibilité client MySQL. |
interactive_timeout |
Compatibilité client MySQL. |
language |
Compatibilité client MySQL. |
max_allowed_packet |
Compatibilité avec le pool de connexions JDBC c3p0. |
net_buffer_length |
Compatibilité client MySQL. |
net_read_timeout |
Compatibilité client MySQL. |
net_write_timeout |
Compatibilité client MySQL. |
query_cache_size |
Compatibilité client MySQL. |
query_cache_type |
Compatibilité avec le pool de connexions JDBC c3p0. |
sql_safe_updates |
Compatibilité client MySQL. |
tx_isolation |
Compatibilité client MySQL. |
tx_read_only |
Compatibilité client MySQL. |
transaction_read_only |
Compatibilité client MySQL. |
transaction_isolation |
Compatibilité client MySQL. |
version |
Compatibilité client MySQL. |
performance_schema |
Compatibilité avec MySQL JDBC 8.0.16 et versions ultérieures. |
codegen_level |
Définit le niveau de génération de code LLVM. Sans effet. |
license |
Affiche la licence d'ApsaraDB for SelectDB. |
resource_group |
Réservé. |
system_time_zone |
Défini sur le fuseau horaire système lors de l'initialisation du cluster. Ne peut pas être modifié. |
version_comment |
Affiche la version d'ApsaraDB for SelectDB. Ne peut pas être modifié. |
dump_nereids_memo |
Utilisé pour les tests de régression. |
group_concat_max_len |
Compatibilité avec certains outils de business intelligence (BI). |
be_number_for_test |
Aucun effet pratique. |
workload_group |
Réservé. |
Références
The tz-announce Archives — Dernières versions de la base de données des fuseaux horaires IANA