如何检索所有数据库的表列配置单元

时间:2017-12-04 06:44:15

标签: hive hive-metastore

我想获取所有数据库及其相关的表和列信息。显然我可以从Metastore做到这一点。但我无法访问它。那么有没有其他方法,而不是逐个查询每个数据库。

2 个答案:

答案 0 :(得分:0)

您应该能够运行以下命令。我想你可以编写脚本来运行所有数据库和所有表

SHOW DATABASES;
SHOW TABLES;
DESCRIBE <table_name>;

答案 1 :(得分:0)

您需要python,但是我这样做是这样的:

databases = run_hive_query('show schemas')
databases = list(databases.database_name)

schema = {'DB':[],
      'Table':[],
      'Column':[], 
      'DataType':[]}
for db in databases:
tables = run_hive_query( 'show tables from ' +db)
tables = list(tables.tab_name)
for tb in tables:
    try:
        columns = (run_hive_query('desc ' + db+'.'+tb))
        print(db + '  '+ tb)
    except:
        print('failed'+db + '  '+ tb)
    try:
        for x in range(columns.shape[0]):
            schema['DB'].append(db) 
            schema['Table'].append(tb)
            schema['Column'].append(columns.iloc[x][0])
            schema['DataType'].append(columns.iloc[x][1])
    except:
        print('failed'+db + '  '+ tb)