| المدخلات | المخرجات | الاسم المستعار |
|---|
| ✔ | ✔ | |
يُعد Apache ORC تنسيقَ تخزينٍ عموديًا يُستخدم على نطاق واسع ضمن منظومة Hadoop.
يقارن الجدول أدناه بين أنواع بيانات ORC المدعومة وأنواع البيانات المقابلة لها في ClickHouse ضمن استعلامات INSERT وSELECT.
نوع بيانات ORC (INSERT) | نوع بيانات ClickHouse | نوع بيانات ORC (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 |
- الأنواع الأخرى غير مدعومة.
- يمكن أن تكون أنواع
Array متداخلة، ويمكن أن تأخذ قيمة من النوع 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_string | استخدام النوع String في Arrow بدلًا من Binary لأعمدة 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.