【Hive】Hive / HiveQL ~ 基礎知識編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/09/15/100727

の続き。
今回は、「Hive / HiveQL」を扱う。

目次

【1】Hive
【2】HiveQL (ハイブキューエル)
【3】関連用語
 1)パーティション(Partition)
 2)メタストア (Metastore)
 3)メタデータ (Metadata)

【1】Hive

* Facebook社で開発
* MapReduceをより使いやすくするためのツール
* HDFS(Hadoop Distributed File System;Hadoop 分散ファイルシステム)
 上のデータ(ファイル)をSQLチックな言語で操作するデータ操作言語

リファレンス

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

注意点

コンパクトに書かれているので一読するといいかも。
勉強になった。

https://qiita.com/woadachi/items/6aff2d01ceddf9b94c2d

【2】HiveQL (ハイブキューエル)

* SQLライクの言語
* Hiveのデータを操作できる

補足

* Spark SQL とは、別物。
 => 以下の関連記事を参照。

https://dk521123.hatenablog.com/entry/2019/09/14/123206

【3】関連用語

1)パーティション(Partition)

https://en.wikipedia.org/wiki/Partition_(database)

より抜粋

A partition is a division of a logical database or its constituent elements into distinct independent parts

【(Google)翻訳】
パーティションは、論理データベースまたはその構成要素を別個の独立した部分に分割したものです

=> データを検索する際、スキャンするデータ量を制限し、その結果、パフォーマンス向上する

2)メタストア (Metastore)

* メタデータを管理する場所
* クラスタ外に持つことができる

3)メタデータ (Metadata)

* Apache Hive のテーブルと Hadoop (HDFS) 上のファイルとの対応情報
* テーブル、パーティション、ロールなどの情報

* 1番目のフィールド: ID (string)
* 2番目のフィールド: Name (string)
* 3番目のフィールド: Birth date (Date)
* フィールド区切り文字: ','
* 行の区切り文字: '¥n'

参考文献

https://hogetech.info/oss/apache/hive
https://www.atmarkit.co.jp/ait/articles/0902/27/news129.html
https://www.atmarkit.co.jp/ait/articles/1701/01/news022.html
https://qiita.com/wwacky/items/358fb9145db3143220f6
https://gihyo.jp/admin/serial/01/halook/0010
https://tech.nikkeibp.co.jp/it/article/COLUMN/20120418/391532/

関連記事

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/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 ~ コメント文 ~
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
テーブルアクセス時に例外「Vertex failed, ... InvalidInputException」が発生する
https://dk521123.hatenablog.com/entry/2021/07/06/120134
Apache Spark ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/09/14/123206
AWS Glue ~ 基本編 / クローラ ~
https://dk521123.hatenablog.com/entry/2019/12/01/003455
全く関係ないテーブルを結合することを考える
https://dk521123.hatenablog.com/entry/2021/09/16/185552