enable_adaptive_codec_selection), qui peut choisir un codec par bloc pour les colonnes utilisant le codec par défaut.
La sélection de codec_block_counts lit les fichiers de données .bin, et non uniquement les métadonnées. Les autres colonnes ne contiennent que des métadonnées.
Les parties de données qui n’enregistrent pas leurs sous-flux dans columns_substreams.txt ne sont pas répertoriées.
Chaque valeur indiquée est dérivée des données de la table ; la lecture de n’importe quelle colonne du résultat requiert donc le privilège SELECT sur toutes les colonnes de la table. Un grant ne couvrant qu’une partie des colonnes est insuffisant. Ce privilège est également requis pour résoudre la structure de la fonction, par exemple via DESCRIBE. Un utilisateur qui n’est pas autorisé à voir la table du tout, c’est-à-dire qui ne dispose pas du privilège SHOW TABLES sur celle-ci, obtient ACCESS_DENIED qu’elle existe ou non ; la fonction n’indique donc pas à un tel utilisateur quelles tables existent.
Si une politique de lignes s’applique à la table pour l’utilisateur courant, la lecture de codec_block_counts génère ACCESS_DENIED, car les décomptes incluraient des lignes masquées par la politique. Les autres colonnes restent lisibles ; system.parts_columns les indique indépendamment des politiques de lignes.
Syntaxe
Arguments
Valeur renvoyée
Un objet table comportant une ligne par (partie active, colonne, sous-flux) de la table source :part_name(String) — La partie de données active à laquelle appartient la colonne.column(String) — Le nom de la colonne.substream(String) — Le flux physique de la colonne auquel se rapportent les décomptes. Correspond àsystem.parts_columns.substreams.data_compressed_bytes(Nullable(UInt64)) — Taille des données compressées du sous-flux, en octets.NULLpour les partiesCompact.data_uncompressed_bytes(Nullable(UInt64)) — Taille des données non compressées du sous-flux, en octets.NULLpour les partiesCompact.codec_block_counts(Map(String, UInt64)) — Nombre de blocs compressés de ce sous-flux, regroupés par codec. Vide pour les partiesCompact, dont les colonnes partagent un même fichier de données et ne disposent donc pas d’une attribution de codec par flux.
Exemple d’utilisation
GROUP BY column et sumMap :
LowCardinality indique séparément les flux de son dictionnaire et de ses index :