Jak pobrać / wygenerować instrukcję tworzenia dla istniejącej tabeli gałęzi?

91

Zakładając, że masz już „tabelę” w Hive, czy istnieje szybki sposób, podobnie jak inne bazy danych, aby uzyskać instrukcję „CREATE” dla tej tabeli?

Rolando
źródło

Odpowiedzi:

203

Od wersji Hive 0.10 ta poprawka 967 implementuje, SHOW CREATE TABLEco „pokazuje CREATE TABLEinstrukcję, która tworzy daną tabelę, lub CREATE VIEWinstrukcję, która tworzy dany widok”.

Stosowanie:

SHOW CREATE TABLE myTable;
Lukas Vermeer
źródło
27

Kroki, aby wygenerować Utwórz tabele ddls dla wszystkich tabel w bazie danych Hive i wyeksportować do pliku tekstowego, aby uruchomić później:

krok 1) utwórz plik .sh z poniższą zawartością, powiedzmy 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"

krok 2) Uruchom powyższy skrypt powłoki, przekazując parametr „nazwa bazy danych” jako parametr

>bash hive_table_dd.sh <<databasename>>

wynik :

Wszystkie instrukcje tworzenia tabeli bazy danych zostaną zapisane w pliku HiveTableDDL.txt

Aditya
źródło
1
w jaki sposób możemy się upewnić, że zasobniki i format przechowywania zostaną zreplikowane do nowej tabeli.
YouAreAwesome,
Po każdej instrukcji należy również dołączyć średnik, aby skrypt mógł zostać wykonany, wypowiadając hive -f HiveTableDDL.txt.
Muton
Ten skrypt kończy się niepowodzeniem z powodu poniższego błędu: Błąd podczas kompilowania instrukcji: FAILED: wiersz ParseException 1:18 nie może rozpoznać danych wejściowych w pobliżu „|” '|' w nazwie tabeli Wykonuję ten skrypt z beeline, ponieważ HDP 3.0 nie obsługuje dostępu do powłoki ula
Abhinav
@cfeduke ten skrypt podaje lokalizację tabel gałęzi. jak pominąć część lokalizacji w celu uruchomienia tych bibliotek ddl w innej lokalizacji ula? zmiana na więcej niż 1000 stołów nie jest możliwa
user1
2

Opisz sformatowany / rozszerzony wyświetli definicję danych tabeli w gałęzi

hive> describe Formatted dbname.tablename;
user2637464
źródło