【Hive】Hive / HiveQL ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/12/28/021109
https://dk521123.hatenablog.com/entry/2020/01/02/000000
https://dk521123.hatenablog.com/entry/2019/11/25/235219

で、Hive の環境設定を行った。
今回は、HiveQL の Hello World 的なことを行う。

目次

【1】基本文法
【2】hiveコマンド実行
 1)HIVEを開始する
 2)DBを作成する
 3)データベース一覧表示
 4)指定したDBを使う
 5)テーブルを作成する
 6)テーブル一覧表示
 7)テーブル定義表示
 8)HIVEから出る
【3】外部ファイルを実行する

【1】基本文法

以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2020/06/02/183823

【2】hiveコマンド実行

1)HIVEを開始する

hive

# エラー「java.net.ConnectException: Connection refused」が
# 発生したら、以下を行う
stop-all.sh
hadoop namenode -format
start-all.sh

https://stackoverflow.com/questions/28661285/hadoop-cluster-setup-java-net-connectexception-connection-refused

2)DBを作成する

hive> CREATE DATABASE demo_db;

3)データベース一覧表示

# 作成したDBを確認
hive> SHOW DATABASES;

4)指定したDBを使う

# 作成したDBを指定する
hive> USE demo_db;

5)テーブルを作成する

hive> CREATE TABLE fruits(id BIGINT, name STRING, price INT);

6)テーブル一覧表示

# 作成したテーブルを確認
hive> SHOW TABLES;

# おまけ:「SHOW CREATE TABLE <table_name>;」
# 既存のテーブル定義を出力してくれる
hive> SHOW CREATE TABLE fruits;

7)テーブル定義表示
http://kiyohime.hatenablog.com/entry/2013/12/10/185406

hive> DESC fruits;

# EXTENDED で詳細説明表示
hive> DESC EXTENDED fruits;

# FORMATTEDで詳細説明表示(見やすいよう整形)
hive> DESC FORMATTED fruits;

8)HIVEから出る

hive> exit;

【3】外部ファイルを実行する

hive --hivevar key1=demo_db --hiveconf key2=hello_table -f hello.hql

hello.hql

-- なかったらDB作成
CREATE DATABASE IF NOT EXISTS ${hivevar:key1};

USE ${hivevar:key1};

-- テーブル作成
DROP TABLE IF EXISTS ${hiveconf:key2};

CREATE EXTERNAL TABLE ${hiveconf:key2} (
  `id` BIGINT,
  `name` STRING
)
PARTITIONED BY (created_date BIGINT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION '/home/user/hello';

/home/user/hello/created_date=20200602/hello.csv

1,Mike
2,Tom
3,Kevin
4,Sam

確認コマンド

hive

hive> show databases; # demo_db があることを確認
hive> show tables; # hello_tableがあることを確認

参考文献

https://qiita.com/zaburo/items/202abc3be628301b277e
http://labs.opentone.co.jp/?p=1860
https://www.atmarkit.co.jp/ait/articles/1701/01/news022.html
INSERT
https://jp.alibabacloud.com/help/doc-detail/73775.htm

関連記事

Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/06/02/183823
Hive / HiveQL ~ データベース関連 ~
https://dk521123.hatenablog.com/entry/2022/05/12/150249
Hive / HiveQL ~ テーブル作成 ~
https://dk521123.hatenablog.com/entry/2020/11/03/000000
Hive / HiveQL ~ パーティション / 基本編 ~
https://dk521123.hatenablog.com/entry/2020/07/16/224332
Hive / HiveQL ~ パーティション / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/09/18/113637
Hive / HiveQL ~ データ圧縮あれこれ ~
https://dk521123.hatenablog.com/entry/2021/08/06/172502
Hive / HiveQL ~ Hiveコマンド ~
https://dk521123.hatenablog.com/entry/2023/02/21/223137
Hive / HiveQL ~ CASE文 ~
https://dk521123.hatenablog.com/entry/2021/06/19/073248
Hive / HiveQL ~ JOIN文 ~
https://dk521123.hatenablog.com/entry/2021/06/16/152019
Hive / HiveQL ~ LOAD DATA ~
https://dk521123.hatenablog.com/entry/2022/05/15/142918
Hive / HiveQL ~ コメント文 ~
https://dk521123.hatenablog.com/entry/2021/06/25/162430
Hive / HiveQL ~ HiveQL関数 / 文字列置換編 ~
https://dk521123.hatenablog.com/entry/2020/03/10/224640
Hive / HiveQL ~ HiveQL関数・regexp_replace編 ~
https://dk521123.hatenablog.com/entry/2021/06/18/184713
Hive / HiveQL ~ HiveQL関数・文字列関数編 ~
https://dk521123.hatenablog.com/entry/2021/06/21/231033
Hive / HiveQL ~ HiveQL関数 / NULL関連編 ~
https://dk521123.hatenablog.com/entry/2021/06/22/213241
Hive / HiveQL ~ HiveQL関数 / 日時・日付操作編 ~
https://dk521123.hatenablog.com/entry/2021/02/11/233633
Hive / HiveQL ~ 設定プロパティ ~
https://dk521123.hatenablog.com/entry/2020/09/19/152136
Hive / HiveQL ~ Hiveの変数 ~
https://dk521123.hatenablog.com/entry/2021/06/24/094254
Hive / HiveQL ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/03/04/225943
Hive / HiveQL ~ データをクリーニングする ~
https://dk521123.hatenablog.com/entry/2020/07/06/232350
Hiveで固定値を挿入するには
https://dk521123.hatenablog.com/entry/2020/09/22/000000
Hiveクエリで入力ファイル名を取得するには
https://dk521123.hatenablog.com/entry/2020/11/16/162114
Hiveテーブルデータ を Redshift に移行するには
https://dk521123.hatenablog.com/entry/2021/09/01/200818
Hive に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/11/20/174039
Hive / Partition に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/28/175428
テーブルアクセス時に例外「Vertex failed, ... InvalidInputException」が発生する
https://dk521123.hatenablog.com/entry/2021/07/06/120134
Hadoop / Hive 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/02/12/160221
Apache Hive ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/28/021109
Apache Hive ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/02/000000