Как получить все столбцы столбцов базы данных

Я хочу получить информацию обо всех базах данных и связанных с ними таблицах и столбцах. Очевидно, я могу сделать это из метамагазина. Но у меня нет к нему доступа. Итак, есть ли другой способ вместо того, чтобы запрашивать каждую базу данных по одному.


person Mayank Pande    schedule 04.12.2017    source источник
comment
stackoverflow.com/questions/26181454 /   -  person Shyamala Gopalakrishnan    schedule 04.12.2017


Ответы (2)


вам понадобится 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)    
person sebastian riera    schedule 27.07.2018

Вы должны иметь возможность запускать следующие команды. Я думаю, вы могли бы написать сценарий для работы со всеми базами данных и всеми таблицами.

SHOW DATABASES;
SHOW TABLES;
DESCRIBE <table_name>;
person Dave Whittingham    schedule 04.12.2017