このガイドでは、E-MapReduce (EMR) クラスターで Hive CLI を使用して、データベースとテーブルを作成および管理し、SQL ステートメントを実行してデータを挿入およびクエリする方法について説明します。
前提条件
開始する前に、以下を確認してください。
Hive サービスが選択された EMR クラスター。詳細については、「クラスターの作成」をご参照ください。
Hive CLI の開始
SSH 経由で EMR クラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
hadoop ユーザーに切り替えます。
su hadoopHive CLI を開始します。
hive
データベースの管理
以下の例では、testdb という名前のデータベースを使用します。
| 操作 | コマンド | 成功指標 |
|---|---|---|
| 作成 | create database if not exists testdb; | 出力には OK |
| 詳細の表示 | desc database testdb; | — |
| データベースへの切り替え | use testdb; | — |
| 削除 | drop database if exists testdb; | 出力に OK |
データベースの作成
create database if not exists testdb;出力に OK が含まれている場合、データベースが作成されます。
データベース詳細の表示
desc database testdb;データベースへの切り替え
use testdb;データベースの削除
drop database if exists testdb;出力に OK が含まれている場合、データベースが削除されます。
テーブルの管理
以下の例では、t という名前のテーブルを使用します。このテーブルには、id (bigint) と value (string) の 2 つの列があります。
| 操作 | コマンド | 成功表示 |
|---|---|---|
| 作成 | create table if not exists t (id bigint, value string); | 出力に OK |
| 詳細の表示 | desc formatted t; | — |
| すべてのテーブルの一覧表示 | show tables; | OK、次に t |
| 削除 | drop table if exists t; | 出力には OK |
テーブルの作成
create table if not exists t (id bigint, value string);出力に OK が含まれている場合、テーブルが作成されます。
テーブル詳細の表示
desc formatted t;すべてのテーブルの一覧表示
show tables;期待される出力:
OK
tテーブルの削除
drop table if exists t;出力に OK が含まれている場合、テーブルが削除されます。
SQL ステートメントの実行
以下の例では、t に行を挿入し、その後クエリを実行します。
行の挿入
insert into table t select 1, 'value-1';期待される出力:
OK
Time taken: 14.73 seconds行のクエリ
select * from t limit 10;期待される出力:
OK
1 value-1
Time taken: 11.48 seconds, Fetched: 1 row(s)データの集計
select value, count(id) from t group by value;期待される出力:
OK
value-1 1
Time taken: 20.11 seconds, Fetched: 1 row(s)