2017-12-06 11 views
0

インデックスは、テーブルの特定の列のポインタに過ぎません。インデックスを作成するとは、テーブルの特定の列にポインタを作成することです。ある列が表内で索引付けされていて、その特定の列のデータがどのように指し示されているかは、その特定の列が照会されたときですか?ハイブでのインデックス作成の仕組みは?

答えて

1
ドキュメントから

ハイブのインデックスの目標は、テーブルの 特定の列に、クエリのルックアップの速度を向上させることです。インデックスがないと、 'WHERE tab1.col1 = 10'のような述語 のクエリは、テーブルまたはパーティション全体をロードし、 はすべての行を処理します。しかし、col1のインデックスが存在する場合は、ファイルの一部分である だけをロードして処理する必要があります。インデックスが提供できるクエリ速度の改善 は、 インデックスを格納するためのインデックスとディスク領域を作成するための追加処理のコストが になります。

シーンの背後では、ハイブは基本的にインデックスを作成する列の値と、データがHDFS内にあるオフセット+ファイルを持つマップを作成します。そのため、ハイブはすべてをスキャンする必要はありません特定の値を検索するためのデータ。ここで基本的な概念を説明する良い記事です。

https://acadgild.com/blog/indexing-in-hive/