[sql] 기존 하이브 테이블에 대한 create 문을 가져 오거나 생성하는 방법은 무엇입니까?
Hive에 이미 “테이블”이 있다고 가정하면 다른 데이터베이스처럼 해당 테이블에 대한 “CREATE”문을 가져올 수있는 빠른 방법이 있습니까?
답변
답변
Hive 데이터베이스의 모든 테이블에 대해 테이블 ddl을 생성하고 나중에 실행할 수 있도록 텍스트 파일로 내보내는 단계 :
1 단계) hive_table_ddl.sh와 같이 아래 내용으로 .sh 파일을 만듭니다.
#!/bin/bash
rm -f tableNames.txt
rm -f HiveTableDDL.txt
hive -e "use $1; show tables;" > tableNames.txt
wait
cat tableNames.txt |while read LINE
do
hive -e "use $1;show create table $LINE;" >>HiveTableDDL.txt
echo -e "\n" >> HiveTableDDL.txt
done
rm -f tableNames.txt
echo "Table DDL generated"
2 단계) ‘db name’을 paramanter로 전달하여 위의 셸 스크립트를 실행합니다.
>bash hive_table_dd.sh <<databasename>>
출력 :
DB의 모든 테이블 생성 문은 HiveTableDDL.txt에 작성됩니다.
답변
형식화 / 확장 설명은 하이브에있는 테이블의 데이터 정의를 표시합니다.
hive> describe Formatted dbname.tablename;
