ここでは、Hiveの基本的な使い方を説明します。はじめにテーブルの作成とデータの読み込みを説明し、次に検索と保存について説明します。
ここでは、実際の説明に先立ってHiveの操作方法を示します。
Hiveはインタプリタ「hive」で操作します。起動方法は次のとおりです。
hiveuser> $HADOOP_HOME/contrib/hive/bin/hive hive>
終了は「exit;」を入力します。
hive> exit;
最初にテーブル作成のためのCREATE TABLE文を説明します。詳細な文法は以下のURLを参照してください。
・CREATE TABLEの詳細な文法チュートリアル:Apacheプロジェクトwiki
以下では書式の概略と指定できるデータ型を示しておきます。
CREATE [EXTERNAL] TABLE [テーブル名] (カラム名 data_type [カラムコメント], カラム名 data_type [カラムコメント], ……) [PARTITIONED BY (カラム名1 data_type 1 [カラムコメント1], カラム名2 data_type 2 [カラムコメント2],……)] [CLUSTERED BY (カラム名1, カラム名2,……) [SORTED BY (カラム名1, ……)] INTO num_buckets BUCKETS] [ROW FORMAT row_format ] [STORED AS file_format ] [LOCATION hdfsのパス]
data_type | primitive_type | TINYINT |
---|---|---|
INT | ||
BIGINT | ||
BOOLEAN | ||
FLOAT | ||
DOUBLE | ||
DATE | ||
DATETIME | ||
TIMESTAMP | ||
STRING | ||
array_type | ARRAY < primitive_type > | |
map_type | MAP < primitive_type, primitive_type > | |
row_format | DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] SERIALIZER serde_name [WITH PROPERTIES property_name=property_value, property_name=property_value, ...] |
|
file_format | SEQUENCEFILE | |
TEXTFILE | ||
指定できるデータ型一覧 |
ここでは、pref.csvファイルのデータを保存するテーブル「pref」を定義します。
hive> CREATE TABLE pref (id int, pref STRING) > ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' > LINES TERMINATED BY '\n'; OK Time taken: 10.813 seconds
通常のCREATE TABLE文との違いは、「ROW FORMAT DELIMITED FIELDS 〜」以下の部分です。これは、次に説明するLOAD DATA文のためのオプションで、読み込むデータファイルpref.csvの区切り文字(ここでは「 , 」)と改行文字(ここでは「\n」)を指定しています。
1,北海道 2,青森県 3,岩手県 4,宮城県 5,秋田県 6,山形県 7,福島県 …略…
では、実際にデータファイルpref.csvを読み込んでみましょう。LOAD DATA文の文法は以下のとおりです。
LOAD DATA [LOCAL] INPATH '/path/to/file' [OVERWRITE] INTO TABLE table_name [partition_spec]
hive> LOAD DATA LOCAL INPATH '/home/hiveuser/localfiles/pref.csv' > OVERWRITE INTO TABLE pref; Copying data from file:/home/hiveuser/localfiles/pref.csv Loading data to table pref OK Time taken: 3.362 seconds
以上でテーブルprefにデータが読み込まれました。
ここまでで、基本的なHiveの操作が理解できたのではないかと思います。後編では、今回構築した環境を基に、より複雑に定義したテーブルの操作やHadoopならではの実践的な使い方を見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.