الانتقال إلى المحتوى الرئيسي

الوصف

تنسيق CapnProto هو تنسيق رسائل ثنائي يشبه تنسيق Protocol Buffers وThrift، لكنه لا يشبه JSON أو MessagePack. رسائل CapnProto محددة الأنواع بشكل صارم وليست ذاتية الوصف، ما يعني أنها تحتاج إلى وصف خارجي للمخطط. ويُطبَّق المخطط آنيًا ويُخزَّن مؤقتًا لكل استعلام. راجع أيضًا Format Schema.

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

يوضح الجدول أدناه أنواع البيانات المدعومة وكيف تقابل أنواع البيانات في ClickHouse ضمن استعلامات INSERT وSELECT.
  • يمكن تحويل الأنواع الصحيحة فيما بينها أثناء الإدخال والإخراج.
  • للعمل مع Enum بتنسيق CapnProto، استخدم الإعداد format_capn_proto_enum_comparising_mode.
  • يمكن أن تكون Array متداخلة، ويمكن أن تتضمن قيمة من النوع Nullable كوسيطة. كما يمكن أيضًا أن تكون الأنواع Tuple وMap متداخلة.

مثال للاستخدام

إدراج البيانات والاستعلام عنها

يمكنك إدراج بيانات CapnProto من ملف في جدول ClickHouse باستخدام الأمر التالي:
حيث يكون schema.capnp على النحو التالي:
يمكنك تحديد بيانات من جدول ClickHouse وحفظها في ملف بتنسيق CapnProto باستخدام الأمر التالي:

استخدام مخطط مُنشأ تلقائيًا

إذا لم يكن لديك مخطط CapnProto خارجي لبياناتك، فلا يزال بإمكانك تصدير البيانات أو استيرادها بتنسيق CapnProto باستخدام مخطط مُنشأ تلقائيًا. على سبيل المثال:
في هذه الحالة، سيُنشئ ClickHouse مخطط CapnProto تلقائيًا وفقًا لبنية الجدول باستخدام الدالة structureToCapnProtoSchema، وسيستخدم هذا المخطط لتسلسل البيانات بتنسيق CapnProto. يمكنك أيضًا قراءة ملف CapnProto باستخدام مخطط مُنشأ تلقائيًا (في هذه الحالة، يجب إنشاء الملف باستخدام المخطط نفسه):

إعدادات التنسيق

يكون الإعداد format_capn_proto_use_autogenerated_schema مفعّلًا افتراضيًا، ويُطبَّق إذا لم يتم تعيين format_schema. يمكنك أيضًا حفظ المخطط المُنشأ تلقائيًا في ملف أثناء عمليات الإدخال/الإخراج باستخدام الإعداد output_format_schema. على سبيل المثال:
في هذه الحالة، سيُحفَظ مخطط CapnProto المُنشأ تلقائيًا في الملف path/to/schema/schema.capnp.
آخر تعديل في ٢ يوليو ٢٠٢٦