Pular para o conteúdo principal

Descrição

HiveText lê o formato de serialização de texto usado pelas tabelas do Apache Hive (o formato gerado pelo LazySimpleSerDe do Hive). É um formato de texto delimitado, semelhante ao CSV, em que os campos são separados pelo delimitador padrão do Hive \x01 (Ctrl-A). O delimitador de campos pode ser configurado por meio de input_format_hive_text_fields_delimiter. HiveText é um formato apenas de entrada. Os dados não têm linha de cabeçalho: os valores são mapeados por posição para as colunas da tabela de destino, portanto os nomes e tipos das colunas são obtidos da tabela (ou de uma estrutura fornecida explicitamente), em vez de serem inferidos a partir dos dados. Durante a leitura, o ClickHouse analisa datas e horas no modo best effort (consulte date_time_input_format), preenche campos finais omitidos com os valores padrão das colunas e ignora campos que não reconhece. Dentro de um campo, os valores são analisados usando as mesmas regras de escape do CSV, em vez dos delimitadores aninhados do Hive. Em particular, uma coluna do tipo Array é lida a partir da representação entre colchetes (por exemplo, "['a','b','c']"), e não de valores separados pelo delimitador de coleção do Hive \x02.
As configurações de delimitadores aninhados não têm efeitoAs configurações input_format_hive_text_collection_items_delimiter e input_format_hive_text_map_keys_delimiter são aceitas por compatibilidade, mas atualmente não são usadas durante a análise.
Por padrão, as linhas podem ter um número variável de campos (consulte input_format_hive_text_allow_variable_number_of_columns): linhas com menos campos do que a tabela têm as colunas ausentes preenchidas com valores padrão, e linhas com campos extras no final têm esses campos extras ignorados.

Exemplo de uso

Os exemplos abaixo substituem o delimitador de campos padrão por uma vírgula (,) usando input_format_hive_text_fields_delimiter, para facilitar a leitura dos arquivos de entrada.

Leitura de um arquivo HiveText

Dado o arquivo hive_data.txt, com campos separados por vírgulas:
hive_data.txt
Criamos uma tabela que define os nomes e os tipos das colunas e inserimos nela o arquivo com FORMAT HiveText:
Query
Response
Observe que a primeira linha, 1,3, tem apenas dois campos, então a coluna ausente c é preenchida com o valor padrão 0.

Número variável de colunas

Com o padrão input_format_hive_text_allow_variable_number_of_columns = 1, as linhas que têm mais campos do que a tabela simplesmente têm os campos adicionais ao final ignorados:
hive_extras.txt
Query
Response
Em vez disso, definir input_format_hive_text_allow_variable_number_of_columns = 0 impõe uma contagem estrita de campos, e uma linha com menos campos do que a tabela gera uma exceção de análise.

Configurações de formato

Última modificação em 3 de julho de 2026