الانتقال إلى المحتوى الرئيسي
هذا امتداد لدالة الجدول s3. يتيح معالجة الملفات من Amazon S3 وGoogle Cloud Storage Google Cloud Storage بالتوازي عبر عدة عقد ضمن عنقود محدد. على العقدة المُبادِرة، يُنشئ اتصالًا بجميع العقد في العنقود، ويفكّ توسيع أحرف النجمة في مسار ملف S3، ثم يوزّع كل ملف ديناميكيًا. وعلى العقدة العاملة، يستعلم من العقدة المُبادِرة عن المهمة التالية المطلوب معالجتها ثم يعالجها. ويتكرر ذلك حتى تكتمل جميع المهام.

الصيغة

s3Cluster(cluster_name, url[, NOSIGN | access_key_id, secret_access_key,[session_token]][, format][, structure][, compression_method][, headers][, extra_credentials])
s3Cluster(cluster_name, named_collection[, option=value [,..]])

المعاملات

المعاملالوصف
cluster_nameاسم عنقود يُستخدم لبناء مجموعة من العناوين ومعلمات الاتصال بالخوادم البعيدة والمحلية.
urlالمسار إلى ملف أو مجموعة من الملفات. يدعم أحرف البدل التالية في وضع readonly: *, **, ?, {'abc','def'} و {N..M} حيث إن N و M — أرقام، و abc و def — سلاسل نصية. لمزيد من المعلومات، راجع Wildcards In Path.
NOSIGNإذا جرى توفير هذه الكلمة المفتاحية بدلًا من بيانات الاعتماد، فلن تُوقَّع أي من الطلبات.
access_key_id and secret_access_keyمفاتيح تحدد بيانات الاعتماد المطلوب استخدامها مع نقطة النهاية المحددة. اختيارية.
session_tokenرمز الجلسة المستخدم مع المفاتيح المحددة. ويكون اختياريًا عند تمرير المفاتيح.
formatالتنسيق الخاص بالملف.
structureبنية الجدول. التنسيق هو 'column1_name column1_type, column2_name column2_type, ...'.
compression_methodهذا المعامل اختياري. القيم المدعومة: none و gzip أو gz و brotli أو br و xz أو LZMA و zstd أو zst. افتراضيًا، سيُكتشَف أسلوب الضغط تلقائيًا من امتداد الملف.
headersهذا المعامل اختياري. يتيح تمرير ترويسات في طلب S3. مرِّرها بالتنسيق headers(key=value)، مثل headers('x-amz-request-payer' = 'requester'). راجع here للاطلاع على مثال للاستخدام.
extra_credentialsاختياري. يمكن تمرير roleARN عبر هذا المعامل. راجع here للاطلاع على مثال.
يمكن أيضًا تمرير المعاملات باستخدام المجموعة المسماة. في هذه الحالة، تعمل url و access_key_id و secret_access_key و format و structure و compression_method بالطريقة نفسها، كما تُدعَم بعض المعاملات الإضافية:
المعاملالوصف
filenameيُلحَق بـ url إذا جرى تحديده.
use_environment_credentialsمُمكَّن افتراضيًا، ويتيح تمرير معلمات إضافية باستخدام متغيرات البيئة AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_AUTHORIZATION_TOKEN, AWS_EC2_METADATA_DISABLED.
no_sign_requestمعطَّل افتراضيًا.
expiration_window_secondsالقيمة الافتراضية هي 120.

القيمة المُعادة

جدول بالبنية المحددة لقراءة البيانات من الملف المحدد أو كتابتها فيه.

أمثلة

اعرض البيانات من جميع الملفات في المجلدين /root/data/clickhouse و/root/data/database/، باستخدام جميع العُقد في عنقود cluster_simple:
SELECT * FROM s3Cluster(
    'cluster_simple',
    'http://minio1:9001/root/data/{clickhouse,database}/*',
    'minio',
    'ClickHouse_Minio_P@ssw0rd',
    'CSV',
    'name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
) ORDER BY (name, value, polygon);
احسب العدد الإجمالي للصفوف في جميع الملفات في العنقود cluster_simple:
إذا كانت قائمة الملفات تحتوي على نطاقات رقمية بأصفار بادئة، فاستخدم الصيغة التي تتضمن أقواسًا لكل رقم على حدة، أو استخدم ?.
لحالات الاستخدام في بيئات الإنتاج، يُوصى باستخدام المجموعات المسماة. وفيما يلي المثال:

CREATE NAMED COLLECTION creds AS
        access_key_id = 'minio',
        secret_access_key = 'ClickHouse_Minio_P@ssw0rd';
SELECT count(*) FROM s3Cluster(
    'cluster_simple', creds, url='https://s3-object-url.csv',
    format='CSV', structure='name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
)

الوصول إلى الحاويات الخاصة والعامة

يمكن للمستخدمين استخدام الأساليب نفسها الموثقة للدالة s3 هنا.

تحسين الأداء

للتعرّف على تفاصيل تحسين أداء الدالة s3، راجع دليلنا المفصل.
آخر تعديل في ٢٥ يونيو ٢٠٢٦