Basado en la Colmena doc a continuación:

Cambiar El Nombre De La Tabla

ALTER TABLE nombre_tabla cambiar el nombre A new_table_name;

Esta instrucción le permite cambiar el nombre de una tabla con un nombre diferente.

A partir de la versión 0.6, un cambio de nombre en una tabla administrada mueve su HDFS ubicación. (La más antigua de la Colmena versiones cambiado el nombre de la tabla en la metastore sin mover el HDFS ubicación).

Hay alguna forma de cambiar el nombre de una tabla sin necesidad de cambiar la ubicación?

¿Has probado el uso de tablas externas en lugar de la colmena administrado tablas: cwiki.apache.org/confluence/display/Hive/…
Incluso con una «gestión» de la tabla, usted debería ser capaz de crear un no-default ubicación => cambiar nombre y, a continuación, cambiar el ubicación de vuelta a la original por defecto, a continuación, mueva todos los archivos HDFS de vuelta… En este punto, usted debe preguntarse: ¿por qué necesito la fuerza de la ubicación? ¿Tiene sentido?? Que dar ninguna razón para ello, así que yo supongo que es una mala idea.

OriginalEl autor Osiris | 2016-03-12

2 Comentarios

  1. 4

    Como de la Colmena 2.2.0 una tabla administrada del HDFS ubicación se mueve sólo si la tabla es creada sin una cláusula de emplazamiento y en virtud de su base de datos de directorio.Enlace

    OriginalEl autor sdikby

  2. 4

    Sí podemos hacerlo. Sólo tienes que seguir a continuación los tres comandos en secuencia.

    1. Digamos que usted tiene una tabla externa test_1 en la colmena. Y de la que desea cambiarle el nombre test_2 que deben punto test_2 ubicación no test_1. Entonces usted necesita para convertir esta tabla en tabla Administrada usando el siguiente comando.
      test_1 -> señalando test_1 ubicación

      ALTER TABLE db_name.test_1 SET TBLPROPERTIES('EXTERNAL'='FALSE');
      
    2. Cambie el nombre de la tabla.

      ALTER TABLE db_name.test_1 RENAME TO db_name.test_2;
      
    3. De nuevo convertir la tabla administrada después de cambiar el nombre a la tabla externa.

      ALTER TABLE db_name.test_2 SET TBLPROPERTIES('EXTERNAL'='TRUE');
      

    db_name.test_2 tabla de punto de la test_2 ubicación. Si lo hacemos sin hacer el administrado mesa y será punto de la test_1 ubicación.

    OriginalEl autor Sanjeev

Dejar respuesta

Please enter your comment!
Please enter your name here