Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ORC

Entrée Sortie Alias

Description

Apache ORC est un format de stockage colonnaire largement utilisé dans l’écosystème Hadoop.

Correspondance des types de données

Le tableau ci-dessous compare les types de données ORC pris en charge et les types de données ClickHouse correspondants dans les requêtes INSERT et SELECT.

Type de données ORC (INSERT) Type de données ClickHouse Type de données 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
  • Les autres types ne sont pas pris en charge.
  • Une colonne ORC Union est lue comme un Variant sur les types de branches de l’union, et une colonne Variant est écrite comme une Union ORC sur ses types de branches. Notez que Variant trie ses types de branches, de sorte que l’ordre des branches peut différer de celui du fichier ORC. Les unions comportant des types de branches dupliqués (par ex. uniontype<int,int>) ne sont pas prises en charge.
  • Les tableaux peuvent être imbriqués et accepter comme argument une valeur de type Nullable. Les types Tuple et Map peuvent également être imbriqués.
  • Les types de données des colonnes d'une table ClickHouse n'ont pas besoin de correspondre aux champs de données ORC associés. Lors de l'insertion de données, ClickHouse interprète les types de données conformément au tableau ci-dessus, puis convertit les données dans le type de données défini pour la colonne de la table ClickHouse.

Exemple d’utilisation

Insertion de données

À l’aide d’un fichier ORC nommé football.orc et contenant les données suivantes :

    ┌───────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 │
    └────────────┴────────┴───────────────────────┴─────────────────────┴─────────────────┴─────────────────┘

Insérez les données :

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

Lire les données

Lisez les données au format ORC :

SELECT *
FROM football
INTO OUTFILE 'football.orc'
FORMAT ORC

Paramètres du format

Paramètre Description Par défaut
output_format_orc_string_as_string Utiliser le type String d’ORC au lieu de Binary pour les colonnes String. true
output_format_orc_compression_method Méthode de compression utilisée pour le format ORC de sortie. Valeur par défaut zstd
input_format_orc_case_insensitive_column_matching Ignorer la casse lors de la correspondance entre les colonnes ORC et ClickHouse. false
input_format_orc_allow_missing_columns Autoriser les colonnes manquantes lors de la lecture des données ORC. true
input_format_orc_skip_columns_with_unsupported_types_in_schema_inference Autoriser l’omission des colonnes ayant des types non pris en charge lors de l’inférence du schéma pour le format ORC. false

Pour échanger des données avec Hadoop, vous pouvez utiliser le moteur de table HDFS.

Navigation