import sys
from job.base.jobbase import exitcode
import job.base.clientutil as util
import traceback
import os
def show_table_stats(database):
try:
show_database = 'show tables in ' + database
table_name_list = util.execSql(show_database,locals())
print (table_name_list)
with open('D:/'+database +'.csv','w+') as fp:
fp.write('表名','表条数','分区下文件数','存储空间','缓存字节数','cache副本数。。。。')
for (tablename,) in table_name_list:
try:
invalidate_data = 'invalidate metadata ' + database + '.' + tablename
util.execSql(invalidate_data,locals())
compute_incremental = 'compute incremental stats ' + database + '.' +tablename
util.execSql(compute_incremental,locals())
show_table_stat = 'show table stats '+ database +'.'+tablename
table_stats = util.execSql(show_table_stat,locals())
it_list = []
for it in table_stats[-1]:
print(it)
str_it = str(it)
it_list.append(str_it)
fp.write(tablename + ',' + ','.join(it_list) + '\n')
except:
traceback.print_exc()
except:
traceback.print_exc()
if __name__ == '__main__':
show_table_stats('pdata')