1

最近、Hadoopを使い始めました。HiveからアクセスするCheckoutという名前のテーブルがあります。以下は、データがHDFSやその他の情報に送られるパスです。では、以下の3行を読まなければならない場合、どのような情報を得ることができますか?

          Path                                      Size           Record Count      Date Loaded
/sys/edw/dw_checkout_trans/snapshot/2012/07/04/00   1.13 TB       9,294,245,800      2012-07-05 07:26
/sys/edw/dw_checkout_trans/snapshot/2012/07/03/00   1.13 TB       9,290,477,963      2012-07-04 09:37
/sys/edw/dw_checkout_trans/snapshot/2012/07/02/00   1.12 TB       9,286,199,847      2012-07-03 07:08

だから私の質問は-

1)まず、データをHDFSにロードし、次にHiveを介してクエリを実行して結果を取得しますか?右?

2)次に、上記のパスなどを調べると、私が混乱しているのは、Hiveを使用してクエリを実行するときに、上記の3つのパスすべてからデータを取得することだけです。または一番上の最新のもの?

私はこれらのものに慣れていないので、私は多くの問題を抱えています。ハイブがどこからデータを取得するかを誰かが説明できますか?そして、すべてのデータをHDFSに保存してから、HiveまたはPigを使用してHDFSからデータを取得しますか?そして、誰かがHadoopとHiveの高度な知識を与えてくれると素晴らしいでしょう。

4

1 に答える 1

2

HiveのネイティブテーブルとHiveの外部テーブルの違いを理解する必要があると思います。
ハイブネイティブテーブルは、データをハイブにロードすることを意味し、データがHDFSにどのように格納されるかを処理します。この場合、通常、ディレクトリ構造は関係ありません。
Hive外部テーブルとは、データをディレクトリに配置し(今のところパーティション分割を忘れた場合)、Hiveに通知することを意味します。これはテーブルのデータです。そのままお扱いください。そして、ハイブを使用すると、クエリを実行したり、他の外部テーブルまたは通常のテーブルと結合したりできます。そして、データの追加、削除などは私たちの責任です

于 2012-07-06T06:59:03.477 に答える