الانتقال إلى المحتوى الرئيسي
يعتمد التعامل مع الملفات القابلة للتنفيذ على كيفية تخزين القاموس في الذاكرة. إذا كان القاموس مخزّنًا باستخدام cache وcomplex_key_cache، يطلب ClickHouse المفاتيح المطلوبة عبر إرسال طلب إلى STDIN الخاص بالملف القابل للتنفيذ. بخلاف ذلك، يشغّل ClickHouse الملف القابل للتنفيذ ويتعامل مع مخرجاته على أنها بيانات القاموس. مثال على الإعدادات:
SOURCE(EXECUTABLE(
    command 'cat /opt/dictionaries/os.tsv'
    format 'TabSeparated'
    implicit_key false
))
حقول الإعداد:
الإعدادالوصف
commandالمسار المطلق إلى الملف القابل للتنفيذ، أو اسم الملف (إذا كان دليل الأمر موجودًا في PATH).
formatتنسيق الملف. جميع التنسيقات الموضحة في Formats مدعومة.
command_termination_timeoutيجب أن يحتوي السكربت القابل للتنفيذ على حلقة رئيسية للقراءة والكتابة. بعد إتلاف القاموس، يُغلق الـ pipe، ويُمنح الملف القابل للتنفيذ مهلة قدرها command_termination_timeout ثانية قبل أن يرسل ClickHouse إشارة SIGTERM إلى العملية الفرعية. تُحدَّد القيمة بالثواني. القيمة الافتراضية هي 10. اختياري.
command_read_timeoutمهلة قراءة البيانات من stdout الخاص بالأمر، بالمللي ثانية. القيمة الافتراضية 10000. اختياري.
command_write_timeoutمهلة كتابة البيانات إلى stdin الخاص بالأمر، بالمللي ثانية. القيمة الافتراضية 10000. اختياري.
implicit_keyيمكن لملف المصدر القابل للتنفيذ أن يعيد القيم فقط، ويُحدَّد تطابقها مع المفاتيح المطلوبة ضمنيًا وفقًا لترتيب الصفوف في النتيجة. القيمة الافتراضية هي false.
execute_directإذا كانت execute_direct = 1، فسيُبحث عن command داخل مجلد user_scripts المحدد بواسطة user_scripts_path. ويمكن تحديد وسائط إضافية للسكربت باستخدام مسافة فاصلة بينها. مثال: script_name arg1 arg2. وإذا كانت execute_direct = 0، فسيُمرَّر command كوسيط إلى bin/sh -c. القيمة الافتراضية هي 0. اختياري.
send_chunk_headerيتحكم في إرسال عدد الصفوف قبل إرسال chunk من البيانات إلى العملية. القيمة الافتراضية هي false. اختياري.
لا يمكن تهيئة مصدر القاموس هذا إلا عبر تهيئة XML. وإنشاء القواميس ذات المصدر القابل للتنفيذ عبر DDL معطّل؛ وإلا فسيتمكن مستخدم DB من تنفيذ ملفات ثنائية عشوائية على عقدة ClickHouse.
آخر تعديل في ٢٥ يونيو ٢٠٢٦