【Hive】Hive / HiveQL ~ Hiveコマンド ~

■ はじめに

AWS EMR 内のHiveテーブルを調査した際に
Hiveコマンドをいくつか実行したので、
その際に使用したものなどをまとめておく

目次

【1】データベース関連
 1)データベースの一覧表示
【2】テーブル関連
 1)テーブルの一覧表示
 2)テーブル情報の取得
 3)テーブルのサイズの取得

【1】データベース関連

1)データベースの一覧表示

構文

show databases;

【2】テーブル関連

1)テーブルの一覧表示

構文

show tables;
-- ★注意:現在指定されているDB内のテーブルのみ表示

-- Databaseを指定する
show tables in <your_db_name>;

-- 以下と同じ
use <your_db_name>;
show tables;

2)テーブル情報の取得

DESC [FORMATTED / DESC EXTENDED]

* DESC (DESCRIBE=説明)
* テーブルのファイルフォーマットや構成を確認する場合に使用
* オプション[FORMATTED / DESC EXTENDED]を付けると、詳細表示。
 + 違いは、formattedが、見やすいよう整形して表示する
 + 出力項目については、以下を参照

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/materialized-view/content/hive_describe_materialized_view.html

構文

DESCRIBE <your_table_name>;
DESC <your_table_name>;

-- パスなども含めて出力してくれる
DESC EXTENDED <your_table_name>;

-- formattedは、見やすいよう整形して表示
DESC FORMATTED <your_table_name>;

サンプル

CREATE EXTERNAL TABLE book(
  id string,
  name string,
  year int,
  page int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS SEQUENCEFILE
LOCATION 's3://your-s3-buket/demo2/';

-- ★実行
DESCRIBE book;

-- ★出力結果
id                    string
name                    string
year                    int
pages                   int

-- ★実行2
$ desc formatted book;

-- ★出力結果2
# col_name              data_type               comment
 
id              string
name              string
year                int
pages                   int

# Detailed Table Information
Database:               default
Owner:                  hadoop
CreateTime:             Thu Mar 21 09:28:45 PDT 2019
LastAccessTime:         UNKNOWN
Protect Mode:           None
Retention:              0
Location:               hdfs://user/hive/wrehouse/default/book
Table Type:             MANAGED_TABLE
Table Parameters:
        COLUMN_STATS_ACCURATE   {\"BASIC_STATS\":\"true\"}
        numFiles                0
        numRows                 0
        rawDataSize             0
        totalSize               0
        transient_lastDdlTime   1553185725
 
# Storage Information
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat:            org.apache.hadoop.mapred.TextInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed:             No
Num Buckets:            -1
Bucket Columns:         []
Sort Columns:           []
Storage Desc Params:
        serialization.format    1

参考文献
http://kiyohime.hatenablog.com/entry/2013/12/10/185406

3)テーブルのサイズの取得

構文

-- gives all properties
show tblproperties <your_table_name>

-- show just the raw data size
show tblproperties <your_table_name>("rawDataSize")

参考文献
https://stackoverflow.com/questions/21208574/hive-query-to-quickly-find-table-size-number-of-rows

関連記事

Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/25/231235
Hive / HiveQL ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/06/02/183823
Hive / HiveQL ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/03/04/225943
全Hiveテーブルを取得するには
https://dk521123.hatenablog.com/entry/2023/02/28/202536