Skip to main content
يوفّر ABS ClickPipe طريقة مُدارة بالكامل وموثوقة لاستيعاب البيانات من Azure Blob Storage إلى ClickHouse Cloud. وهو يدعم كلاً من الاستيعاب لمرة واحدة والاستيعاب المستمر، مع ضمان معالجة كل سجل مرة واحدة فقط. يمكن نشر ABS ClickPipes وإدارتها يدويًا عبر ClickPipes UI، وكذلك برمجيًا باستخدام OpenAPI وTerraform.

التنسيقات المدعومة

الميزات

الاستيعاب لمرة واحدة

سيحمّل ClickPipe الخاص بـ ABS جميع الملفات المطابقة لنمط معيّن من الحاوية المحددة إلى جدول الوجهة في ClickHouse ضمن عملية دفعية واحدة. وما إن تكتمل مهمة الاستيعاب، يتوقف ClickPipe تلقائيًا. يوفّر وضع الاستيعاب لمرة واحدة هذا ضمان المعالجة مرة واحدة فقط، بما يضمن معالجة كل ملف بشكل موثوق من دون تكرار.

الاستيعاب المستمر

عند تفعيل الاستيعاب المستمر، تواصل ClickPipes استيعاب البيانات من المسار المحدد. ولتحديد ترتيب الاستيعاب، يعتمد ClickPipe الخاص بـ ABS على الترتيب المعجمي الضمني للملفات.

الترتيب المعجمي

يفترض ABS ClickPipe أن الملفات تُضاف إلى الحاوية وفق الترتيب المعجمي، ويعتمد على هذا الترتيب الضمني لاستيعاب الملفات بشكل تسلسلي. وهذا يعني أن أي ملف جديد يجب أن يكون أكبر معجميًا من آخر ملف تم استيعابه. على سبيل المثال، ستُستوعَب الملفات المسماة file1 وfile2 وfile3 بالتسلسل، ولكن إذا أُضيف ملف جديد باسم file 0 إلى الحاوية، فسيتم تجاهله لأن اسم الملف ليس أكبر معجميًا من آخر ملف تم استيعابه. في هذا الوضع، يُجري ABS ClickPipe تحميلًا أوليًا لـ جميع الملفات في المسار المحدد، ثم يتحقق من وجود ملفات جديدة على فاصل زمني قابل للتهيئة (30 ثانية افتراضيًا). لا يمكن بدء الاستيعاب من ملف محدد أو من نقطة زمنية معينة — إذ ستقوم ClickPipes دائمًا بتحميل جميع الملفات في المسار المحدد.

مطابقة أنماط الملفات

تتبع Object Storage ClickPipes معيار POSIX في مطابقة أنماط الملفات. جميع الأنماط حساسة لحالة الأحرف، وتُطابق المسار الكامل بعد اسم الحاوية. ولتحسين الأداء، استخدم النمط الأكثر تحديدًا قدر الإمكان (مثل data-2024-*.csv بدلًا من *.csv).

الأنماط المدعومة

أمثلة:
  • https://storageaccount.blob.core.windows.net/container/folder/*.csv
  • https://storageaccount.blob.core.windows.net/container/logs/**/data.json
  • https://storageaccount.blob.core.windows.net/container/file-?.parquet
  • https://storageaccount.blob.core.windows.net/container/data-2024-*.csv.gz

الأنماط غير المدعومة

أمثلة:
  • https://storageaccount.blob.core.windows.net/container/{documents-01,documents-02}.json
  • https://storageaccount.blob.core.windows.net/container/file-{1..100}.csv
  • https://storageaccount.blob.core.windows.net/container/{logs,metrics}/data.parquet

ضمان المعالجة مرة واحدة فقط

قد تحدث أنواع مختلفة من الإخفاقات عند استيعاب مجموعات بيانات كبيرة، ما قد يؤدي إلى عمليات إدراج جزئية أو بيانات مكررة. تتمتع Object Storage ClickPipes بالمرونة في مواجهة إخفاقات الإدراج وتوفّر ضمان المعالجة مرة واحدة فقط. ويتحقق ذلك باستخدام جداول “مرحلية” مؤقتة. تُدرج البيانات أولاً في الجداول المرحلية. وإذا حدث خطأ ما أثناء عملية الإدراج هذه، يمكن إفراغ الجدول المرحلي وإعادة محاولة الإدراج من حالة نظيفة. ولا تُنقل الأقسام من الجدول المرحلي إلى الجدول الهدف إلا بعد اكتمال عملية الإدراج بنجاح. ولمزيد من المعلومات حول هذه الاستراتيجية، اطّلع على هذه التدوينة.

الأعمدة الافتراضية

لتتبّع الملفات التي تم إدخالها، أدرِج العمود الافتراضي _file ضمن قائمة تعيين الأعمدة. يحتوي العمود الافتراضي _file على اسم ملف الكائن المصدر، ويمكن استخدامه للاستعلام عن الملفات التي تمت معالجتها.

التحكم بالوصول

الأذونات

لا يدعم ClickPipe الخاص بـ ABS إلا الحاويات الخاصة. الحاويات العامة غير مدعومة. يجب أن تسمح الحاويات بالإجراءين s3:GetObject وs3:ListBucket في سياسة الـ bucket.

المصادقة

المصادقة باستخدام Microsoft Entra ID (بما في ذلك الهويات المُدارة) غير مدعومة حاليًا.
تعتمد المصادقة في Azure Blob Storage على سلسلة اتصال، وهي تدعم كلًا من مفاتيح الوصول وتوقيعات الوصول المشتركة (SAS).

مفتاح الوصول

للمصادقة باستخدام مفتاح وصول الحساب، قدّم سلسلة اتصال بالتنسيق التالي:
يمكنك العثور على اسم حساب التخزين ومفتاح الوصول في Azure Portal ضمن Storage Account > Access keys.

توقيع الوصول المشترك (SAS)

للمصادقة باستخدام توقيع الوصول المشترك (SAS)، قدِّم سلسلة اتصال تتضمن رمز SAS:
أنشئ رمز SAS في Azure Portal ضمن Storage Account > Shared access signature مع الأذونات المناسبة (Read، List) للحاوية وكائنات blob التي تريد إدخالها.

الوصول إلى الشبكة

تستخدم ABS ClickPipes مسارين منفصلين للشبكة لاكتشاف البيانات الوصفية واستيعاب البيانات: خدمة ClickPipes وخدمة ClickHouse Cloud، على التوالي. إذا كنت تريد تهيئة طبقة إضافية من أمان الشبكة (على سبيل المثال، لأسباب تتعلق بالامتثال)، فيجب تهيئة الوصول إلى الشبكة لكلا المسارين.
إن التحكم في الوصول المستند إلى عناوين IP لا يعمل إذا كانت حاوية Azure Blob Storage الخاصة بك في منطقة Azure نفسها التي توجد فيها خدمة ClickHouse Cloud. وعندما تكون الخدمتان في المنطقة نفسها، تُوجَّه حركة المرور عبر شبكة Azure الداخلية بدلًا من الإنترنت العام.
  • بالنسبة إلى التحكم في الوصول المستند إلى عناوين IP، يجب أن تسمح قواعد شبكة IP في جدار حماية Azure Storage بعناوين IP الثابتة الخاصة بمنطقة خدمة ClickPipes والمدرجة هنا، بالإضافة إلى عناوين IP الثابتة الخاصة بخدمة ClickHouse Cloud. وللحصول على عناوين IP الثابتة لمنطقة ClickHouse Cloud، افتح الطرفية وشغّل:

الإعدادات المتقدمة

يوفّر ClickPipes إعدادات افتراضية مناسبة تلبي متطلبات معظم حالات الاستخدام. وإذا كانت حالة الاستخدام لديك تتطلب ضبطًا أدق، فيمكنك تعديل الإعدادات التالية:

التحجيم

يتم تحجيم Object Storage ClickPipes بناءً على الحد الأدنى لحجم خدمة ClickHouse الذي تحدده إعدادات التحجيم التلقائي الرأسي المُعدّة. ويُحدَّد حجم ClickPipe عند إنشائه. ولن تؤثر أي تغييرات لاحقة على إعدادات خدمة ClickHouse في حجم ClickPipe. لزيادة معدل النقل في مهام إدخال البيانات الكبيرة، نوصي بتحجيم خدمة ClickHouse قبل إنشاء ClickPipe.

القيود المعروفة

حجم الملف

لن يحاول ClickPipes إلا إدخال الكائنات التي يبلغ حجمها 10GB أو أقل. وإذا تجاوز حجم الملف 10GB، فستُضاف رسالة خطأ إلى جدول الأخطاء المخصّص لـ ClickPipes.

زمن الاستجابة

بالنسبة إلى الحاويات التي تضم أكثر من 100,000 ملف، تضيف عمليات LIST في Azure blob storage زمن استجابة إضافيًا عند اكتشاف الملفات الجديدة، إلى جانب الفاصل الافتراضي للاستطلاع:
  • < 100k files: ~30 ثانية (الفاصل الافتراضي للاستطلاع)
  • 100k files: ~40-45 ثانية
  • 250k files: ~55-70 ثانية
  • 500k+ files: قد تتجاوز 90 ثانية
بالنسبة إلى الاستيعاب المستمر، يجب على ClickPipes فحص الحاوية لتحديد الملفات الجديدة التي تأتي ترتيبًا معجميًا بعد آخر ملف تم استيعابه. نوصي بتنظيم الملفات ضمن حاويات أصغر، أو باستخدام بنى أدلة هرمية لتقليل عدد الملفات في كل عملية سرد.

دعم العروض

العروض المادية على الجدول الهدف مدعومة أيضًا. ستُنشئ ClickPipes جداول مرحلية ليس فقط للجدول الهدف، بل أيضًا لأي عرض مادي تابع له. نحن لا ننشئ جداول مرحلية للعروض غير المادية. وهذا يعني أنه إذا كان لديك جدول هدف يتبعه عرض مادي واحد أو أكثر في المراحل اللاحقة، فينبغي أن تتجنب هذه العروض المادية تحديد البيانات عبر عرض من الجدول الهدف. وإلا، فقد تلاحظ فقدان بعض البيانات في العرض المادي.

التبعيات

أي تغييرات تُجرى على جدول الوجهة، أو على عروضه المادية (بما في ذلك العروض المادية المتسلسلة)، أو على الجداول الهدف للعروض المادية أثناء تشغيل ClickPipe ستؤدي إلى أخطاء قابلة لإعادة المحاولة. ولإجراء تغييرات على المخطط لهذه التبعيات، ينبغي إيقاف ClickPipe مؤقتًا، وتطبيق التغييرات، ثم استئنافه.
آخر تعديل في ٣ يوليو ٢٠٢٦