Maison > base de données > tutoriel mysql > Pourquoi ma requête Hive COUNT(*) affiche-t-elle moins de lignes que ma requête de comptage non NULL ?

Pourquoi ma requête Hive COUNT(*) affiche-t-elle moins de lignes que ma requête de comptage non NULL ?

Patricia Arquette
Libérer: 2025-01-12 07:16:41
original
177 Les gens l'ont consulté

Why Does My Hive COUNT(*) Query Show Fewer Rows Than My Non-NULL Count Query?

Différence du nombre de requêtes Hive : le nombre de requêtes non vides est supérieur au nombre total

Dans Hive, nous avons observé un phénomène intéressant concernant le calcul du nombre de lignes. Supposons qu'il existe une table nommée mytable qui contient un champ nommé master_id. Lorsque la requête suivante est exécutée, le nombre total de lignes récupérées est de 1 129 563 :

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable;</code>
Copier après la connexion

Cependant, lors de la recherche du nombre de lignes avec des valeurs master_id non vides, le nombre passe à 1 134 041 :

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable WHERE master_id IS NOT NULL;</code>
Copier après la connexion

Cette différence se produit car, par défaut, les requêtes sans clause WHERE peuvent utiliser des statistiques pour estimer le nombre de lignes. Pour résoudre ce problème, le paramètre hive.compute.query.using.stats peut être défini sur false pour désactiver l'estimation statistique.

Vous pouvez également calculer les statistiques de la table explicitement à l'aide de l'instruction ANALYZE TABLE, ou définir hive.stats.autogather sur true pour collecter des statistiques lors de l'importation groupée de données via l'opération INSERT OVERWRITE. Cela garantira des résultats de requête précis et cohérents et évitera des résultats inattendus comme celui-ci.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal