Heim > Datenbank > MySQL-Tutorial > Warum zeigt meine Hive COUNT(*)-Abfrage weniger Zeilen an als meine Nicht-NULL-Zählungsabfrage?

Warum zeigt meine Hive COUNT(*)-Abfrage weniger Zeilen an als meine Nicht-NULL-Zählungsabfrage?

Patricia Arquette
Freigeben: 2025-01-12 07:16:41
Original
178 Leute haben es durchsucht

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

Unterschied bei der Anzahl der Hive-Abfragen: Die Anzahl der nicht leeren Personen ist größer als die Gesamtanzahl

In Hive haben wir ein interessantes Phänomen bei der Berechnung der Zeilenanzahl beobachtet. Angenommen, es gibt eine Tabelle namens mytable, die ein Feld namens master_id enthält. Wenn die folgende Abfrage ausgeführt wird, beträgt die Gesamtzahl der abgerufenen Zeilen 1.129.563:

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable;</code>
Nach dem Login kopieren

Bei der Abfrage der Anzahl der Zeilen mit nicht leeren master_id-Werten erhöht sich die Anzahl jedoch auf 1.134.041:

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable WHERE master_id IS NOT NULL;</code>
Nach dem Login kopieren

Dieser Unterschied tritt auf, weil Abfragen ohne WHERE-Klausel standardmäßig Statistiken verwenden können, um die Anzahl der Zeilen zu schätzen. Um dieses Problem zu lösen, kann der Parameter hive.compute.query.using.stats auf „false“ gesetzt werden, um die statistische Schätzung zu deaktivieren.

Alternativ können Sie Tabellenstatistiken explizit mit der ANALYZE TABLE-Anweisung berechnen oder hive.stats.autogather auf „true“ setzen, um beim Massenimport von Daten über die INSERT OVERWRITE-Operation Statistiken zu sammeln. Dadurch werden genaue und konsistente Abfrageergebnisse sichergestellt und unerwartete Ergebnisse wie diese vermieden.

Das obige ist der detaillierte Inhalt vonWarum zeigt meine Hive COUNT(*)-Abfrage weniger Zeilen an als meine Nicht-NULL-Zählungsabfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage