Przeprowadzam kilka testów na formatach przechowywania dostępnych w Hive i używam Parquet i ORC jako głównych opcji. Raz włączyłem ORC z domyślną kompresją, a raz ze Snappy.
Przeczytałem wiele dokumentów, w których stwierdzono, że Parquet jest lepszy pod względem złożoności czasowo-przestrzennej w porównaniu z ORC, ale moje testy są odwrotne do dokumentów, które przeszedłem.
Śledzi niektóre szczegóły moich danych.
Table A- Text File Format- 2.5GB
Table B - ORC - 652MB
Table C - ORC with Snappy - 802MB
Table D - Parquet - 1.9 GB
Najgorzej wypadł parkiet, jeśli chodzi o kompresję na moim stole.
Moje testy z powyższymi tabelami dały następujące wyniki.
Operacja liczenia wierszy
Text Format Cumulative CPU - 123.33 sec
Parquet Format Cumulative CPU - 204.92 sec
ORC Format Cumulative CPU - 119.99 sec
ORC with SNAPPY Cumulative CPU - 107.05 sec
Suma operacji na kolumnie
Text Format Cumulative CPU - 127.85 sec
Parquet Format Cumulative CPU - 255.2 sec
ORC Format Cumulative CPU - 120.48 sec
ORC with SNAPPY Cumulative CPU - 98.27 sec
Średnia z operacji na kolumnie
Text Format Cumulative CPU - 128.79 sec
Parquet Format Cumulative CPU - 211.73 sec
ORC Format Cumulative CPU - 165.5 sec
ORC with SNAPPY Cumulative CPU - 135.45 sec
Wybieranie 4 kolumn z podanego zakresu za pomocą klauzuli where
Text Format Cumulative CPU - 72.48 sec
Parquet Format Cumulative CPU - 136.4 sec
ORC Format Cumulative CPU - 96.63 sec
ORC with SNAPPY Cumulative CPU - 82.05 sec
Czy to oznacza, że ORC jest szybsze niż Parquet? A może jest coś, co mogę zrobić, aby działało lepiej z czasem odpowiedzi na zapytanie i współczynnikiem kompresji?
Dzięki!