Перейти к основному содержимому
Перейти к основному содержимому

ORC

ВходВыходПсевдоним

Описание

Apache ORC — это столбцовый формат хранения, который широко используется в экосистеме Hadoop.

Сопоставление типов данных

В таблице ниже сравниваются поддерживаемые типы данных ORC и соответствующие им типы данных ClickHouse data types в запросах INSERT и SELECT.

Тип данных ORC (INSERT)Тип данных ClickHouseТип данных 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
  • Другие типы не поддерживаются.
  • Массивы могут быть вложенными и могут иметь значение типа Nullable в качестве аргумента. Типы Tuple и Map также могут быть вложенными.
  • Типы данных столбцов таблиц ClickHouse не обязательно должны соответствовать соответствующим полям данных ORC. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше и затем приводит данные к типу данных, установленному для столбца таблицы ClickHouse.

Пример использования

Вставка данных

Вы можете вставить данные ORC из файла в таблицу ClickHouse, используя следующую команду:

Выбор данных

Вы можете выбрать данные из таблицы ClickHouse и сохранить их в файл в формате ORC, используя следующую команду:

Настройки формата

НастройкаОписаниеПо умолчанию
output_format_arrow_string_as_stringИспользовать тип String из Arrow вместо Binary для строковых столбцов.false
output_format_orc_compression_methodМетод сжатия, используемый в формате ORC на выходе. Значение по умолчаниюnone
input_format_arrow_case_insensitive_column_matchingИгнорировать регистр при сопоставлении столбцов Arrow со столбцами ClickHouse.false
input_format_arrow_allow_missing_columnsРазрешить отсутствие столбцов при чтении данных из Arrow.false
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inferenceРазрешить пропуск столбцов с неподдерживаемыми типами при выводе схемы для формата Arrow.false

Чтобы обмениваться данными с Hadoop, вы можете использовать движок таблиц HDFS.