| 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
Unionest lue comme un Variant sur les types de branches de l’union, et une colonneVariantest écrite comme uneUnionORC sur ses types de branches. Notez queVarianttrie 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 typesTupleetMappeuvent é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 ORCParamè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.