Hive

【Hive】【SQL】全く関係ないテーブルを結合することを考える

■ はじめに Hive と Redshift で カウントなどの集計情報するのに 全く関係ないテーブルを結合したので、 そのことについて、メモっておく。 (もっといい方法があれば、随時、更新していく) 目次 【1】結合方法 方法1:JOINを使った結合 【2】サンプル …

【AWS】Hiveテーブルデータ を Redshift に移行するには

■ はじめに Hiveテーブルデータ を Redshift に移行することをやったので ざっくり方針などをメモ。 目次 【1】Hiveテーブルデータ を Redshift に移行するには 1)移行手順案 2)トラブルについて 【2】サンプル 1)HiveのExternal TableでS3上に保存…

【Hive】Hive / HiveQL ~ データ圧縮あれこれ ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/11/03/000000 の続き。 Hive の テーブルデータ を GZIP にするなどを行ったので 知識を整理しておく 目次 【1】テーブルデータを圧縮する 1)サンプル 【2】ファイルフォーマットを指定する 1)…

【トラブル】【Hive】テーブルアクセス時に例外「Vertex failed, ... InvalidInputException」が発生する

■ はじめに 結果的には、以下のトラブルと同じような現象が発生したのだが、 色々と背景が異なるのでメモしておく。 EMR / DBアクセス に関するトラブルシューティング https://dk521123.hatenablog.com/entry/2021/06/17/114611 目次 【1】現象 【2】エラ…

【Hive】Hive / HiveQL ~ コメント文 ~

■ はじめに Hiveで実行した際に、コメント文でエラーになった。 詳細は、以下の「【3】補足:コメント文に関するトラブルについて」で扱うが その際に色々と調べたので、記録しておく。 目次 【1】Hive のコメント文 【2】使用上の注意 1)コメント「/*…

【Hive】Hive / HiveQL ~ Hiveの変数 ~

■ はじめに hive の変数 hiveconf について扱ったのでまとめておく。 目次 【0】公式ドキュメント 【1】Hiveの変数の種類 1)hivevar 2)hiveconf 3)env 4)system 【2】指定の仕方 1)コマンドラインからの指定 2)ファイル内での指定 【3】デバ…

【Hive】Hive / HiveQL ~ HiveQL関数 / NULL関連編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/03/10/224640 https://dk521123.hatenablog.com/entry/2021/06/18/184713 https://dk521123.hatenablog.com/entry/2021/06/21/231033 の続き。 COALESCEを使っている処理があったので、 COALESCE や …

【Hive】Hive / HiveQL ~ HiveQL関数・文字列関数編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/03/10/224640 https://dk521123.hatenablog.com/entry/2021/06/18/184713 の続き。 今回は、文字列操作する際の関数群をまとめておく。 目次 【0】API仕様 【1】lower() / lcase() 【2】upper() /…

【Hive】Hive / HiveQL ~ CASE文 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/06/18/184713 で、CASE文を使った際に、 構文エラーになった (ただ単に「end」が抜けていた) ので hive の CASE文について、整理しておく。 目次 【1】CASE文 - CASE statements 【2】構文 1)単…

【Hive】Hive / HiveQL ~ HiveQL関数・regexp_replace編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/03/10/224640 の続き。 長いHQLを実行した際にエラーになったので、 その長いHQLのサブクエリを単独で実行してどこに原因があるかを 調査していた。 その際、regexp_replace を使っていたので、メモ…

【トラブル】【AWS】EMR / DBアクセス に関するトラブルシューティング

■ はじめに Amazon EMR 上で エラー「Error encountered near token 'TOK_TMP_FILE'」や エラー「NoRouteToHostException: No route to host」が発生した。 その際の調査方法や解決案などを記しておく。 目次 【1】発生現象 / エラー内容 1)Create table …

【Hive】Hive / HiveQL ~ JOIN文 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/06/12/093046 に関して、細かく調査したら、JOIN の ON がないので、 交差結合(CROSS JOIN, Cartesian product)になり エラーが起きてたのが分かった。 そこで、今回は JOIN文について、改めて纏め…

【トラブル】【Hive】エラー「SemanticException Cartesian products are disabled for safety reasons」が発生する

■ はじめに https://dk521123.hatenablog.com/entry/2020/05/28/175428 https://dk521123.hatenablog.com/entry/2020/11/20/174039 の続き。 今回は、別環境で動いているHQLを実行したら エラーになった際のトラブルシュートをメモする。 目次 【1】概要 【…

【Hive】【SQL】差集合 ~ EXCEPT / MINUS etc ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/02/11/233633 で記載した警告文 ~~~~~~~ unix_timestamp(void) is deprecated. Use current_timestamp instead. ~~~~~~~ に対応し、クエリを修正したのだが、 修正前と修正後の確認で、SQL文「MINUS…

【Hive】【SQL】ROW_NUMBER / RANK + PARTITION BY

■ はじめに Hive でデータが積み重なるようなテーブル (例えば、ユーザ情報で入会・退会するようなデータ)に対して ユーザの最新/過去直近情報を取得するのに、 ROW_NUMBER + PARTITION BY を使ったので、メモする。 ついでに、RANK + PARTITION BY も載せ…

【トラブル】Hadoop / Hive 環境構築時のトラブルシューティング

■ はじめに https://dk521123.hatenablog.com/entry/2019/12/26/223506 https://dk521123.hatenablog.com/entry/2020/01/01/000000 https://dk521123.hatenablog.com/entry/2020/01/02/000000 で発生した環境構築でのトラブルをメモしておく 目次 【1】エラ…

【Hive】Hive / HiveQL ~ HiveQL関数 / 日時・日付操作編 ~

■ はじめに Hive で日付・日時の操作をする必要ができたので、メモ。 徐々に増やしていく。 目次 【0】関連する関数 【1】現在日時/日付の取得 1)現在日時 - CURRENT_TIMESTAMP 2)現在日付 - CURRENT_DATE 注意「unix_timestamp(void) is deprecated」…

【トラブル】【Hive】Hive に関するトラブルシューティング

■ はじめに https://dk521123.hatenablog.com/entry/2020/05/28/175428 の続き。 Hiveで発生したトラブルをまとめる。 目次 【1】エラー「Cannot inspect org.apache.hadoop.io.IntWritable」が発生する 【2】エラー「java.lang.NoClassDefFoundError: sca…

【Hive】Hiveクエリで入力ファイル名を取得するには

■ はじめに 小ネタ。 今回は、Hiveクエリで入力ファイル名を取得する方法をメモする。 なお、PySparkでは、以下の関連記事を参照のこと。 https://dk521123.hatenablog.com/entry/2021/04/12/145133 ■ Hiveクエリで入力ファイル名を取得するには * INPUT__FI…

【Hive】Hive / HiveQL ~ テーブル作成 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/25/231235 https://dk521123.hatenablog.com/entry/2020/06/02/183823 の続き。 長くなったので、テーブル作成だけで分冊。 目次 【1】テーブル作成 1)CREATE TABLE:内部テーブル作成 2)CRE…

【Hive】Hive で固定値を挿入するには

■ はじめに 小ネタ。 今回は、テスト用のデータ(固定値)をダミーデータとして Hiveのテーブルに突っ込む方法をメモ。 ■ サンプル USE target_db; set hive.execution.engine=mr; CREATE EXTERNAL TABLE sample_test_table( sample_id STRING, name STRING, c…

【Hive】Hive / HiveQL ~ 設定プロパティ ~

■ はじめに Hive の 設定プロパティ(Configuration Properties) について 大分、知識が溜まってきたので、まとめておく。 公式サイト https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties * なお、Hadoopに関する設定プロパティにつ…

【Hive】Hive / HiveQL ~ パーティション / あれこれ編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/07/16/224332 の続き。 Hive の パーティション (Partition) にまつわるTipsをまとめておく cf Partition = 仕切り壁、分割、分配 目次 【1】Partition 関連の設定プロパティ 1)hive.exec.dynamic…

【Hive】Hive / HiveQL ~ デバッグ編 ~

■ はじめに Hive / HiveQL のデバッグで得た知識を纏める。 目次 【1】標準出力するには 【2】詳細ログ・ログの抑制を行うには 【1】標準出力するには !echo "hello world. ${value1}"; 参考文献 https://stackoverflow.com/questions/28703405/output-ec…

【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)INS…

【Hive】Hive / HiveQL ~ データをクリーニングする ~

■ はじめに HiveQL でデータをクリーニングすることをやったので メモっとく。 目次 【1】CASE文を使って値を置き換える 【2】日時・日付形式を変更する 【1】CASE文を使って値を置き換える * CASE文に関する詳細は、以下の関連記事を参照のこと Hive / H…

【Hive】Hive / HiveQL ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/25/231235 の続き。 HiveQL を書く機会が得られて、 ちょこちょこSQLと違うので、基本文法を中心にメモる。 目次 【0】データベース関連 【1】テーブル作成 【2】テーブル削除 【3】テーブル…

【トラブル】【Hive】Hive / Partition に関するトラブルシューティング

■ はじめに https://dk521123.hatenablog.com/entry/2020/05/27/175610 などで、でてきたトラブルを纏める 目次 【1】エラー「Column repeated in partitioning columns」が発生する 【2】エラー「Need to specify partition columns」が表示 ※ その他のHi…

【分散処理】PySpark ~ Hive ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/11/14/221126 https://dk521123.hatenablog.com/entry/2019/11/24/225534 https://dk521123.hatenablog.com/entry/2020/01/04/150942 の続き。 今回は、Python から Hive / HiveQL を使えるやり方を …

【Hive】Hive / HiveQL ~ HiveQL関数 / 文字列置換編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/25/231235 の続き。 今回は、 文字列置換の関数に絞って、知識を整理する 目次 【0】API仕様 【1】translate() 【2】replace() 【3】regexp_replace() 【0】API仕様 https://cwiki.apache.or…