Introducción a la Tabla externa en Colmena
Una tabla externa es una tabla que describe el esquema o los metadatos de archivos externos. Fundamentalmente, hay dos tipos de tablas en HIVE: tablas administradas o internas y tablas externas. El propósito principal de definir una tabla externa es acceder y ejecutar consultas sobre datos almacenados fuera de la Colmena. Estos archivos de datos se pueden almacenar en otras herramientas como Pig, Azure storage Volumes (ASV) o en cualquier ubicación HDFS remota. Hive asume que no posee la propiedad de los datos de las tablas externas y, por lo tanto, no requiere administrar los datos como en las tablas administradas o internas. Además, para las tablas externas, los datos no se eliminan al eliminar la tabla.
Trabajar y crear tablas externas en la colmena
De forma predeterminada, en la colmena el directorio de tablas se crea bajo el directorio de la base de datos. La excepción es la base de datos predeterminada. La ubicación usuario / colmena / almacén no tiene un directorio, por lo que las tablas de base de datos predeterminadas tendrán su directorio creado directamente bajo esta ubicación. Se recomienda crear tablas externas si no queremos usar la ubicación predeterminada.
Comience Su Curso Gratuito de Ciencia de Datos
Hadoop, Ciencia de datos, Estadísticas & otros
Generalmente se utiliza una tabla externa cuando los datos se encuentran fuera de la colmena.
Vamos a crear una tabla externa usando la palabra clave «EXTERNAL» con el siguiente comando.
CREATE EXTERNAL TABLE if not exists students
(
Roll_id Int,
Class Int,
Name String,
Rank Int)
Row format delimited fields terminated by ‘,’
Location ‘/data/students_details’;
Salida:
También se puede crear una tabla externa copiando el esquema y los datos de una tabla existente, con el siguiente comando:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
Si omitimos la palabra clave EXTERNAL, la nueva tabla creada será externa si la tabla base es externa. Del mismo modo, si la tabla base se administra con la palabra clave externa, la nueva tabla creada será externa.
Para identificar el tipo de tabla creada, se puede usar la cláusula DESCRIBIR CON FORMATO. Al final de la descripción detallada de la tabla, el tipo de tabla de salida será «Tabla administrada»o» Tabla externa».
Las tablas con particiones ayudan a dividir los datos en subsegmentos lógicos o particiones, lo que hace que el rendimiento de las consultas sea más eficiente. Se puede crear una tabla con particiones como se ve a continuación.
CREATE EXTERNAL TABLE if not exists students
( roll_id Int,
name String,
Rank Int)
partitioned by (class Int)
Row format delimited fields terminated by ‘\t’
Salida:
Puede Haber Instancias cuando Se Cambia la Partición o la Estructura de Una Tabla Externa, Luego, mediante el Uso de Este Comando, se Puede Actualizar la Información de Metadatos:
MSCK REPAIR TABLE external_table_name
1. Tabla externa con particiones
Al crear una tabla externa sin particiones, se requiere la cláusula UBICACIÓN. Pero para una tabla externa con particiones, no es necesario. Se requiere la instrucción ALTER TABLE para agregar particiones junto con la cláusula LOCATION.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
De la Colmena v0.8.0 en adelante, se pueden agregar varias particiones en la misma consulta. Además, la ubicación de una partición se puede cambiar mediante la consulta a continuación, sin mover ni eliminar los datos de la ubicación anterior.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
Para soltar una partición, se utiliza la siguiente consulta:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
Este comando eliminará los datos y metadatos de la partición para tablas administradas o internas. Sin embargo, para las tablas externas, los datos no se eliminan.
2. Operaciones en la tabla externa
Las operaciones como SELECT, JOINS, ORDER BY, GROUP BY, CLUSTER BY y otras se implementan en tablas externas. Las tablas externas se pueden unir fácilmente con otras tablas para llevar a cabo manipulaciones de datos complejas. Los conceptos de particionamiento, encuadernación e indexación también se implementan en tablas externas de la misma manera que en tablas administradas o internas. Todas las propiedades de configuración de la colmena también son aplicables a tablas externas. Por ejemplo, configurando omitir.cabecera.alinear. Count = 1, podemos saltar la fila del encabezado del archivo de datos.
Todos los formatos de archivo como ORC, AVRO, TEXTFILE, SEQUENCE FILE o PARQUET son compatibles con las tablas internas y externas de Hive. Al crear una tabla, se utiliza la asignación de posiciones para insertar datos en la columna y se mantiene ese orden.
Tipos de datos en tablas externas: En tablas externas, los tipos de datos de recopilación también son compatibles con tipos de datos primitivos (como entero, cadena, carácter). Es necesario especificar los delimitadores de los elementos de los tipos de datos de recopilación (como una matriz, una estructura y un mapa).
¿Cuándo usar tablas externas en la Colmena?
Generalmente, las tablas internas se crean en el subárbol. Pero para ciertos escenarios, una tabla externa puede ser útil. Estos son:
- Cuando los datos se colocan fuera de la ubicación de la colmena o HDFS, la creación de una tabla externa ayuda, ya que las otras herramientas que pueden estar usando la tabla no colocan ningún bloqueo en estos archivos.
- Se puede crear una tabla externa cuando los datos no están presentes en ninguna tabla existente (es decir, utilizando la cláusula SELECT).
- La tabla externa debe crearse si no queremos que Hive posea los datos o tenga otros controles de datos.
- La tabla externa también evita cualquier pérdida accidental de datos, ya que al dejar caer una tabla externa, los datos de base no se eliminan. Esto actúa como una característica de seguridad en la colmena. Esta es la razón por la que TRUNCATE tampoco funcionará para tablas externas.
Características
Hay ciertas características en Hive que solo están disponibles para tablas administradas o externas. Estos son:
- Los comandos como ARCHIVAR / DESARCHIVAR/TRUNCAR/CONCATENAR / FUSIONAR funcionan solo para tablas internas.
- El ACID solo funciona para tablas administradas o internas.
- La cláusula DROP eliminará solo los metadatos de las tablas externas. Sin embargo, elimina los datos subyacentes también para las tablas internas.
- El almacenamiento en caché de resultados de consultas solo es posible para tablas administradas.
- La restricción de confianza solo se permite en tablas externas.
- Algunas características de las vistas materializadas funcionan solo para tablas administradas.
Conclusión
En este tutorial, vimos cuándo y cómo usar tablas externas en la colmena. Lo más destacado de este tutorial es crear un fondo en las tablas que no sean datos administrados y analizados fuera de la Colmena.
Artículos recomendados
Esta es una guía para la Tabla Externa en la Colmena. Aquí discutimos la introducción de Tablas Externas en la Colmena y las Características y Consultas. También puede consultar nuestros otros artículos relacionados para obtener más información:
- Particionamiento en Colmena
- Map Join in Hive
- Tipos de datos de Colmena
- Instalación de Colmena
- Guía para el clúster de Colmena Mediante