■ はじめに
https://dk521123.hatenablog.com/entry/2020/02/25/231235
の続き。 HiveQL を書く機会が得られて、 ちょこちょこSQLと違うので、基本文法を中心にメモる。
目次
【0】データベース関連 【1】テーブル作成 【2】テーブル削除 【3】テーブル変更 1)テーブル名変更 【4】データ保存 1)データ追記 2)データ上書き ※ HiveQL は、部分更新(UPDATE/DELETE文はない)
【0】データベース関連
以下の関連記事を参照のこと。
Hive / HiveQL ~ データベース関連 ~
https://dk521123.hatenablog.com/entry/2022/05/12/150249
【1】テーブル作成
以下の関連記事を参照のこと。
Hive / HiveQL ~ テーブル作成 ~
https://dk521123.hatenablog.com/entry/2020/11/03/000000
【2】テーブル削除
SQL と変わらず。DROP TABLEで削除。
構文
-- テーブル削除 DROP TABLE <テーブル名>; -- あったら削除 DROP TABLE IF EXISTS <テーブル名>;
【3】テーブル変更
1)テーブル名変更
* ALTER TABLE xxx RENAME TO yyyy で行う
サンプル
ALTER TABLE old_table_name RENAME TO new_table_name;
参考文献
https://www.ne.jp/asahi/hishidama/home/tech/apache/hive/table.html#RENAME
【4】データ保存
1)データ追記
* INSERT INTO で行う
構文
-- テーブルやパーティションに対して、追加をデータ挿入 INSERT INTO TABLE <保存先のテーブル名> [PARTITION (項目名=値, …)] SELECT文 FROM <テーブル名>
2)データ上書き
* INSERT OVERWRITE で行う
構文
-- テーブルやパーティションに対して、元データを消してからデータ挿入 INSERT OVERWRITE TABLE <保存先のテーブル名> [PARTITION (項目名=値, …)] SELECT * FROM <テーブル名>
サンプル
INSERT OVERWRITE TABLE normalized_user_feedback SELECT id, name, lower(contents) FROM user_feedback WHERE created_time BETWEEN '2020-08-01' AND '2020-09-01' AND contents REGEXP "^[A-Za-z+\'-]{5,}$"; -- 正規表現で、5文字以上でアルファベット/アポストロフィ/ハイフン以外は除外
参考文献
https://yut.hatenablog.com/entry/20111219/1324251034
http://www.ne.jp/asahi/hishidama/home/tech/apache/hive/table.html
https://dev.classmethod.jp/articles/hadoop-advent-calendar-08-hive-functions/
https://www.atmarkit.co.jp/ait/articles/0902/27/news129_3.html
https://riptutorial.com/ja/hive/example/11427/%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90
http://kiyohime.hatenablog.com/entry/2013/12/10/185406
関連記事
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/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/11/16/162114
Hive / HiveQL ~ デバッグ編 ~
https://dk521123.hatenablog.com/entry/2020/07/29/141607
Hiveで固定値を挿入するには
https://dk521123.hatenablog.com/entry/2020/09/22/000000
Hive に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/11/20/174039
Hive / Partition に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/28/175428
エラー「SemanticException Cartesian products are disabled for safety reasons」が発生する
https://dk521123.hatenablog.com/entry/2021/06/12/093046
Amazon EMR に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/08/05/144724
EMR / DBアクセス に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/06/17/114611
Apache Hadoop ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/01/000000
全く関係ないテーブルを結合することを考える
https://dk521123.hatenablog.com/entry/2021/09/16/185552