Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ORC

المدخلات المخرجات الاسم المستعار

الوصف

يُعد 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.

Navigation