تستعرض هذه الدالة دليل بشكل متكرر وتُرجع 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;