方法一: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