Pular para o conteúdo principal
EntradaSaídaAlias

Descrição

Apache ORC é um formato de armazenamento colunar amplamente utilizado no ecossistema Hadoop.

Correspondência de tipos de dados

A tabela abaixo compara os tipos de dados ORC suportados e os tipos de dados correspondentes do ClickHouse em consultas INSERT e SELECT.
Tipo de dado ORC (INSERT)Tipo de dado ClickHouseTipo de dado ORC (SELECT)
BooleanUInt8Boolean
TinyintInt8/UInt8/Enum8Tinyint
SmallintInt16/UInt16/Enum16Smallint
IntInt32/UInt32Int
BigintInt64/UInt32Bigint
FloatFloat32Float
DoubleFloat64Double
DecimalDecimalDecimal
DateDate32Date
TimestampDateTime64Timestamp
String, Char, Varchar, BinaryStringBinary
ListArrayList
StructTupleStruct
MapMapMap
IntIPv4Int
BinaryIPv6Binary
BinaryInt128/UInt128/Int256/UInt256Binary
BinaryDecimal256Binary
String, Char, Varchar, BinaryStringBinary
  • Outros tipos não são suportados.
  • Arrays podem ser aninhados e podem ter um valor do tipo Nullable como argumento. Os tipos Tuple e Map também podem ser aninhados.
  • Os tipos de dados das colunas da tabela do ClickHouse não precisam corresponder aos campos de dados ORC correspondentes. Ao inserir dados, o ClickHouse interpreta os tipos de dados de acordo com a tabela acima e então converte os dados para o tipo de dado definido para a coluna da tabela do ClickHouse.

Exemplo de uso

Inserção de dados

Use um arquivo ORC com os dados a seguir, chamado football.orc:
    ┌───────date─┬─season─┬─home_team─────────────┬─away_team───────────┬─home_team_goals─┬─away_team_goals─┐
 1. │ 2022-04-30 │   2021 │ Sutton United         │ Bradford City       │               1 │               4 │
 2. │ 2022-04-30 │   2021 │ Swindon Town          │ Barrow              │               2 │               1 │
 3. │ 2022-04-30 │   2021 │ Tranmere Rovers       │ Oldham Athletic     │               2 │               0 │
 4. │ 2022-05-02 │   2021 │ Port Vale             │ Newport County      │               1 │               2 │
 5. │ 2022-05-02 │   2021 │ Salford City          │ Mansfield Town      │               2 │               2 │
 6. │ 2022-05-07 │   2021 │ Barrow                │ Northampton Town    │               1 │               3 │
 7. │ 2022-05-07 │   2021 │ Bradford City         │ Carlisle United     │               2 │               0 │
 8. │ 2022-05-07 │   2021 │ Bristol Rovers        │ Scunthorpe United   │               7 │               0 │
 9. │ 2022-05-07 │   2021 │ Exeter City           │ Port Vale           │               0 │               1 │
10. │ 2022-05-07 │   2021 │ Harrogate Town A.F.C. │ Sutton United       │               0 │               2 │
11. │ 2022-05-07 │   2021 │ Hartlepool United     │ Colchester United   │               0 │               2 │
12. │ 2022-05-07 │   2021 │ Leyton Orient         │ Tranmere Rovers     │               0 │               1 │
13. │ 2022-05-07 │   2021 │ Mansfield Town        │ Forest Green Rovers │               2 │               2 │
14. │ 2022-05-07 │   2021 │ Newport County        │ Rochdale            │               0 │               2 │
15. │ 2022-05-07 │   2021 │ Oldham Athletic       │ Crawley Town        │               3 │               3 │
16. │ 2022-05-07 │   2021 │ Stevenage Borough     │ Salford City        │               4 │               2 │
17. │ 2022-05-07 │   2021 │ Walsall               │ Swindon Town        │               0 │               3 │
    └────────────┴────────┴───────────────────────┴─────────────────────┴─────────────────┴─────────────────┘
Insira os dados:
INSERT INTO football FROM INFILE 'football.orc' FORMAT ORC;

Leitura de dados

Leia os dados usando o formato ORC:
SELECT *
FROM football
INTO OUTFILE 'football.orc'
FORMAT ORC
ORC é um formato binário que não é exibido de forma legível para humanos no terminal. Use INTO OUTFILE para gerar arquivos ORC.

Configurações de formato

ConfiguraçãoDescriçãoPadrão
output_format_arrow_string_as_stringUsa o tipo String do Arrow em vez de Binary para colunas String.false
output_format_orc_compression_methodMétodo de compressão usado no formato ORC de saída. Valor padrão.none
input_format_arrow_case_insensitive_column_matchingIgnora maiúsculas e minúsculas ao corresponder colunas do Arrow a colunas do ClickHouse.false
input_format_arrow_allow_missing_columnsPermite colunas ausentes ao ler dados Arrow.false
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inferencePermite ignorar colunas com tipos sem suporte durante a inferência de esquema no formato Arrow.false
Para trocar dados com o Hadoop, você pode usar o motor de tabela HDFS.
Última modificação em 10 de junho de 2026