「テーブル」がすでにHiveにあると仮定すると、他のデータベースのように、そのテーブルの「CREATE」ステートメントを取得できる簡単な方法はありますか?
回答:
Hive 0.10以降、このパッチ-967SHOW CREATE TABLE
は、「CREATE TABLE
特定のテーブルCREATE VIEW
を作成するステートメント、または特定のビューを作成するステートメントを表示する」ことを実装しています。
使用法:
SHOW CREATE TABLE myTable;
HiveデータベースのすべてのテーブルのCreate Table DDLを生成し、後で実行するためにテキストファイルにエクスポートする手順:
ステップ1)以下の内容の.shファイルを作成します(hive_table_ddl.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'をパラメーターとして渡して上記のシェルスクリプトを実行します。
>bash hive_table_dd.sh <<databasename>>
出力:
DBのすべてのテーブル作成ステートメントがHiveTableDDL.txtに書き込まれます
フォーマット/拡張の説明は、ハイブ内のテーブルのデータ定義を示します
hive> describe Formatted dbname.tablename;