Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

أنواع أعمدة البروتوكول الأصلي

راجع أنواع البيانات للاطلاع على المرجع العام.

النوع الترميز
الأعداد الصحيحة (Int/UInt) 8 أو 16 أو 32 أو 64 أو 128 أو 256 بت بترتيب little endian
الأعداد العائمة (Float32/Float64) التمثيل الثنائي IEEE 754
String مصفوفة من السلاسل النصية بصيغة (len, value)
FixedString(N) مصفوفة من متتاليات بطول N بايت
IPv4 اسم مستعار لـ UInt32، ويُمثَّل على أنه UInt32
IPv6 اسم مستعار لـ FixedString(16)، ويُمثَّل بصيغة ثنائية
Tuple مصفوفة من الأعمدة المُرمَّزة بشكل متصل. مثال: Tuple(String, UInt8) = عمودان متصلان
Map Map(K, V) = ثلاثة أعمدة: Offsets ColUInt64, Keys K, Values V. عدد الصفوف في Keys/Values = آخر قيمة في Offsets
Array Array(T) = عمودان: Offsets ColUInt64, Data T. عدد الصفوف في Data = آخر قيمة في Offsets
Nullable Nullable(T) = عمودان: Nulls ColUInt8, Values T مع عدد الصفوف نفسه. تمثل Nulls قناعًا: 1=null، 0=value
UUID اسم مستعار لـ FixedString(16)، ويُمثَّل بصيغة ثنائية
Enum اسم مستعار لـ Int8 أو Int16، حيث يُربط كل عدد صحيح بقيمة String
LowCardinality LowCardinality(T) = عمودان: Index T, Keys K حيث إن K هو UInt8/16/32/64. يحتوي Index على قيم فريدة، وتحتوي Keys على فهارس داخل Index
Bool اسم مستعار لـ UInt8: 0=false، 1=true

مثال: ترميز Nullable

To encode [null, "", "hello", null, "world"]:
  Values: ["", "", "hello", "", "world"] (len: 5)
  Nulls:  [ 1,  0,       0,  1,       0] (len: 5)

مثال: ترميز LowCardinality

To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]:
  Index: ["Eko", "Amadela"] (String)
  Keys:  [0, 0, 1, 1, 1, 1] (UInt8)
Navigation