Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ORC

入力 出力 エイリアス

説明

Apache ORC は、Hadoop エコシステムで広く利用されている列指向ストレージフォーマットです。

データ型の対応

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

ORC データ型 (INSERT) ClickHouse データ型 ORC データ型 (SELECT)
Boolean Bool Boolean
Tinyint Int8/UInt8/Enum8 Tinyint
Smallint Int16/UInt16/Enum16 Smallint
Int Int32/UInt32 Int
Bigint Int64/UInt64 Bigint
Float Float32 Float
Double Float64 Double
Decimal Decimal Decimal
Date Date32 Date
Timestamp DateTime64 Timestamp
String, Varchar, Binary String String
Char FixedString String
List Array List
Struct Tuple Struct
Map Map Map
Int IPv4 Int
Binary IPv6 Binary
Binary Int128/UInt128/Int256/UInt256 Binary
Binary Decimal256 Binary
Union Variant Union
  • その他の型はサポートされていません。
  • ORC の Union カラムはユニオンのブランチ型に対する Variant として読み取られ、Variant カラムはそのブランチ型に対する ORC の Union として書き込まれます。Variant はブランチ型をソートするため、ブランチの順序が ORC ファイルと異なる場合があることに注意してください。重複するブランチ型を含むユニオン (例: uniontype<int,int>) はサポートされていません。
  • Array はネスト可能で、引数として Nullable 型の値を取ることもできます。Tuple 型と Map 型もネストできます。
  • ClickHouse テーブルのカラムのデータ型は、対応する ORC のデータフィールドと一致している必要はありません。データを挿入する際、ClickHouse はまず上記の表に従ってデータ型を解釈し、その後、ClickHouse テーブルのカラムに設定されたデータ型へデータを CAST します。

使用例

データの挿入

次のデータを含む、football.orc という名前の 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

フォーマット設定

設定 説明 デフォルト
output_format_orc_string_as_string String カラムには、Binary ではなく ORC の String 型を使用します。 true
output_format_orc_compression_method 出力 ORC フォーマットで使用する圧縮方式。デフォルト値 zstd
input_format_orc_case_insensitive_column_matching ORC のカラムと ClickHouse のカラムを照合する際に、大文字・小文字を区別しません。 false
input_format_orc_allow_missing_columns ORC データの読み取り時に、欠落しているカラムを許可します。 true
input_format_orc_skip_columns_with_unsupported_types_in_schema_inference ORC フォーマットのスキーマ推論時に、未対応の型を持つカラムをスキップできるようにします。 false

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

Navigation