獲取impala下全部的數據庫建表語句

方法一:python

如今的導出仍是有缺陷的,導出的文件中仍是存在其餘沒必要要的信息sql

#!/bin/bash
##獲取數據庫
databases=$(hive -e "show databases; exit;") 
for database in $databases;
do        
#獲取hive建表語句        
tables=$(hive -e "use $database; show tables;")       
 for table in $tables;        
 do                             
 echo "--=========== db: $database , table: $table ===========" >> $database.sql
 echo "$(hive -e "use $database;show create table $table;");" >> $database.sql
 done
done

尚未找到其餘方法。有其餘解決方法,能夠Mark一下我shell

方法二:數據庫

20191108今天有想出來一個方法,有點繁雜,但也是能夠的,用impala-shellbash

1.先準備一個文件(tables_name.txt),咱們會讀這個文件工具

[root@bigdata zw]# more tables_name.txt 
show create table cdata.c01_bill_distr_stat
show create table cdata.c01_bill_distr_stat_temp1
show create table cdata.c01_bill_pro_bal
show create table cdata.c01_bill_repay_stat
show create table cdata.c01_bill_repay_stat_temp1

2.一個小腳本spa

#!/usr/bin/python
# -*- coding:utf-8 -*-

import time,sys
import os
reload(sys)
sys.setdefaultencoding("utf8")



file=open("tables_name.txt")
send_file = file.readlines()
for i in send_file:
   os_cmd1 = "impala-shell -q 'use cdata' "
   os_cmd2 = "impala-shell -q '"+ i.strip('\n') +"'"
   os.system(os_cmd2)
file.close()

都放在一個目錄下,運行python腳本,這時候,日誌會打印到屏幕上,須要獲取屏幕上的日誌內容便可。日誌

我用的xshell工具code

 

 

 

這個時候,全部的日誌都會打印到文件中(bigdata_2019-11-08_17-20-11),能夠找到本身想要的內容。blog

相關文章
相關標籤/搜索