الانتقال إلى المحتوى الرئيسي
المدخلاتالمخرجاتالاسم المستعار

الوصف

يُعد Apache ORC تنسيقَ تخزينٍ عموديًا يُستخدم على نطاق واسع ضمن منظومة Hadoop.

مطابقة أنواع البيانات

يقارن الجدول أدناه بين أنواع بيانات ORC المدعومة وأنواع البيانات المقابلة لها في ClickHouse ضمن استعلامات INSERT وSELECT.
نوع بيانات ORC (INSERT)نوع بيانات ClickHouseنوع بيانات ORC (SELECT)
BooleanUInt8Boolean
TinyintInt8/UInt8/Enum8Tinyint
SmallintInt16/UInt16/Enum16Smallint
IntInt32/UInt32Int
BigintInt64/UInt32Bigint
FloatFloat32Float
DoubleFloat64Double
DecimalDecimalDecimal
DateDate32Date
TimestampDateTime64Timestamp
String, Char, Varchar, BinaryStringBinary
ListArrayList
StructTupleStruct
MapMapMap
IntIPv4Int
BinaryIPv6Binary
BinaryInt128/UInt128/Int256/UInt256Binary
BinaryDecimal256Binary
  • الأنواع الأخرى غير مدعومة.
  • يمكن أن تكون أنواع 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.
آخر تعديل في ٢٥ يونيو ٢٠٢٦