ORC
| 入力 | 出力 | エイリアス |
|---|---|---|
| ✔ | ✔ |
説明
Apache ORC は、Hadoop エコシステムで広く使用されている列指向ストレージ形式です。
データ型の対応関係
次の表は、INSERT および SELECT クエリにおいてサポートされる ORC データ型と、それに対応する ClickHouse の データ型 を比較したものです。
ORC data type (INSERT) | ClickHouse data type | ORC data type (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 ファイル(名前は football.orc)を使用します。
データを挿入します:
データの読み込み
ORC 形式でデータを読み込みます:
ヒント
ORC はバイナリ形式のため、ターミナル上で人間が読める形で表示することはできません。INTO OUTFILE 句を使用して ORC ファイルとして出力してください。
フォーマット設定
| 設定 | 説明 | デフォルト |
|---|---|---|
output_format_arrow_string_as_string | String 列に対して Binary 型ではなく Arrow の 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 テーブルエンジン を使用できます。