يسمح بمعالجة الملفات من HDFS بالتوازي من العديد من العُقد في عنقود محدد. على العقدة المُبادِرة، يُنشئ اتصالًا بجميع العُقد في العنقود، ويوسّع علامات النجمة في مسار ملف HDFS، ثم يوزّع كل ملف ديناميكيًا. وعلى العقدة العاملة، يطلب من العقدة المُبادِرة المهمة التالية المطلوب معالجتها ثم يعالجها. ويتكرر ذلك حتى تكتمل جميع المهام.
الصياغة
hdfsCluster(cluster_name, URI, format, structure)المعاملات
| Argument | Description |
|---|---|
cluster_name |
اسم عنقود يُستخدم لإنشاء مجموعة من العناوين ومعلمات الاتصال للخوادم البعيدة والمحلية. |
URI |
URI لملف أو لمجموعة من الملفات. يدعم أحرف البدل التالية في وضع القراءة فقط: *, **, ?, {'abc','def'} و {N..M}، حيث إن N وM — أرقام، وabc وdef — سلاسل نصية. لمزيد من المعلومات، راجع أحرف البدل في المسار. |
format |
تنسيق الملف. |
structure |
بنية الجدول. التنسيق: 'column1_name column1_type, column2_name column2_type, ...'. |
القيمة المعادة
جدول بالبنية المحددة لقراءة البيانات من الملف المحدد.
أمثلة
- افترض أن لدينا عنقود ClickHouse باسم
cluster_simple، وعدة ملفات ذات عناوين URI التالية على HDFS:
- 'hdfs://hdfs1:9000/some_dir/some_file_1'
- 'hdfs://hdfs1:9000/some_dir/some_file_2'
- 'hdfs://hdfs1:9000/some_dir/some_file_3'
- 'hdfs://hdfs1:9000/another_dir/some_file_1'
- 'hdfs://hdfs1:9000/another_dir/some_file_2'
- 'hdfs://hdfs1:9000/another_dir/some_file_3'
- استعلم عن عدد الصفوف في هذه الملفات:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')- استعلم عن عدد الصفوف في جميع ملفات هذين الدليلين:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')