Buscar..


SEQUENCEFILE

Almacene los datos en SEQUENCEFILE si los datos necesitan ser comprimidos. Puede importar archivos de texto comprimidos con Gzip o Bzip2 directamente en una tabla almacenada como TextFile. La compresión se detectará automáticamente y el archivo se descomprimirá sobre la marcha durante la ejecución de la consulta.

CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE;

ORC

El formato de archivo Optimized Row Columnar (ORC) proporciona una forma altamente eficiente de almacenar datos de Hive. Fue diseñado para superar las limitaciones de los otros formatos de archivo Hive. El uso de archivos ORC mejora el rendimiento cuando Hive lee, escribe y procesa datos. El archivo ORC puede contener índices ligeros y filtros de floración.

Consulte: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

ORC es un formato recomendado para almacenar datos dentro de la distribución de HortonWorks.

CREATE TABLE tab_orc (col1 STRING,
                      col2 STRING,
                      col3 STRING)
STORED AS ORC
TBLPROPERTIES (
               "orc.compress"="SNAPPY",
               "orc.bloom.filter.columns"="col1",
               "orc.create.index" = "true" 
              ) 

Para modificar una tabla para que las nuevas particiones de la tabla se almacenen como archivos ORC:

ALTER TABLE T SET FILEFORMAT ORC; 

A partir de Hive 0.14, los usuarios pueden solicitar una combinación eficiente de pequeños archivos ORC al emitir un comando CONCATENATE en su tabla o partición. Los archivos se fusionarán a nivel de banda sin reserialización.

ALTER TABLE T [PARTITION partition_spec] CONCATENATE;

PARQUET

Parquet en formato de almacenamiento columnar en Hive 0.13.0 y posteriores. Parquet está construido desde cero con complejas estructuras de datos anidadas en mente, y utiliza el algoritmo de fragmentación y ensamblaje de registros descrito en el documento de Dremel. Creemos que este enfoque es superior al simple aplanamiento de espacios de nombres anidados.

Parquet está construido para soportar esquemas de compresión y codificación muy eficientes. Varios proyectos han demostrado el impacto en el rendimiento de la aplicación de la compresión correcta y el esquema de codificación a los datos. Parquet permite que los esquemas de compresión se especifiquen en un nivel por columna, y está preparado para el futuro para permitir agregar más codificaciones a medida que se inventan e implementan.

Se recomienda parquet Formato de archivo con tablas de impala en las distribuciones de Cloudera.

Ver: http://parquet.apache.org/documentation/latest/

CREATE TABLE parquet_table_name (x INT, y STRING) STORED AS PARQUET;

AVRO

Los archivos Avro se admiten en Hive 0.14.0 y versiones posteriores.

Avro es un marco de llamada a procedimiento remoto y serialización de datos desarrollado dentro del proyecto Hadoop de Apache. Utiliza JSON para definir tipos de datos y protocolos, y serializa los datos en un formato binario compacto. Su uso principal es en Apache Hadoop, donde puede proporcionar un formato de serialización para datos persistentes y un formato de conexión para la comunicación entre los nodos de Hadoop y de los programas del cliente a los servicios de Hadoop.

Especificación del formato AVRO: https://avro.apache.org/docs/1.7.7/spec.html

CREATE TABLE kst
PARTITIONED BY (ds string)
STORED AS AVRO
TBLPROPERTIES (
  'avro.schema.url'='http://schema_provider/kst.avsc');

También podemos usar la siguiente sintaxis sin usar el archivo de esquema.

CREATE TABLE kst (field1 string, field2 int)
PARTITIONED BY (ds string)
STORED AS AVRO;

En los ejemplos anteriores, la cláusula STORED AS AVRO es equivalente a:

ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'

Archivo de texto

TextFile es el formato de archivo predeterminado, a menos que el parámetro de configuración hive.default.fileformat tenga una configuración diferente. Podemos crear una tabla en la sección utilizando los nombres de campo en nuestro archivo de texto delimitado. Digamos, por ejemplo, que nuestro archivo csv contiene tres campos (id, nombre, salario) y queremos crear una tabla en la colmena llamada "empleados". Usaremos el siguiente código para crear la tabla en la colmena.
CREATE TABLE employees (id int, name string, salary double) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Ahora podemos cargar un archivo de texto en nuestra tabla:

LOAD DATA LOCAL INPATH '/home/ourcsvfile.csv' OVERWRITE INTO TABLE employees;

Mostrando el contenido de nuestra tabla en la colmena para verificar si los datos se cargaron exitosamente:

SELECT * FROM employees;



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow