メインコンテンツへスキップ
メインコンテンツへスキップ

ORC

入力出力エイリアス

説明

Apache ORC は、Hadoop エコシステムで広く使用されている列指向ストレージ形式です。

データ型の対応関係

次の表は、INSERT および SELECT クエリにおいてサポートされる ORC データ型と、それに対応する ClickHouse の データ型 を比較したものです。

ORC data type (INSERT)ClickHouse data typeORC data type (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 ファイル(名前は 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 │
    └────────────┴────────┴───────────────────────┴─────────────────────┴─────────────────┴─────────────────┘

データを挿入します:

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

データの読み込み

ORC 形式でデータを読み込みます:

SELECT *
FROM football
INTO OUTFILE 'football.orc'
FORMAT ORC
ヒント

ORC はバイナリ形式のため、ターミナル上で人間が読める形で表示することはできません。INTO OUTFILE 句を使用して ORC ファイルとして出力してください。

フォーマット設定

設定説明デフォルト
output_format_arrow_string_as_stringString 列に対して Binary 型ではなく Arrow の String 型を使用します。false
output_format_orc_compression_method出力 ORC フォーマットで使用される圧縮方式を指定します。none
input_format_arrow_case_insensitive_column_matchingArrow の列を ClickHouse の列に対応付ける際に大文字小文字を区別しません。false
input_format_arrow_allow_missing_columnsArrow データの読み取り時に、欠落している列を許可します。false
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inferenceArrow フォーマットのスキーマ推論時に、未サポート型を持つ列をスキップすることを許可します。false

Hadoop とデータをやり取りするには、HDFS テーブルエンジン を使用できます。