2017-02-15 3 views
2

私はHIVEに照会せずに、テーブルのサイズを計算します。質問なしでHIVEのテーブルサイズを見積もるにはどうすればよいですか?

は、どのように私はHIVEでこれを行うことができますか? 100

  • COLUMNNAME(タイプ:

    (例えば)

    • データロー は(私はショーの性質などを使用することはできませんので、私は、データベースに選択せずにすべての権限がありません) ):ユーザー名(文字列)、userNumber(INT)、USERCODE(BIGINT)、userAge(INT)

      • のuserNameの最大長さ:36

    このような表サイズを計算しました。

    • その文字列が8バイトであるように、私はBIGINTは8バイト (私はレコードヘッダのサイズと列ヘッダのサイズについては考慮していない)

      • 100 *((8 *は、intは4バイトである、と思いました36)+ 4 + 8 + 4)
      • totalSize:30,400バイト

    あなたは私にいくつかのアドバイスを与えるだろうか?

  • 答えて

    2
    hdfs dfs -du -s {table locatoin} 
    

    (オプション-h)

    例えば

    hdfs dfs -du -s /user/hive/warehouse/mytable 
    110265307244 /user/hive/warehouse/mytable 
    

    hdfs dfs -du -s -h /user/hive/warehouse/mytable 
    102.7 G /user/hive/warehouse/mytable 
    
    +0

    質問に答えるいただき、ありがとうございます。しかし、HIVEについてのアクセス許可はありません。だから私はクエリなしで私のテーブルのサイズを推定する必要があります。 – Bethlee

    +1

    あなたは、私が本当に許可を取得したいが、私はできないHDFS –

    +0

    にアクセスする必要があります。 – Bethlee

    1

    あなたはハイブまたはHDFSへのアクセス何を持っていない場合、これは実際には不可能です。

    ハイブは、異なる圧縮メカニズムを使用することができ、それは同様にHDFS上の生データのサイズに影響を与える可能性があります。プレーンテキストで保存されている場合は、これを使用する可能性がありますが、これを行うには最良の方法だとは言いません。

    +0

    質問にお答えいただきありがとうございます。 – Bethlee

    関連する問題