Hiveを使用して_VirtualBox Sandbox
_でクエリを実行しているとき。 Select count(*)
は_Select *
_よりも遅すぎると思います。
誰かが背後で何が起こっているのか説明できますか?
そして、なぜこの遅延が起こっているのですか?
select * from table
それは地図だけの仕事になることができますしかし
Select Count(*) from table
MapandReduceジョブにすることができます
お役に立てれば。
Hiveクエリが実行できる操作には3つのタイプがあります。
ここでは、最も安くて速いものから、より高価で遅いものの順になっています。
Hiveクエリは、メタデータのみのリクエストにすることができます。
テーブルの表示、テーブルの説明は例です。これらのクエリでは、Hiveプロセスがメタデータサーバーでルックアップを実行します。メタデータサーバーはSQLデータベース(おそらくMySQL)ですが、実際のDBは構成可能です。
Hiveクエリはhdfsgetリクエストにすることができます。表から*を選択します。これが例です。この場合、Hiveはhdfs操作を実行することで結果を返すことができます。 hadoop fs -get、多かれ少なかれ。
HiveクエリはMapReduceジョブにすることができます。
Hiveはjarをhdfsに送信する必要があり、jobtrackerはタスクをキューに入れ、tasktrackerはタスクを実行し、最終データはhdfsに入れられるか、クライアントに送信されます。
MapReduceジョブにもさまざまな可能性があります。
マップのみのジョブにすることができます。 id> 100のテーブルから*を選択します。たとえば、そのロジックはすべてマッパーに適用できます。
Map and Reduceジョブにすることができ、テーブルからmin(id)を選択します。 IDによるテーブルの順序から*を選択します。
複数のmapReduceパスにつながる可能性もありますが、上記はいくつかの動作を要約していると思います。