الانتقال إلى المحتوى الرئيسي
راجع أنواع البيانات للاطلاع على المرجع العام.
ترميز الأنواع الرقمية مطابق لتخطيط الذاكرة في المعالجات ذات ترتيب البايت little endian مثل AMD64 أو ARM64، ما يتيح ترميزًا وفك ترميز بكفاءة عالية جدًا.
النوعالترميز
الأعداد الصحيحة (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) = عمودان متصلان
MapMap(K, V) = ثلاثة أعمدة: Offsets ColUInt64, Keys K, Values V. عدد الصفوف في Keys/Values = آخر قيمة في Offsets
ArrayArray(T) = عمودان: Offsets ColUInt64, Data T. عدد الصفوف في Data = آخر قيمة في Offsets
NullableNullable(T) = عمودان: Nulls ColUInt8, Values T مع عدد الصفوف نفسه. تمثل Nulls قناعًا: 1=null، 0=value
UUIDاسم مستعار لـ FixedString(16)، ويُمثَّل بصيغة ثنائية
Enumاسم مستعار لـ Int8 أو Int16، حيث يُربط كل عدد صحيح بقيمة String
LowCardinalityLowCardinality(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)
آخر تعديل في ٢٩ يونيو ٢٠٢٦