Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

paramètres de session aggregate_*

Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.

aggregate_function_input_format

Type
AggregateFunctionInputFormat
Par défaut
state
Historique des versions
VersionValeur par défautCommentaire
25.12stateNouveau paramètre permettant de contrôler le format d'entrée d'AggregateFunction lors des opérations INSERT. La valeur du paramètre est définie sur state par défaut

Format de l'entrée d'AggregateFunction lors des opérations INSERT.

Valeurs possibles :

  • state — Chaîne binaire contenant l'état sérialisé (par défaut). Il s'agit du comportement par défaut, dans lequel les valeurs AggregateFunction sont attendues sous forme de données binaires.
  • value — Le format attend une seule valeur pour l'argument de la fonction d'agrégation ou, en cas d'arguments multiples, un tuple de ces valeurs. Elles seront désérialisées à l'aide de l'IDataType ou du DataTypeTuple correspondant, puis agrégées pour former l'état.
  • array — Le format attend un Array de valeurs, comme décrit ci-dessus pour l'option value. Tous les éléments du tableau seront agrégés pour former l'état.

Exemples

Pour une table de structure :

CREATE TABLE example (
    user_id UInt64,
    avg_session_length AggregateFunction(avg, UInt32)
);

Avec aggregate_function_input_format = 'value' :

INSERT INTO example FORMAT CSV
123,456

Avec aggregate_function_input_format = 'array' :

INSERT INTO example FORMAT CSV
123,"[456,789,101]"

Remarque : les formats value et array sont plus lents que le format state, qui est le format par défaut, car ils nécessitent de créer et d’agréger des valeurs lors de l’insertion.

aggregate_functions_null_for_empty

Type
Bool
Par défaut
0

Active ou désactive la réécriture de toutes les fonctions d’agrégation d’une requête, en leur ajoutant le suffixe -OrNull. Activez ce paramètre pour assurer la compatibilité avec la norme SQL. Cette fonctionnalité est implémentée via une réécriture de requête (semblable au paramètre count_distinct_implementation) afin d’obtenir des résultats cohérents pour les requêtes distribuées.

Valeurs possibles :

  • 0 — Désactivé.
  • 1 — Activé.

Exemple

Considérez la requête suivante avec des fonctions d’agrégation :

SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;

Avec aggregate_functions_null_for_empty = 0, on obtiendrait :

┌─SUM(-1)─┬─MAX(0)─┐
│       0 │      0 │
└─────────┴────────┘

Avec aggregate_functions_null_for_empty = 1, le résultat serait :

┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│          NULL │         NULL │
└───────────────┴──────────────┘
Navigation