【Hive】Hive / HiveQL ~ パーティション / 基本編 ~

■ はじめに

Hive の パーティション (partition) について、まとめる

cf Partition = 仕切り壁、分割、分配

目次

【1】文法
 1)CREATE TABLE 
 2)INSERT SELECT
 3)ALTER TABLE ADD PARTITION
 4)MSCK REPAIR TABLE

【1】文法

1)CREATE TABLE 
2)INSERT SELECT
3)ALTER TABLE ADD PARTITION
4)MSCK REPAIR TABLE

1)CREATE TABLE

https://blog.amedama.jp/entry/2018/01/03/051818
構文

-- テーブル作成
CREATE TABLE  <テーブル名> (
  <項目名> <データ型>,
  …
)
PARTITIONED BY (
  項目名1 データ型1,
  項目名2 データ型2,
  ...
);

サンプル

CREATE EXTERNAL TABLE IF NOT EXISTS person(
  id string,
  name string
)
PARTITIONED BY (
  created_at string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION
  's3://your-bucket/hello/world/';

2)INSERT SELECT

構文

INSERT INTO TABLE <テーブル名>
PARTITION (
<パーティション名>='<値>')
SELECT
 ...;

INSERT OVERWRITE TABLE
  sample_db.person
PARTITION (created_at='2022-05-14')
SELECT
  'x0001'
  , 'Mike'
;

トラブル:エラー「Need to specify partition columns」が表示

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

https://dk521123.hatenablog.com/entry/2020/05/28/175428

3)ALTER TABLE ADD PARTITION

* テーブルへのパーティション追加

サンプル

ALTER TABLE person ADD PARTITION (created_at=’20200716′)

4)MSCK REPAIR TABLE

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

* パーティションの修復

構文

MSCK REPAIR TABLE [テーブル名];

# もっと正確なのだと...
MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];

参考文献

https://blog.amedama.jp/entry/2018/01/03/051818
https://tagomoris.hatenablog.com/entry/20141114/1415938647
https://open-groove.net/hive/hive-partition/
https://www.sbcloud.co.jp/entry/2019/03/01/hive/

関連記事

Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ パーティション / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/09/18/113637
Hive / HiveQL ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/06/02/183823
Hive / HiveQL ~ HiveQL関数編 ~ https://dk521123.hatenablog.com/entry/2020/03/10/224640
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/11/20/174039
Hive / Partition に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/28/175428
SQL Server】データ パーティション
https://dk521123.hatenablog.com/entry/2012/05/10/000555