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

دالة الجدول filesystem

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

الصيغة

filesystem([path])

المعاملات

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

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

العمودالنوعالوصف
pathStringالدليل الذي يحتوي على الإدخال (ولا يتضمن اسم الملف/الدليل نفسه).
nameStringاسم الملف أو الدليل (آخر مكوّن في المسار).
fileString (ALIAS of name)اسم مستعار للعمود name.
typeEnum8نوع الملف: 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'.
sizeNullable(UInt64)حجم الملف بالبايت (للملفات العادية). وتكون القيمة NULL للملفات غير العادية (الأدلة والروابط الرمزية وما إلى ذلك) وعند حدوث خطأ.
depthUInt16عمق التكرار. تكون القيمة 0 للدليل المطلوب نفسه ولأبنائه المباشرين، و1 للإدخالات الأعمق بمستوى واحد، وهكذا.
modification_timeNullable(DateTime64(6))وقت آخر تعديل بدقة الميكروثانية. وتكون القيمة NULL عند حدوث خطأ.
is_symlinkBoolما إذا كان الإدخال رابطًا رمزيًا.
contentNullable(String)محتويات الملف (للملفات العادية). وتكون القيمة NULL للملفات غير العادية (الأدلة والروابط الرمزية وما إلى ذلك). تؤدي أخطاء القراءة إلى إثارة استثناء. وتؤدي قراءة هذا العمود إلى تنفيذ عمليات إدخال/إخراج فعلية للملفات، لذا يُفضَّل عدم تضمينه إذا لم تكن هناك حاجة إليه.
owner_readBoolلدى المالك إذن قراءة.
owner_writeBoolلدى المالك إذن كتابة.
owner_execBoolلدى المالك إذن تنفيذ.
group_readBoolلدى المجموعة إذن قراءة.
group_writeBoolلدى المجموعة إذن كتابة.
group_execBoolلدى المجموعة إذن تنفيذ.
others_readBoolلدى الآخرين إذن قراءة.
others_writeBoolلدى الآخرين إذن كتابة.
others_execBoolلدى الآخرين إذن تنفيذ.
set_gidBoolبت Set-GID.
set_uidBoolبت Set-UID.
sticky_bitBoolالبت اللاصق.
لا تُحتسب إلا الأعمدة المستخدمة فعليًا في الاستعلام، لذا فإن اختيار مجموعة فرعية من الأعمدة (وخاصةً مع استبعاد 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;
آخر تعديل في ٢٥ يونيو ٢٠٢٦