Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

filesystem

غير مدعوم في ClickHouse Cloud

تستعرض هذه الدالة دليل بشكل متكرر وتُرجع table تتضمن البيانات الوصفية للملفات (المسارات، والأحجام، والأنواع، وpermissions، وأوقات التعديل)، وبشكل اختياري، محتويات الملفات.

في وضع clickhouse-server، يجب أن يكون مسار ضمن دليل ‏user_files_path. تتم متابعة الروابط الرمزية داخل user_files_path التي تشير إلى مسارات خارجه، ولكن لا تُرجع إلا الإدخالات التي يبدأ مسار الخاص بها (عبر الرابط الرمزي) بـ user_files_path.

في وضع clickhouse-local، لا توجد قيود على مسار.

الصيغة

filesystem([path])

المعاملات

المعامل الوصف
path الدليل المراد عرض محتوياته. يمكن أن يكون مسارًا مطلقًا (ويجب أن يكون داخل user_files_path في وضع الخادم) أو مسارًا نسبيًا بالنسبة إلى user_files_path. وإذا كان فارغًا أو غير مذكور، فستكون القيمة الافتراضية هي user_files_path.

الأعمدة المُعادة

العمود النوع الوصف
path String الدليل الذي يحتوي على الإدخال (ولا يتضمن اسم الملف/الدليل نفسه).
name String اسم الملف أو الدليل (آخر مكوّن في المسار).
file String (ALIAS of name) اسم مستعار للعمود name.
type Enum8 نوع الملف: 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'.
size Nullable(UInt64) حجم الملف بالبايت (للملفات العادية). وتكون القيمة NULL للملفات غير العادية (الأدلة والروابط الرمزية وما إلى ذلك) وعند حدوث خطأ.
depth UInt16 عمق التكرار. تكون القيمة 0 للدليل المطلوب نفسه ولأبنائه المباشرين، و1 للإدخالات الأعمق بمستوى واحد، وهكذا.
modification_time Nullable(DateTime64(6)) وقت آخر تعديل بدقة الميكروثانية. وتكون القيمة NULL عند حدوث خطأ.
is_symlink Bool ما إذا كان الإدخال رابطًا رمزيًا.
content Nullable(String) محتويات الملف (للملفات العادية). وتكون القيمة NULL للملفات غير العادية (الأدلة والروابط الرمزية وما إلى ذلك). تؤدي أخطاء القراءة إلى إثارة استثناء. وتؤدي قراءة هذا العمود إلى تنفيذ عمليات إدخال/إخراج فعلية للملفات، لذا يُفضَّل عدم تضمينه إذا لم تكن هناك حاجة إليه.
owner_read Bool لدى المالك إذن قراءة.
owner_write Bool لدى المالك إذن كتابة.
owner_exec Bool لدى المالك إذن تنفيذ.
group_read Bool لدى المجموعة إذن قراءة.
group_write Bool لدى المجموعة إذن كتابة.
group_exec Bool لدى المجموعة إذن تنفيذ.
others_read Bool لدى الآخرين إذن قراءة.
others_write Bool لدى الآخرين إذن كتابة.
others_exec Bool لدى الآخرين إذن تنفيذ.
set_gid Bool بت Set-GID.
set_uid Bool بت Set-UID.
sticky_bit Bool البت اللاصق.

لا تُحتسب إلا الأعمدة المستخدمة فعليًا في الاستعلام، لذا فإن اختيار مجموعة فرعية من الأعمدة (وخاصةً مع استبعاد content) يكون فعّالًا.

أمثلة

عرض الملفات في user_files

SELECT name, type, size, depth
FROM filesystem()
ORDER BY name;

العثور على الملفات الكبيرة

SELECT path, name, size
FROM filesystem()
WHERE type = 'regular' AND size > 1000000
ORDER BY size DESC;

قراءة محتويات الملف

SELECT name, content
FROM filesystem('my_directory')
WHERE name LIKE '%.csv';

سرد العناصر الفرعية المباشرة فقط

SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
Navigation