web-dev-qa-db-ja.com

既存のHiveテーブルのcreateステートメントを取得/生成する方法は?

Hiveに既に「テーブル」があると仮定すると、他のデータベースのように、そのテーブルの「CREATE」ステートメントを取得できる簡単な方法はありますか?

80
Rolando

Hive 0.10以降 this patch-967 は、「特定のテーブルを作成するSHOW CREATE TABLEステートメント、または特定のビューを作成するCREATE TABLEステートメントを表示するCREATE VIEW」を実装します。

使用法:

SHOW CREATE TABLE myTable;
175
Lukas Vermeer

生成手順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に書き込まれます。

20
Aditya

[フォーマット/拡張の説明]は、Hiveのテーブルのデータ定義を表示します

Hive> describe Formatted dbname.tablename;
3
user2637464