web-dev-qa-db-fra.com

Requête Hive pour trouver rapidement la taille de la table (nombre de lignes)

Existe-t-il une requête Hive pour trouver rapidement la taille de la table (c'est-à-dire le nombre de lignes) sans lancer un travail MapReduce fastidieux? (C'est pourquoi je veux éviter COUNT(*).)

J'ai essayé DESCRIBE EXTENDED, mais cela a donné numRows=0 qui n'est évidemment pas correct.

(Excuses pour la question newb. J'ai essayé de chercher sur Google et de chercher dans la documentation d'Apache.org sans succès.)

26
xenocyon

tblproperties donnera la taille de la table et peut être utilisé pour saisir uniquement cette valeur si nécessaire.

-- gives all properties
show tblproperties yourTableName

-- show just the raw data size
show tblproperties yourTableName("rawDataSize")
31
Jared

Voici la commande rapide

ANALYZE TABLE tablename [PARTITION(partcol1[=val1], partcol2[=val2], ...)] COMPUTE STATISTICS [noscan];

Par exemple, si la table est partitionnée

 Hive> ANALYZE TABLE ops_bc_log PARTITION(day) COMPUTE STATISTICS noscan;

la sortie est 

Partition logdata.ops_bc_log {day = 20140523} stats: [numFiles = 37, numRows = 26095186, totalSize = 654249957, rawDataSize = 58080809507]

Partition logdata.ops_bc_log {day = 20140521} stats: [numFiles = 30, numRows = 21363807, totalSize = 564014889, rawDataSize = 47556570705]

Partition logdata.ops_bc_log {day = 20140524} stats: [numFiles = 35, numRows = 25210367, totalSize = 631424507, rawDataSize = 56083164109]

Partition logdata.ops_bc_log {day = 20140522} stats: [numFiles = 37, numRows = 26295075, totalSize = 657113440, rawDataSize = 58496087068]

D'accord

Temps pris: 5.252 secondes

25
minhas23

Comment utiliser:

    hdfs dfs -du -s -h /path/to/table/name
8
user2720864

solution, mais pas rapide
si la table est partitionnée, nous pouvons compter le nombre de partitions et compter (nombre de lignes) dans chaque partition.
Par exemple :, si partition par date (mm-jj-aaaa)

select partition_date, count(*) from <table_name> where <partion_column_name> >= '05-14-2018' group by <partion_column_name>
0
src3369