最近は大きなデータを扱うクエリエンジンがたくさん増えてきました。 一昔前はデータをフルスキャンして処理するパターンが多かったのですが、やはりこの方法では処理コストが大きくなるのが課題となりました。 そこでデータの読み込みでの処理コストを削減するために最近ではデータベースのように必要なカラムだけを読み込んだり、不要な行・ページをスキップするプッシュダウンの機能を持ったビッグデータ向けのクエリエンジンが増えてきました。 今日は Hive , Presto , Drill のプッシュダウンについて見ていきたいと思います。 プッシュダウンの種類 テキストや行でデータを変換しているフォーマットの場合にはすべてのフィールドを全て読み込むことになります。 ORCやParquetなどのカラムナーフォーマットの場合には列毎にデータを保持しているため、特定のカラムや列での統計情報(MaxやMin)などを持って
![Hive , Presto , Drill のプッシュダウンの考察 - 沼津暮らし](https://cdn-ak-scissors.b.st-hatena.com/image/square/6a4cacf78245ec8aab658bd2ae6ddb368e1d132e/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fkoijima_proto%2F20171220%2F20171220215504.png)