Hiveに既に「テーブル」があると仮定すると、他のデータベースのように、そのテーブルの「CREATE」ステートメントを取得できる簡単な方法はありますか?
Hive 0.10以降 this patch-967 は、「特定のテーブルを作成するSHOW CREATE TABLE
ステートメント、または特定のビューを作成するCREATE TABLE
ステートメントを表示するCREATE VIEW
」を実装します。
使用法:
SHOW CREATE TABLE myTable;
生成手順Hiveデータベース内のすべてのテーブルのテーブルddlsを作成し、テキストファイルにエクスポートして後で実行します。
ステップ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のテーブルのデータ定義を表示します
Hive> describe Formatted dbname.tablename;