Ich bin ziemlich neu in der Produktion von Hadoop. Ich benutzte Scoop, um eine große Tabelle aus einer Datenbank in Hive einzubringen. Scoop erstellte eine durch Kommas getrennte Textdatei und erstellte die entsprechende Tabelle in Hive.Orc nicht schneller als CSV in Hive?
ich dann einen ausgeführt create table new_table_orc stored as orc as select * from old_table_csv
Da eine Textdatei wie etwa als ineffizient ist wie zu ORC (Binärdaten, spaltenweise Datenspeicher für Fetttabellen, Kompression, etc.) verglichen werden, erwartete ich eine große Verbesserungen der Größenordnung, aber die Ausführungszeit der Abfrage scheint sich überhaupt nicht geändert zu haben!
Ich verwendete die gleiche einfache Abfrage für beide Version (Text, ORC und sogar Parkett) und tat das gleiche dünn, wenn mehrere dieser Tabellen in einer Verknüpfung verwendet wurden.
Zusätzliche Informationen: Die Haupttabelle, die ich testen möchte, hat etwa 430 Millionen Zeilen und etwa 50 Spalten.
Ich bin mit ein paar Anfragen: select sum(col1) from my_table;
< = 40 sec
select sum(col1) from my_table_orc;
< = 31 sec
Und
select distinct col2 from my_table where col3 = someval;
< = 53 sec
select distinct col2 from my_table_orc where col3 = someval;
< = 35 Sek.
Ich habe auch die Vektorisierung aktiviert, wie @sahil desai vorgeschlagen hat, scheint aber einen großen Unterschied gemacht zu haben (es hat die Zeit um ein paar Sekunden verkürzt).
Was passiert hier, warum sehe ich keine Größenordnungen Beschleunigung? Was für Details benötigen Sie?
Was zu verbessern Abfrage haben Sie laufen? ORC oder Parquet ist schneller, aber nicht für das Scannen der gesamten Tabelle –
, wie große Daten Sie haben und was die Abfrage, die Sie ausführen, zählt. Wenn Sie kleine Datensätze testen, können Sie keinen Leistungsunterschied finden. –
@sandeeprawat Weitere Informationen in der Beschreibung hinzugefügt. Die Daten sind nicht klein, obwohl ich immer noch aus der Perspektive einer einzelnen Maschine denke. – Shahbaz