#!/bin/bash
host=localhost
port=3306
user=bigdata
metastore=metastore
path=/opt/data/
sql="
SELECT
db_name AS "数据库名称",
tbl_name AS "数据表名称",
tbl_num_file AS "文件数量",
tbl_raw_data_size AS "占用空间",
-- tbl_total_size,type AS "所属用户类型",
create_time AS "创建时间",
tbl_transient_lastddl_time AS "修改时间",
tbl_type AS "表类型",
tbl_comment AS "表描述",
col_name AS "字段名称",
col_type_name AS "字段类型",
SD_ID,
COMMENT AS col_comment,
COLUMN_NAME AS col_name,
TYPE_NAME AS col_type_name
FROM (
SELECT
COLUMNS_V2.CD_ID,
SD_ID,
COMMENT,
COLUMN_NAME,
TYPE_NAME
FROM $metastore.COLUMNS_V2
INNER JOIN $metastore.SDS S ON COLUMNS_V2.CD_ID = S.CD_ID
) tbl_temp
) col
INNER JOIN (
SELECT
tbl.DB_ID,
tbl.TBL_ID,
tbl.SD_ID,
DB_NAME AS db_name,
TBL_NAME AS tbl_name,
tbl_num_file,
tbl_raw_data_size,
tbl_total_size,
tbl_num_row,
OWNER AS tbl_owner,
OWNER_TYPE AS tbl_owner_type,
FROM_UNIXTIME(CREATE_TIME) AS create_time,
-- IF(tbl_last_modified_time = 0, null,FROM_UNIXTIME(tbl_last_modified_time, '%Y-%m-%d %H:%i:%S')) tbl_last_modi
fied_time,
-- FROM_UNIXTIME(tbl_last_modified_time, '%Y-%m-%d %H:%i:%S') tbl_last_modified_time,
-- IF(tbl_transient_lastddl_time = 0, null,FROM_UNIXTIME(tbl_transient_lastddl_time, '%Y-%m-%d %H:%i:%S')) tbl_t
ransient_lastddl_time,
FROM_UNIXTIME(tbl_transient_lastddl_time, '%Y-%m-%d %H:%i:%S') tbl_transient_lastddl_time,
TBL_TYPE AS tbl_type,
tbl_comment
FROM (
SELECT
TBL_ID,
SUM(IF(tbl_temp.PARAM_KEY = 'numFiles', tbl_temp.PARAM_VALUE, 0)) AS tbl_num_file,
SUM(IF(tbl_temp.PARAM_KEY = 'rawDataSize', tbl_temp.PARAM_VALUE, 0)) AS tbl_raw_data_size,
SUM(IF(tbl_temp.PARAM_KEY = 'totalSize', tbl_temp.PARAM_VALUE, 0)) AS tbl_total_size,
SUM(IF(tbl_temp.PARAM_KEY = 'numRows', tbl_temp.PARAM_VALUE, 0)) AS tbl_num_row,
MAX(IF(tbl_temp.PARAM_KEY = 'transient_lastDdlTime', tbl_temp.PARAM_VALUE,0)) AS tbl_transient_lastddl_t
ime,
MAX(IF(tbl_temp.PARAM_KEY = 'last_modified_time', tbl_temp.PARAM_VALUE,0)) AS tbl_last_modified_time,
MAX(IF(tbl_temp.PARAM_KEY = 'comment', tbl_temp.PARAM_VALUE, 0)) AS tbl_comment
FROM (
(
SELECT
Part.TBL_ID,
PP.PARAM_KEY,
PP.PARAM_VALUE
FROM $metastore.PARTITIONS Part
INNER JOIN $metastore.PARTITION_PARAMS PP
ON Part.PART_ID = PP.PART_IDLL
SELECT *
FROM $metastore.TABLE_PARAMS
) tbl_temp
GROUP BY tbl_temp.TBL_ID
) tbl_base
INNER JOIN $metastore.TBLS tbl
ON tbl_base.TBL_ID = tbl.TBL_ID
INNER JOIN (
SELECT DB_ID, Name AS DB_NAME FROM $metastore.DBS -- WHERE NAME='tz_parking'
) db_info
ON db_info.DB_ID=tbl.DB_ID
) tbl
ON tbl.SD_ID=col.SD_ID
ORDER BY db_name,tbl_name
;
"
result=$(mysql -h $host -P $port -u$user -p -e "$sql" >${path}hive_meta.xls)
hive-batch-export.sh
#!/bin/bash
rm -rf tablesDDL.txt
for hiveTabName in $(hive -e "show tables 'rcd*';")
do
hive -e "show create table $hiveTabName" >>tablesDDL.txt
echo -e "---------------------------- $hiveTabName table structure generate finished! -------------------------------\n\n">>tablesDDL.txt
done