hive sql


  • hiveテーブルを使用してhdfsに保存されているjsonファイルを読み込みます.
    1.hiveデータベースの作成
    CREATE DATABASE IF NOT EXISTS db_nm;
    2.hdfsのjsonファイルを使用してテーブルを作成する
    1)外部テーブルの作成
    CREATE EXTERNAL TABLE IF NOT EXISTS db_nm.tb_nm ( 
      repotype string, 
      repo string, 
      requser string, 
      tags array<string>
    ) 
    PARTITIONED BY (dt string) 
    ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
    STORED AS TEXTFILE 
    LOCATION 'hdfs://name/tmp/log' 
    ;
    2)管理テーブルの作成
    CREATE TABLE IF NOT EXISTS db_nm.tb_nm ( 
      repotype string, 
      repo string, 
      requser string, 
      tags array<string>
    ) 
    PARTITIONED BY (dt string) 
    ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
    STORED AS TEXTFILE 
    LOCATION 'hdfs://name/tmp/log' 
    ;
    3.hiveテーブルパーティションの登録
  • hdfsパスのパーティションは(dt=200326)に等しくないため、直接パーティション化とhdfsパスマッピングが必要である.
  • ALTER TABLE db_nm.tb_nm ADD PARTITION (dt='20200326') LOCATION '/tmp/log/20200326';
    Reference
    https://heum-story.tistory.com/141