¿Cómo obtener / generar la instrucción create para una tabla hive existente?


Suponiendo que ya tiene "table" en Hive, ¿hay una forma rápida como otras bases de datos para poder obtener la instrucción "CREATE" para esa tabla?

 63
Author: Rolando, 2013-08-08

3 answers

A partir de Hive 0.10 este parche -967 implementa SHOW CREATE TABLE que "muestra la instrucción CREATE TABLE que crea una tabla dada, o la instrucción CREATE VIEW que crea una vista dada."

Uso:

SHOW CREATE TABLE myTable;
 147
Author: Lukas Vermeer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-09 07:08:19

Pasos para generar Crear tablas ddls para todas las tablas de la base de datos de la colmena y exportarlas a un archivo de texto para ejecutarlas más tarde:

Paso 1) cree un archivo. sh con el contenido a continuación, por ejemplo 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"

Paso 2) Ejecute el script de shell anterior pasando 'db name' como paramanter

>bash hive_table_dd.sh <<databasename>>

Salida:

Todas las sentencias create table de tu BD se escribirán en HiveTableDDL.txt

 13
Author: Aditya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-03 07:12:30

Describe Formatted / Extended mostrará la definición de datos de la tabla en la colmena

hive> describe Formatted dbname.tablename;
 4
Author: user2637464,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-08 15:12:56