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

brvekthn  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(308)

我想获取所有数据库及其相关的表和列信息。显然我可以在metastore上做。但我没有权限。那么有没有其他方法代替逐个查询每个数据库呢。

2o7dmzc5

2o7dmzc51#

您应该能够运行以下命令。我想您可以编写脚本,让它在所有数据库和表中运行

SHOW DATABASES;
SHOW TABLES;
DESCRIBE <table_name>;
ymzxtsji

ymzxtsji2#

你需要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)

相关问题