ORC
| Входные данные | Выходные данные | Псевдоним | 
|---|---|---|
| ✔ | ✔ | 
Описание
Apache ORC — это столбцовый формат хранения данных, широко используемый в экосистеме Hadoop.
Соответствие типов данных
Ниже приведена таблица, сравнивающая поддерживаемые типы данных ORC и соответствующие типы данных ClickHouse data types в запросах INSERT и SELECT.
| Тип данных ORC ( INSERT) | Тип данных ClickHouse | Тип данных ORC ( SELECT) | 
|---|---|---|
| Boolean | UInt8 | Boolean | 
| Tinyint | Int8/UInt8/Enum8 | Tinyint | 
| Smallint | Int16/UInt16/Enum16 | Smallint | 
| Int | Int32/UInt32 | Int | 
| Bigint | Int64/UInt32 | Bigint | 
| Float | Float32 | Float | 
| Double | Float64 | Double | 
| Decimal | Decimal | Decimal | 
| Date | Date32 | Date | 
| Timestamp | DateTime64 | Timestamp | 
| String,Char,Varchar,Binary | String | Binary | 
| List | Array | List | 
| Struct | Tuple | Struct | 
| Map | Map | Map | 
| Int | IPv4 | Int | 
| Binary | IPv6 | Binary | 
| Binary | Int128/UInt128/Int256/UInt256 | Binary | 
| Binary | Decimal256 | Binary | 
- Другие типы не поддерживаются.
- Массивы могут быть вложенными и могут иметь значение типа Nullableв качестве аргумента. ТипыTupleиMapтакже могут быть вложенными.
- Типы данных колонок таблицы ClickHouse не обязаны соответствовать соответствующим полям данных ORC. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше и затем приводит к типу данных, установленному для колонки таблицы ClickHouse.
Пример использования
Вставка данных
Вы можете вставить данные ORC из файла в таблицу ClickHouse, используя следующую команду:
Выбор данных
Вы можете выбрать данные из таблицы ClickHouse и сохранить их в файл в формате ORC, используя следующую команду:
Настройки формата
| Настройка | Описание | По умолчанию | 
|---|---|---|
| output_format_arrow_string_as_string | Использовать тип Arrow String вместо Binary для колонок типа String. | 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 table engine.
