| Entrada | Salida | Alias |
|---|---|---|
| ✔ | ✗ |
Descripción
HiveText lee el formato de serialización de texto utilizado por las tablas de
Apache Hive (el formato generado por LazySimpleSerDe de Hive). Es un
formato de texto delimitado, similar a CSV, en el que los campos
están separados por el delimitador predeterminado de Hive \x01 (Ctrl-A). El delimitador de campos se
puede configurar mediante input_format_hive_text_fields_delimiter.
HiveText es un formato solo de entrada. Los datos no tienen fila de encabezado: los valores se
asignan por posición a las columnas de la tabla de destino, por lo que los nombres y tipos de
las columnas se toman de la tabla (o de una estructura proporcionada
explícitamente) en lugar de inferirse a partir de los datos. Durante la lectura, ClickHouse analiza
fechas y horas en modo de máximo esfuerzo (consulte date_time_input_format),
completa los campos finales omitidos con los valores predeterminados de las columnas y omite los campos que no
reconoce.
Dentro de un campo, los valores se analizan usando las mismas reglas de escape que CSV en lugar
de los delimitadores anidados de Hive. En particular, una columna de tipo
Array se lee a partir de la representación
entre corchetes (por ejemplo, "['a','b','c']"), no a partir de valores separados por
el delimitador de colección de Hive \x02.
La configuración de delimitadores anidados no tiene efectoLa configuración
input_format_hive_text_collection_items_delimiter y
input_format_hive_text_map_keys_delimiter se aceptan por
compatibilidad, pero actualmente no se usan durante el análisis.input_format_hive_text_allow_variable_number_of_columns):
las filas con menos campos que la tabla completan las columnas faltantes con
valores predeterminados, y en las filas con campos finales adicionales, esos campos extra se omiten.
Ejemplo de uso
,) mediante
input_format_hive_text_fields_delimiter, para que los archivos
de entrada sean más fáciles de leer.
Leer un archivo HiveText
hive_data.txt con campos separados por comas:
hive_data.txt
FORMAT HiveText:
Query
Response
1,3, solo tiene dos campos, por lo que la columna c
faltante se rellena con su valor predeterminado 0.
Número variable de columnas
input_format_hive_text_allow_variable_number_of_columns = 1,
las filas que tienen más campos que la tabla simplemente omiten los campos
adicionales al final:
hive_extras.txt
Query
Response
input_format_hive_text_allow_variable_number_of_columns = 0
impone un número estricto de campos, y una fila con menos campos que la tabla provoca
una excepción de análisis sintáctico.
Configuración de formato
| Configuración | Descripción | Predeterminado |
|---|---|---|
input_format_hive_text_fields_delimiter | Delimitador entre campos en Hive Text File | \x01 |
input_format_hive_text_collection_items_delimiter | Delimitador entre los elementos de una colección (array o map) en Hive Text File. Se acepta, pero actualmente no se usa al analizar. | \x02 |
input_format_hive_text_map_keys_delimiter | Delimitador entre una clave y su valor en map en Hive Text File. Se acepta, pero actualmente no se usa al analizar. | \x03 |
input_format_hive_text_allow_variable_number_of_columns | Ignora las columnas adicionales en la entrada de Hive Text (si el archivo tiene más columnas de las esperadas) y trata los campos ausentes como valores predeterminados | 1 |