Definición de formatos de registro en la tabla de la colmena

La tecnología Java que Hive utiliza para procesar los registros y asignarlos a los tipos de datos de columna en tablas colmena se llama SerDe, que es la abreviatura de SerializerDeserializador. La figura ilustra cómo SerDes están apalancados y que le ayudará a entender cómo Colmena mantiene formatos de archivos separados de formatos de registro.

imagen0.jpg

Así que la primera cosa a notar es la InputFormat objeto. InputFormat permite especificar su propia clase Java si quieres Colmena leer desde un formato de archivo diferente. Almacena como TEXTFILE es más fácil que la escritura InputFormat org.apache.hadoop.mapred.TextInputFormat - todo el paquete de árbol de Java y el nombre de la clase para el objeto de formato de entrada archivo de texto por defecto, en otras palabras.

Lo mismo es cierto del FORMATO DE SALIDA objeto. En lugar de escribir todo el árbol de paquetes y clases nombre Java, el Almacena como TEXTFILE declaración se encarga de todo eso para usted.

Hive permite separar el formato de registro de su formato de archivo, así que ¿cómo es exactamente lo que lograr esto? Simple, ya sea reemplazar Almacena como TEXTFILE con algo como Almacenado como fichero de recursos, o usted puede crear su propia clase Java y especificar las clases de entrada y salida utilizando InputFormat packagepath.classname y Packagepath.classname OUTPUTFORMAT.

Finalmente se dio cuenta de que cuando la colmena está leyendo datos desde el HDFS (o sistema de archivos local), un deserializador Java da formato a los datos en un registro que se asigna a los tipos de datos de columna de tabla. Esto sería caracterizar el flujo de datos para un HiveQL SELECT comunicado. Cuando la colmena está escribiendo datos, un serializador Java acepta el registro utiliza Hive y lo traduce de forma que el FORMATO DE SALIDA clase puede escribir al HDFS (o sistema de archivos local).

Esto sería caracterizar el flujo de datos para un HiveQL CREAR MESA-AS-SELECT comunicado. Entonces el InputFormat, FORMATO DE SALIDA y objetos SerDe permiten colmena para separar el formato de registro de la tabla del formato de archivo de la tabla.

Hive agrupa una serie de SerDes para que usted pueda elegir, y usted encontrará un número mayor disponible de terceros si usted busca en línea. También puede desarrollar sus propias SerDes si usted tiene un tipo de datos más inusual que desea administrar con una mesa Colmena. (Posibles ejemplos aquí son los datos de vídeo y datos de correo electrónico.)

A continuación, algunos de los SerDes provistos con la Colmena se describen, así como una opción de terceros que pueden serle de utilidad.

  • LazySimpleSerDe: El SerDe predeterminado que se utiliza con el ARCHIVO DE TEXTO formateada sería utilizado con our_first_table en la siguiente lista.

    (LA) $ $ HIVE_HOME / bin colmena --service cli(B) colmena> set hive.cli.print.current.db = cierto-(C) colmena (predeterminado)> CREATE DATABASE ourfirstdatabase-OKTime tomada: 3.756 segundos(D) colmena (predeterminado)> USO ourfirstdatabase-OKTime tomada: 0.039 segundos(E) colmena (ourfirstdatabase)> CREAR our_first_table MESA (> FirstName CADENA,> LastNameSTRING,> EmployeeId INT) -OKTime tomada: 0.043 secondshive (ourfirstdatabase)> quit-(F) $ Ls /home/biadmin/Hive/warehouse/ourfirstdatabase.dbour_first_table

    También sería utilizado con data_types_table en la siguiente lista.

    $ ./hive --service Clihive> CREATE DATABASE data_types_db-OKTime tomada: 0.119 secondshive> USO data_types_db-OKTime tomada: 0.018 segundos(1)Hive> CREAR data_types_table MESA ((2) > TINYINT our_tinyint COMENTARIO '1 byte entero con signo',(3) > COMENTARIO our_smallintSMALLINT '2 bytes firmó entero',(4) > INT our_int COMENTARIO '4 bytes entero con signo',(5) > Our_bigint BIGINTCOMMENT '8 bytes entero con signo',(6) > Our_float FLOAT COMENTARIO 'Single precisión de punto flotante',(7) > Our_double DOUBLECOMMENT 'doble precisión de punto flotante',(8) > Our_decimal DECIMAL COMENTARIO tipo decimal exacto basa '(9) > En Java BigDecimal Objeto ',(10) > Our_timestamp TIMESTAMP COMENTARIO 'AAAA-MM-DD HH: MM: ss.fffffffff "(11) > (9 decimal de precisión) ',(12) > Our_boolean BOOLEANA COMENTARIO 'tipo de datos booleano VERDADERO o FALSO',(13) > Our_string STRINGCOMMENT 'cadena de caracteres de tipo de datos',(14) > BINARYCOMMENT our_binary 'Tipo de datos para almacenar arbitraria(15) > Número de bytes ',(16) > ARRAY our_array COMENTARIO 'Una colección de campos de todos(17) > El mismo tipo de datos indexados por(18) > Un entero ',(19) > Our_map MAPA COMENTARIO 'Una colección de pares de valores clave,(20) > Donde la clave es un primitivo(21) > Tipo y el valor puede ser(22) > Nada. Los datos elegidos(23) > Tipos de las claves y valores(24) > Debe seguir siendo el mismo por mapa ',(25) > Our_structSTRUCT(26) > COMENTARIO 'Un dato complejo anidado(27) > estructura ",(28) > UNIONTYPE our_union(29) > COMENTARIO 'A Complex Tipo de datos que pueden(30) > mantener Uno de sus datos Posible(31) > Tipos a la vez ')(32) > COMENTARIO 'Tabla que ilustra todos los tipos de datos Apache Hive'(33) > FORMATO FILA DELIMITED(34) > FIELDS TERMINATED BY ','(35) > Objetos de colección TERMINATED BY '|'(36) > CLAVES MAPA TERMINATED BY '^'(37) > LINES TERMINATED BY ' n'(38) > Almacena como TEXTFILE(39) > TBLPROPERTIES ('creador' = 'Bruce Brown', 'created_at' = 'sáb 21 de septiembre 2013 20:46:32 EDT') - OKTime tomada: 0,886 segundos
  • ColumnarSerDe: Se utiliza con el Fichero_de_recursos formato.

  • RegexSerDe: El SerDe expresión regular, que se incluye con la colmena para que el análisis de los archivos de texto, RegexSerDe puede formar un enfoque poderoso para la construcción de datos estructurados en tablas Hive blogs no estructurados, archivos de registro semiestructuradas, correos electrónicos, mensajes de twitter y otros datos de Medio social. Las expresiones regulares permiten extraer información significativa (una dirección de correo electrónico, por ejemplo) con HiveQL de un documento estructurado o semiestructurado texto incompatible con SQL tradicional y RDBMS.

  • HBaseSerDe: Incluido con Hive a le permite integrarse con HBase. Puede almacenar tablas Colmena en HBase mediante el aprovechamiento de este SerDe.

  • JSONSerDe: Un SerDe terceros para la lectura y escritura de los registros de datos JSON con Hive. Usted puede encontrar rápidamente (a través de Google y GitHub) de dos JSON SerDes buscando en línea para la frase serde json por colmena.

  • AvroSerDe: Incluido con la colmena para que pueda leer y escribir datos en tablas Avro Hive.

Revisar el DDL Manual de lenguaje puede ser muy útil antes de empezar a crear sus tablas.




» » » » Definición de formatos de registro en la tabla de la colmena