Hive External Tableに jsonファイルを連携
    • PDF

    Hive External Tableに jsonファイルを連携

    • PDF

    Article Summary

    Classic環境で利用できます。

    Hive External Tableは、Hiveでテーブルの作成時に Externalキーワードで作成するテーブルです。Hive External Tableは、hive.metastore.warehouse.dir プロパティが示すディレクトリにデータを保存せず、テーブルの作成時に設定したパスにデータを保存します。

    既に Hadoopにあるデータに基づいてテーブルを作成するため、スキーマを設定するだけで作成できます。

    参考

    Hive を使用するガイドでも Hive External Table関連のユースケースを確認できます。

    このガイドでは、jsonデータを Cloud Hadoopで提供する Hiveの External Tableと連携して使用する方法について説明します。

    サンプルデータの準備

    サンプルデータを準備する方法は、次の通りです。

    1. hiveユーザーに切り替えます。
    $ sudo su - hive
    
    1. 当該データをダウンロードします。
    参考

    当該データは、ndjson(Newline Delimited JSON)データ形式です。

    HDFSに jsonファイルをアップロード

    HDFSに jsonファイルをアップロードする方法は、次の通りです。

    1. HDFSにディレクトリを作成します。
    $ hdfs dfs -mkdir /user/hive/bookstat
    
    1. HDFSに jsonファイルをアップロードします。
    $ hdfs dfs -put bookstat.json /user/hive/bookstat
    
    1. HDFSファイルリストを確認します。
    $ hdfs dfs -ls -R /user/hive/bookstat
    -rw-r--r--   2 hive hdfs        193 2023-06-28 14:41 /user/hive/bookstat/bookstat.json
    

    json形式を使う Hive External Tableの作成

    Hive External Tableを作成する方法は、次の通りです。

    1. Cloud Hadoopクラスタエッジノードに SSHでアクセスします。

    2. Hiveクライアントコマンドを利用して External Tableを作成します。

      • データベース作成
      hive> create database book;
      
      • 作成したデータベースを使用
      hive> use book;
      
      • テーブル作成
      hive> CREATE EXTERNAL TABLE IF NOT EXISTS bookstat_serde1
      (
          statTime STRING,
          bizCode STRING,
          saleInfo STRUCT <
              bookName:STRING,
              saleCount:INT
          >
      )
      ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
      STORED AS TEXTFILE
      LOCATION '/user/hive/bookstat' ;
      

    json形式を使う Hive External Tableの照会

    • テーブルが作成されると、SELECTクエリを実行してデータを確認できます。
    • テーブル照会
    hive> select * from bookstat_serde1;
    OK
    20130710180059  BOOK    {"bookname":"book61","salecount":749}
    20230628140059  BOOK    {"bookname":"book800","salecount":899}
    
    

    Hive External Table削除

    Hive External Tableを削除する方法は、次の通りです。

    1. 作成された Hive External Tableの次のコマンドを用いて削除します。
      • 以下は、先ほど作成した Hive External Table(bookstat_serde1)を削除する例です。
    DROP TABLE bookstat_serde1;
    
    1. 削除されたテーブルに対して SELECTクエリを実行します。エラーは発生しますが、正常にテーブルが削除されたことが確認できます。また、Show Tablesでテーブルの削除有無を確認できます。
    • SELECTクエリを利用
    SELECT * FROM bookstat_serde1;
    
    Error: Error while compiling statement: FAILED: SemanticException [Error 10001]: Line 1:14 Table not found 'bookstat_serde1' (state=42S02,code=10001)
    
    • SHOW TABLESでテーブルリストを確認
    SHOW TABLES;
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.