Para responder a su pregunta:
Para las tablas externas, Hive almacena los datos en la UBICACIÓN especificada durante la creación de la tabla (generalmente no en el directorio del almacén). Si se descarta la tabla externa, se eliminan los metadatos de la tabla, pero no los datos.
Para las tablas internas, Hive almacena datos en su directorio de almacén. Si se elimina la tabla, se eliminarán tanto los metadatos como los datos de la tabla.
Para tu referencia,
Diferencia entre tablas internas y externas:
Para mesas externas -
La tabla externa almacena archivos en el servidor HDFS, pero las tablas no están vinculadas al archivo fuente por completo.
Si elimina una tabla externa, el archivo aún permanece en el servidor HDFS.
Por ejemplo, si crea una tabla externa llamada "table_test" en HIVE usando HIVE-QL y vincula la tabla al archivo "file" , entonces eliminar "table_test" de HIVE no eliminará "file" de HDFS .
Los archivos de tablas externos son accesibles para cualquier persona que tenga acceso a la estructura de archivos HDFS y, por lo tanto, la seguridad debe administrarse a nivel de archivo / carpeta HDFS.
Los metadatos se mantienen en el nodo principal y, al eliminar una tabla externa de HIVE, solo se eliminan los metadatos, no los datos / archivos.
Para tablas internas
- Almacenado en un directorio basado en la configuración en
hive.metastore.warehouse.dir
,
de forma predeterminada, las tablas internas se almacenan en el siguiente directorio "/ usuario / colmena / almacén" . Puede cambiarlo actualizando la ubicación en el archivo de configuración.
- Al eliminar la tabla, se eliminan los metadatos y los datos del nodo principal y HDFS, respectivamente.
- La seguridad del archivo de tabla interno se controla únicamente a través de HIVE. La seguridad debe gestionarse dentro de HIVE, probablemente a nivel de esquema (depende de la organización).
Hive puede tener tablas internas o externas, esta es una opción que afecta la forma en que se cargan, controlan y administran los datos.
Utilice tablas EXTERNAS cuando:
- Los datos también se utilizan fuera de Hive . Por ejemplo, los archivos de datos son leídos y procesados por un programa existente que no bloquea los archivos.
- Los datos deben permanecer en la ubicación subyacente incluso después de una DROP TABLE.Esto se puede aplicar si apunta varios esquemas (tablas o vistas) a un solo conjunto de datos o si está iterando a través de varios esquemas posibles.
- Hive no debe poseer datos y configuraciones de control, directorios, etc. , es posible que tenga otro programa o proceso que haga esas cosas.
- No está creando una tabla basada en una tabla existente (COMO SELECCIONAR).
Utilice tablas INTERNAS cuando:
- Los datos son temporales .
- Desea que Hive administre completamente el ciclo de vida de la tabla y los datos .
Fuente :
HDInsight: Introducción a las tablas internas y externas de Hive
Tablas internas y externas en Hadoop- HIVE