Saltar al contenido principal
EntradaSalidaAlias

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 ClickHouseTipo de dato 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
  • Los demás tipos 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
ORC es un formato binario que no puede mostrarse en la terminal de forma legible para humanos. Use INTO OUTFILE para generar archivos ORC.

Configuración de formatos

ConfiguraciónDescripciónPredeterminado
output_format_arrow_string_as_stringUsar el tipo String de Arrow en lugar de Binary para las columnas String.false
output_format_orc_compression_methodMétodo de compresión usado para el formato ORC de salida. Valor predeterminadonone
input_format_arrow_case_insensitive_column_matchingIgnorar mayúsculas y minúsculas al hacer coincidir las columnas de Arrow con las columnas de ClickHouse.false
input_format_arrow_allow_missing_columnsPermitir columnas ausentes al leer datos Arrow.false
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inferencePermitir omitir columnas con tipos no compatibles durante la inferencia de esquema del formato Arrow.false
Para intercambiar datos con Hadoop, puede usar el motor de tablas HDFS.
Última modificación el 10 de junio de 2026