| المدخلات | المخرجات | الاسم المستعار |
|---|---|---|
| ✔ | ✔ |
الوصف
يُعد Apache ORC تنسيقَ تخزينٍ عموديًا يُستخدم على نطاق واسع ضمن منظومة Hadoop.
مطابقة أنواع البيانات
يقارن الجدول أدناه بين أنواع بيانات ORC المدعومة وأنواع البيانات المقابلة لها في ClickHouse ضمن استعلامات INSERT وSELECT.
نوع بيانات 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 |
- الأنواع الأخرى غير مدعومة.
- يُقرأ عمود
Unionفي ORC باعتباره Variant لأنواع فروع union، ويُكتب عمودVariantباعتبارهUnionفي ORC لأنواع فروعه. لاحظ أنVariantيرتب أنواع فروعه، لذا قد يختلف ترتيب الفروع عن ملف ORC. لا تُدعم أنواع union ذات أنواع الفروع المكررة (مثلuniontype<int,int>). - يمكن أن تكون أنواع
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إعدادات التنسيق
| الإعداد | الوصف | القيمة الافتراضية |
|---|---|---|
output_format_orc_string_as_string |
استخدام النوع String في ORC بدلًا من Binary لأعمدة 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.