テーブルの作成も簡単に行えます。
テーブルの情報を見るときには「DESC(DESCRIBE)」コマンドを使います。
「FORMATTED」を指定すれば、より詳細な情報を見ることもできます。
また、テーブル作成時に「LIKE」を利用すれば、既存のテーブルと同じスキーマを持ったテーブルを簡単に作成することも可能です。以下で、booksテーブルと同じスキーマを持つnovelsテーブルを作成してみます。
では、今回作ったbooksテーブルにデータを挿入してみます。HiveはHDFS上に構築されているのでまずはデータをHDFS上に配置します。マスタノード上で以下のようにして作業してください。
面白い本,1000 かなり面白い本,1500 すごく面白い本,1800
これでHDFS上にデータファイルが配置されました。確認してみましょう。
これで準備は整いました。再びHiveのインタラクティブシェルで作業します。まずbooksテーブルを定義してそこにデータを追加してみます。ただし、すでに同名のテーブルが存在しているとうまくいきません。まずは存在しているもともとのbooksテーブルを削除しておきます。
これでbooksテーブルは削除されました。あらためてbooksテーブルを定義しますが、データを挿入するために、区切り文字などを適切に定義してあげる必要があります。FIELDS TERMINATED BYで適切な区切り文字を指定してください。この例ではカンマ区切りのため、カンマを指定してあります。
booksテーブルが作成できたら、ここにデータを挿入しましょう。「INPATH」にはファイルのフルパスではなく、ファイルが存在するディレクトリを指定するので注意してください。指定したパス以下のファイルがすべて読み込まれます。
なお、OVERWRITEというキーワードが付いていますが、これを付けるとテーブルにある既存のデータをすべて上書きします。OVERWRITEが付いていなければデータは追記されます。
このとき、INPATHで指定したディレクトリの中にタブ区切りではないデータなど、booksテーブルの定義に合わないデータファイルやディレクトリ等が存在するとエラーメッセージが表示されます。
エラーが出なければこれでbooks.txtのデータがbooksテーブルの中に取り込まれました。実際にbooksテーブルからデータを読み出せることも確認できます。
Copyright © ITmedia, Inc. All Rights Reserved.