wild_table

wild_table

wild_table

1つの 問題

  • テーブルストレージデータスペース幅、問題に直面するだろう:多くは、データをN回保存されています。N回は、より多くのスペースを取るでしょう。

2つの ソリューション

  • ストレージJSONフォーマット

    テスト:

    -建表
    jsontest存在する場合、テーブルを削除します。
    
    NOTはjsonTest存在する場合はCREATE TABLE 
    (TEACHER_NAME先生のVARCHAR(10)、
    主要VARCHAR(10)、
    students_info文字列コメント"学生信息" 
    のコメント"学生课程信息" 
    行形式のserde 'org.apache.hive.hcatalog.data.JsonSerDe' 
    LOCATIONを
      'HDFS://nameservice1/user/hive/warehouse/bigdata.db/jsontest'; 
    
    jsontest値に挿入します
    (T1 ''、 '语文'、 '{ "グレード":1、 "情報":{ "名": "xinzi"、 "年齢":14、 "セックス": "M"}} | { "グレード":3、 "情報":{ "名": "リージ"、 "年齢":14、 "セックス": "M"}} ')、
    (T2' '、 '数学'、 '{」
    
    
    
    
    v_jsontest存在する場合は、ビューを削除します。
    ないv_jsontest存在する場合は、ビューを作成する
    ように
    選択TEACHER_NAME先生、メジャー、a.grade、b.name、b.age、b.gender爆発jsontest側面図から(スプリット(students_info、 '\\ |'))ST STINとして
    横ビューjson_tuple (STIN、 '学年'、 '情報')グレードとして、情報
    氏名、年齢、性別などの側面図のjson_tuple(a.info、 '名前'、 '年齢'、 '性別')B;
    

- 元のテーブルデータ

ハイブ> * jsontestから選択します。OK T1语文{ "グレード":1、 "情報":{ "名": "xinzi"、 "年齢":14、 "セックス": "M"}} | { "グレード":3、 "情報": { "名": "リージ"、 "年齢":14、 "セックス": "M"}} T2の数学{ "グレード":2、 "情報":{ "名": "zhangs"、 "年齢": 14、 "性別": "F"}}時間が取ら:0.054秒、フェッチされた:2行(複数可)

- 参照結果

ハイブ> * v_jsontestから選択します。.........。OK T1语文1 xinzi 14 M T1语文3リージ14 M T2数学2 zhangs 14 F時間がとら:12.933秒、フェッチされた:3行(複数可)

著者:halberd.lee

作成:2020年4月9日(木)12時50分

検証

おすすめ

転載: www.cnblogs.com/halberd-lee/p/12666170.html