Bagaimana cara mendapatkan / menghasilkan pernyataan create untuk tabel sarang yang sudah ada?

91

Dengan asumsi Anda sudah memiliki "tabel" di Hive, apakah ada cara cepat seperti database lain untuk bisa mendapatkan pernyataan "CREATE" untuk tabel itu?

Rolando
sumber

Jawaban:

203

Pada Hive 0,10 ini patch-967 alat SHOW CREATE TABLEyang "menunjukkan para CREATE TABLEpernyataan yang menciptakan tabel tertentu, atau CREATE VIEWpernyataan yang menciptakan tampilan yang diberikan."

Pemakaian:

SHOW CREATE TABLE myTable;
Lukas Vermeer
sumber
27

Langkah-langkah untuk membuat Buat ddls tabel untuk semua tabel di database Hive dan ekspor ke file teks untuk dijalankan nanti:

langkah 1) buat file .sh dengan konten di bawah ini, katakanlah 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"

langkah 2) Jalankan skrip shell di atas dengan meneruskan 'nama db' sebagai paramanter

>bash hive_table_dd.sh <<databasename>>

keluaran:

Semua pernyataan buat tabel dari DB Anda akan ditulis ke dalam HiveTableDDL.txt

Aditya
sumber
1
bagaimana kami dapat memastikan bahwa bucket dan format penyimpanan akan direplikasi ke dalam tabel baru.
YouAreAwesome
Anda juga harus menambahkan titik koma setelah setiap pernyataan sehingga skrip dapat dieksekusi dengan mengatakan hive -f HiveTableDDL.txt.
Muton
Skrip ini gagal untuk saya dengan kesalahan di bawah ini: Kesalahan saat menyusun pernyataan: FAILED: ParseException baris 1:18 tidak dapat mengenali input di dekat '|' '|' dalam nama tabel Saya menjalankan skrip ini dengan langsung karena HDP 3.0 tidak mendukung akses hive-shell
Abhinav
@cfeduke skrip ini memberikan lokasi tabel sarang. bagaimana cara melewati bagian lokasi inorder untuk menjalankan ddl ini di lokasi sarang lain? mengubah lebih dari 1000 tabel tidak mungkin
pengguna1
2

Describe Formatted / Extended akan menampilkan definisi data tabel dalam sarang

hive> describe Formatted dbname.tablename;
pengguna2637464
sumber