Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ORC

Entrada Salida Alias

Descripción

Apache ORC es un formato de almacenamiento columnar ampliamente utilizado en el ecosistema de Hadoop.

Correspondencia de tipos de datos

La siguiente tabla compara los tipos de datos ORC compatibles y sus correspondientes tipos de datos de ClickHouse en las consultas INSERT y SELECT.

Tipo de dato ORC (INSERT) Tipo de dato de ClickHouse Tipo de dato ORC (SELECT)
Boolean Bool Boolean
Tinyint Int8/UInt8/Enum8 Tinyint
Smallint Int16/UInt16/Enum16 Smallint
Int Int32/UInt32 Int
Bigint Int64/UInt64 Bigint
Float Float32 Float
Double Float64 Double
Decimal Decimal Decimal
Date Date32 Date
Timestamp DateTime64 Timestamp
String, Varchar, Binary String String
Char FixedString String
List Array List
Struct Tuple Struct
Map Map Map
Int IPv4 Int
Binary IPv6 Binary
Binary Int128/UInt128/Int256/UInt256 Binary
Binary Decimal256 Binary
Union Variant Union
  • Los demás tipos no son compatibles.
  • Una columna ORC Union se lee como un Variant con los tipos de rama de la unión, y una columna Variant se escribe como una Union de ORC con sus tipos de rama. Tenga en cuenta que Variant ordena sus tipos de rama, por lo que el orden de las ramas puede diferir del archivo ORC. Las uniones con tipos de rama duplicados (p. ej., uniontype<int,int>) no son compatibles.
  • Los arrays pueden anidarse y pueden tener un valor de tipo Nullable como argumento. Los tipos Tuple y Map también pueden anidarse.
  • Los tipos de datos de las columnas de una tabla de ClickHouse no tienen por qué coincidir con los campos de datos ORC correspondientes. Al insertar datos, ClickHouse interpreta los tipos de datos según la tabla anterior y luego convierte los datos al tipo de dato definido para la columna de la tabla de ClickHouse.

Ejemplo de uso

Inserción de datos

Usa un archivo ORC con los siguientes datos, llamado 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 │
    └────────────┴────────┴───────────────────────┴─────────────────────┴─────────────────┴─────────────────┘

Inserte los datos:

INSERT INTO football FROM INFILE 'football.orc' FORMAT ORC;

Lectura de datos

Lea los datos en formato ORC:

SELECT *
FROM football
INTO OUTFILE 'football.orc'
FORMAT ORC

Configuración de formatos

Configuración Descripción Predeterminado
output_format_orc_string_as_string Usar el tipo String de ORC en lugar de Binary para las columnas String. true
output_format_orc_compression_method Método de compresión usado para el formato ORC de salida. Valor predeterminado zstd
input_format_orc_case_insensitive_column_matching Ignorar mayúsculas y minúsculas al hacer coincidir las columnas de ORC con las columnas de ClickHouse. false
input_format_orc_allow_missing_columns Permitir columnas ausentes al leer datos ORC. true
input_format_orc_skip_columns_with_unsupported_types_in_schema_inference Permitir omitir columnas con tipos no compatibles durante la inferencia de esquema del formato ORC. false

Para intercambiar datos con Hadoop, puede usar el motor de tablas HDFS.

Navigation