Logotipo de Zephyrnet

COLMENA: MESAS INTERNAS Y EXTERNAS

Fecha:

Hive es uno de los sistemas de almacenamiento de datos más populares en la industria para el almacenamiento de datos, y para almacenar estos datos, Hive usa tablas. Las tablas de la colmena son análogas a las tablas de un sistema de gestión de bases de datos relacionales. Cada tabla pertenece a un directorio en HDFS. Por defecto, es / usuario / colmena / almacén directorio. Por ejemplo, una mesa llamada estudiantes estará ubicada en /usuario/colmena/almacén/estudiantes.

1. TABLA INTERNA (Tabla Administrada)

2. MESA EXTERNA

Cuando un usuario crea una tabla en Hive, por defecto es una tabla interna creada en el / usuario / colmena / almacén directorio en HDFS, que es su ubicación de almacenamiento predeterminada. Los datos presentes en la tabla interna se almacenarán en este directorio y Hive los administrará por completo y, por lo tanto, una tabla interna también se denomina tabla administrada.

Columna Tipo de Propiedad
 nombre Cordón
 clase Matriz de cadenas
 género_edad Struct (para contener diferentes tipos de datos en una estructura)
puntuación_subj MAP (para contener temas y sus puntajes)

Por defecto, la tabla creada en la colmena es una tabla interna, por lo que no necesitamos especificar un interno palabra clave durante la creación de la tabla.

En la consulta anterior, usamos el "comentario"  palabra clave para referirnos a la tabla como "Tabla interna de estudiantes" para nuestra propia referencia, pero puede comentarla como desee.

Al usar las palabras clave formato de filas delimitado y campos terminados por ('|') informamos a Hive sobre el formato de los datos. Las columnas se pueden diferenciar mediante el símbolo de barra vertical (|). Esto ayuda a Hive a comprender cómo leer y escribir los datos.

Mapa llaves en el 'subj_score' columna se puede diferenciar por el símbolo (:) y el -- artículos en el 'género_edad' La estructura se diferencia mediante el símbolo (,).

Ahora que hemos aprendido a crear una tabla interna, veamos cómo podemos cargar los datos y llenarlos.

Cargando los datos

Para cargar los datos, usamos el siguiente comando:

CARGAR DATOS ENTRADA LOCAL '/home/Hadoop/student.txt'
SOBREESCRIBIR EN LA TABLA estudiante_interno

Aquí estamos importando los datos de un archivo presente en la ruta HDFS local.'/home/Hadoop/estudiante.txt' y sobrescribir o podemos decir cargándolo en el estudiante_interno tabla que creamos arriba.

Almacenamiento

Una tabla interna se almacena en HDFS en el / usuario / colmena / almacén directorio que es su ubicación de almacenamiento predeterminada. Esta ubicación se puede cambiar actualizando la ruta en el archivo de configuración presente en el archivo de configuración: colmena.metastore.warehouse.dir.

También podemos alterar la ubicación de la tabla proporcionando una nueva ruta presente en HDFS usando la UBICACIÓN ESTABLECIDA cláusula.

 ALTER TABLE estudiante_interno
ESCOGER LOCALIZACIÓN
 'hdfs://localhost:8020/usuario/tablas/estudiante';

Seguridad

Hive es exclusivamente responsable de la seguridad y gestión de los datos presentes en la tabla interna.

Si eliminamos la tabla con el comando soltar, los metadatos, así como los datos presentes en la tabla, se eliminarán del nodo maestro y HDFS respectivamente. Por lo tanto, se recomienda encarecidamente que nunca use el comando soltar en una tabla interna porque puede estar sirviendo a una línea de producción de una empresa.

Como solución a este problema, podemos utilizar HABILITAR NO_DROP cláusula para modificar la tabla, lo que evitará que la tabla se elimine.

> ALTER TABLE student_internal HABILITAR NO_DROP;

Si queremos evitar que se consulten los datos, entonces podemos usar el HABILITAR EN LÍNEA cláusula.

> ALTER TABLE student_internal HABILITAR SIN CONEXIÓN;

Uso

Podemos usar una tabla interna si:

1. Los datos son temporales y no afectan a las empresas en tiempo real.

2. Si queremos que la colmena gestione los datos y las tablas.

 

Mesa Externa

Cuando un usuario crea una tabla en Hive especificando la palabra clave externa, se crea una tabla externa. HDFS administrará completamente los datos presentes en la tabla externa, a diferencia de una tabla interna.

Creando una tabla

Para crear una tabla externa, usamos el comando de flujo:

>CREAR TABLA EXTERNA estudiante_externo
(
 cadena de nombre,
matriz de clase,
género_edad STRUCT,
subj_puntuación MAPA
 )
 COMENTARIO 'Tabla de alumnos externa'
 FORMATO DE FILA DELIMITADO
 CAMPOS TERMINADOS POR '|'
 ARTÍCULOS DE COLECCIÓN TERMINADOS POR ','
 CLAVES DEL MAPA TERMINADAS POR ':'
 ALMACENADO COMO ARCHIVO DE TEXTO;
 LOCATION '/usuario/tablas/estudiantes';

                Como se ve arriba, la tabla externa tiene 4 columnas:

Columna Tipo de Propiedad
nombre Cordón
clase Matriz de cadenas
género_edad Struct (para contener diferentes tipos de datos en una estructura)
puntuación_subj MAP (para contener temas y sus puntajes)

La consulta de creación de tablas externas tiene la misma intuición y sintaxis que la tabla interna.

Tenga en cuenta que al crear una tabla externa especificamos la palabra clave EXTERNA para informar a Hive para crear una tabla externa para nosotros.

Ahora que hemos aprendido a crear una tabla externa, veamos cómo podemos cargar los datos y llenarlos.

Cargando los datos

Para cargar los datos, usamos el siguiente comando:

>CARGAR DATOS ENTRADA LOCAL '/home/Hadoop/student.txt'
 SOBREESCRIBIR EN LA TABLA estudiante_externo

Similar a la tabla interna, estamos importando los datos de un archivo presente en la ruta HDFS local-'/home/Hadoop/student.txt' y sobrescribiendo o podemos decir cargándolos en la tabla student_external que creamos anteriormente.

Almacenamiento

Una tabla externa se almacena en HDFS o cualquier almacenamiento compatible con HDFS, porque queremos usar los datos fuera de Hive. Por lo tanto, Hive no es responsable de administrar el almacenamiento de la tabla externa. Las tablas se pueden almacenar en una ubicación externa, por ejemplo, en una plataforma en la nube como Google Cloud o AWS.

Seguridad

Las tablas externas y los archivos de origen están vinculados, pero no del todo. Hay cierto nivel de abstracción entre la tabla externa y los archivos fuente.

Permítanme explicar a través de un ejemplo, supongamos que hay una tabla externa llamada 'estudiante_ext' en Hive que está accediendo a los datos a través del archivo fuente llamado 'studentdb.txt', luego, si elimino la tabla 'ext_student', el archivo vinculado a ella 'studentdb.txt' no se eliminará de HDFS.

Por lo tanto, al eliminar la tabla de Hive, solo se eliminan los metadatos del nodo principal y no el archivo de origen real.

Ahora, esto presenta una situación interesante ya que ya no podemos consultar los datos como el el esquema se elimina cuando soltamos la tabla, para recuperar la capacidad de consultar los datos, simplemente podemos crear la misma tabla nuevamente usando los comandos de creación de tablas y apuntarla a la misma ubicación que antes y podemos consultar los datos sin problemas nuevamente.

La seguridad de las tablas externas se gestiona a nivel de HDFS, ya que cualquiera que tenga acceso a la estructura de archivos HDFS puede acceder a una tabla externa.

Uso 

Podemos usar una tabla externa si:

1. Queremos usar datos fuera de HIVE para realizar diferentes operaciones, como cargar y fusionar.

2. Los datos son de calidad de producción.

 

RENUNCIA

En este artículo, hemos aprendido a diferenciar entre tablas internas y externas en Hive en varias dimensiones, a saber, almacenamiento, seguridad y uso.

Si tiene alguna pregunta relacionada con este artículo, hágamelo saber en la sección de comentarios a continuación.

Lea más artículos sobre Hive en nuestro blog. Hacer clic esta página.

Fuente: https://www.analyticsvidhya.com/blog/2022/01/hive-internal-and-external-tables/

punto_img

vidacienciav

VC académico

Información más reciente

café vc

vidacienciav

punto_img