Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

fileCluster

يُمكّن من معالجة الملفات التي تطابق مسارًا محددًا بشكل متزامن عبر عدة عقد ضمن عنقود. تنشئ العقدة المُبادِرة اتصالات مع العقد العاملة، وتوسّع أنماط 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.

Navigation