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?

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;

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


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;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.