2016-11-03 9 views
0

Java/jdbcを使用してハイブテーブルのサイズをGBで見つけることはできますか? HDFSのハイブウェアハウスフォルダーに依存したくないのですが(linkに記載されています)、異なるテーブルに異なる場所がある可能性があります。Java/JDBCを使用したハイブテーブルサイズ

答えて

0

現在のところ実行できません。

ファイルサイズを取得するには、ファイルシステム(HDFS)コマンドで実行する必要があります。

RDMSデータベースの場合、つまりSQL Serverでは、SYSビューおよびSYS関数(DMFおよびDMV)にファイルシステムコマンドがカプセル化されています。

このようなUDFを書いたり開発したりする人もいますが、UDFでは内部的に同じコマンドが呼び出されます。

0

あなたが「tblproperties」から言及「totalSize」であれば、それは同様のアプローチで可能です:

String driverName = "org.apache.hive.jdbc.HiveDriver"; 
String connectionURL = "jdbc:hive2://HOSTNAME:PORT/default"; 

try { 
    Class.forName(driverName); 
    Connection connection = DriverManager.getConnection(connectionURL, "", ""); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
     System.exit(1); 
    } 

Statement stmt = connection.createStatement("show tblproperties TABLENAME"); 
ResultSet rs = stmt.executeQuery(stmt); 
while(rs.next()){ 
      //doWhatYouWant 
     } 
関連する問題