¿Cómo obtener / generar la declaración de creación para una tabla de colmena existente?


91

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

Respuestas:



27

Pasos para generar Create table ddls para todas las tablas en la base de datos de Hive y exportar a un archivo de texto para ejecutarlo más tarde:

paso 1) cree un archivo .sh con el contenido a continuación, digamos 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 declaraciones de creación de tablas de su base de datos se escribirán en HiveTableDDL.txt


1
cómo podemos asegurarnos de que los depósitos y el formato de almacenamiento se replicarán en una nueva tabla.
YouAreAwesome

También debe agregar un punto y coma después de cada declaración para que el script pueda ejecutarse diciendo hive -f HiveTableDDL.txt.
Muton

Este script me está fallando con el siguiente error: Error al compilar la declaración: FAILED: ParseException línea 1:18 no puede reconocer la entrada cerca de '|' '|' en el nombre de la tabla, estoy ejecutando este script con beeline ya que HDP 3.0 no es compatible con el acceso de hive-shell
Abhinav

@cfeduke este script proporciona la ubicación de las tablas de colmena. ¿Cómo omitir la parte de ubicación para ejecutar estos ddls en otra ubicación de la colmena? no es posible alterar en más de 1000 mesas
user1

2

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

hive> describe Formatted dbname.tablename;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.