يُمكّن من معالجة الملفات التي تطابق مسارًا محددًا بشكل متزامن عبر عدة عقد ضمن عنقود. تنشئ العقدة المُبادِرة اتصالات مع العقد العاملة، وتوسّع أنماط glob في مسار الملف، وتُسنِد مهام قراءة الملفات إلى العقد العاملة. وتستعلم كل عقدة عاملة من العقدة المُبادِرة عن الملف التالي المطلوب معالجته، ويتكرر ذلك حتى تكتمل جميع المهام (أي تتم قراءة جميع الملفات).
الصيغة
fileCluster(cluster_name, path[, format, structure, compression_method])الوسائط
| الوسيطة | الوصف |
|---|---|
cluster_name |
اسم عنقود يُستخدم لإنشاء مجموعة من العناوين ومعلمات الاتصال بالخوادم البعيدة والمحلية. |
path |
المسار النسبي للملف من user_files_path. كما يدعم مسار الملف أيضًا أنماط glob. |
format |
تنسيق الملفات. النوع: String. |
structure |
بنية الجدول بتنسيق 'UserID UInt64, Name String'. وتحدد أسماء الأعمدة وأنواعها. النوع: String. |
compression_method |
طريقة الضغط. أنواع الضغط المدعومة هي gz وbr وxz وzst وlz4 وbz2. |
القيمة المُعادة
جدول بالتنسيق والبنية المحدَّدين، ويحتوي على بيانات من الملفات التي تطابق المسار المحدَّد.
مثال
بافتراض وجود عنقود باسم my_cluster، والقيمة التالية للإعداد user_files_path:
$ grep user_files_path /etc/clickhouse-server/config.xml
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>وكذلك، بافتراض وجود الملفين test1.csv وtest2.csv داخل user_files_path في كل عقدة من عقد العنقود، وأن محتواهما متطابق في مختلف العقد:
$ cat /var/lib/clickhouse/user_files/test1.csv
1,"file1"
11,"file11"
$ cat /var/lib/clickhouse/user_files/test2.csv
2,"file2"
22,"file22"على سبيل المثال، يمكن إنشاء هذه الملفات عن طريق تنفيذ هذين الاستعلامين على كل عقدة في العنقود:
INSERT INTO TABLE FUNCTION file('file1.csv', 'CSV', 'i UInt32, s String') VALUES (1,'file1'), (11,'file11');
INSERT INTO TABLE FUNCTION file('file2.csv', 'CSV', 'i UInt32, s String') VALUES (2,'file2'), (22,'file22');الآن، اقرأ محتويات البيانات من test1.csv وtest2.csv عبر دالة الجدول fileCluster:
SELECT * FROM fileCluster('my_cluster', 'file{1,2}.csv', 'CSV', 'i UInt32, s String') ORDER BY i, s┌──i─┬─s──────┐
│ 1 │ file1 │
│ 11 │ file11 │
└────┴────────┘
┌──i─┬─s──────┐
│ 2 │ file2 │
│ 22 │ file22 │
└────┴────────┘أنماط glob في المسار
تدعم FileCluster أيضًا جميع الأنماط التي تدعمها دالة الجدول File.