العودة
Cloudflare تضيف SQL Transformers إلى خط أنابيب تصدير Logpush
SiTech AI Team3 دقيقة قراءة

Cloudflare تضيف SQL Transformers إلى خط أنابيب تصدير Logpush

يقوم Logpush من Cloudflare بتصفية السجلات باستخدام SQL Transformers قبل التصدير، وإخفاء البيانات الحساسة وتعديل الحقول. تكتب الفرق استعلامات لمجموعات البيانات وترفق نسخة محفوظة بمهمة Logpush المناسبة بصيغة NDJSON.

ماذا تفعل Transformers

جعلت Cloudflare خدمة Logpush متاحة على جميع الخطط وأصدرت بشكل عام Transformers لنفس سير عمل التصدير. يمكن الآن لفرق المراقبة تصفية السجلات وإخفاء القيم الحساسة وإعادة تشكيل الحقول قبل أن تغادر السجلات Logpush متجهة إلى أنظمة SIEM أو منصات التحليلات أو التخزين الكائني. قد تقلل التصفية قبل التسليم من حجم البيانات اللاحقة والتكاليف، لأن الفرق لن تضطر بعد الآن إلى تصدير واستقبال وتخزين السجلات التي سيتم حذفها بعد النزول.

Transformer هو استعلام SQL يُكتب لمجموعة بيانات Logpush واحدة. ينفذ Logpush هذا الاستعلام على كل جزء قبل التصدير، ويحذف السجلات التي لا تستوفي شرط WHERE، ويستخدم نتيجة SELECT كسجل NDJSON المُصدَّر. يمكن للفرق إضافة حقول أو إعادة تسميتها أو حذفها أو تضمينها، بما في ذلك إضافة حقل provider ثابت لتطبيع السجلات القادمة من عدة شبكات CDN.

كيف يعمل التنفيذ

ينشئ المستخدمون Transformers ويعاينونها مسبقًا ويديرونها في Transformer Studio أو عبر API، ثم يرفقون نسخة محفوظة بمهمة Logpush المتوافقة بصيغة NDJSON التي تستخدم نفس مجموعة البيانات. كل تحديث ينشئ نسخة جديدة. تخزن Cloudflare استعلام SQL في R2، بينما يحصل عليه Bufstream عبر ذاكرة تخزين مؤقت متعددة الطبقات، ويجهز مرة واحدة خطة DataFusion المنطقية القابلة للتنفيذ للمقطع الزمني للمهمة، ثم يعيد استخدامها على كل جزء Arrow من نفس المقطع.

يستقبل Bufstream أجزاء Cap'n Proto المضغوطة من Buftee، ويفك ضغطها، ويحلل السجلات المقابلة، ويبني Apache Arrow RecordBatch مُنوَّعًا قبل التنفيذ. تم اختيار Apache DataFusion وArrow لأن DataFusion يعالج بالفعل Cloudflare Basin. يبدل خدمة Go مخازن Arrow IPC مع محرك Rust عبر حدود FFI، والتي يتم الكشف عنها عبر C ABI واستدعاؤها بـ cgo. تمرر Go مؤشر مخزن الإدخال فقط لاستدعاءات cgo، بينما ينتمي مخزن الإخراج إلى Rust، وتقوم Go بنسخ هذه النتيجة إلى ذاكرة مُدارة بـ Go قبل أن تحرر تخصيص Rust.

التسليم والصحة واستكشاف الأخطاء وإصلاحها

صُممت Transformers لتعمل بمبدأ fail closed. إذا فشلت التحويلة، لا يقدم Bufstream إزاحة تسليم المهمة ولا يرسل جزءًا غير محوَّل، بل يعيد محاولة التحويلات الفاشلة. يزيد تدريجيًا من محاولات إعادة المحاولة، ويثبت الأخطاء على المهمة، ويوقف المهام التي تبقى في حالة فشل لفترة طويلة. يعرض عرض Transformer Health التحويلات الناجحة والفاشلة، وحجم البيانات قبل التحويل وبعده، بالإضافة إلى مدة التحويل.

بعد التنفيذ، يحوّل Bufstream نتيجة Arrow إلى NDJSON، ويجمع السجلات في أجزاء ويضغطها بـ gzip، ثم يرفعها إلى الوجهة المُكوَّنة وينظم goroutines الرفع ضمن حدود تزامن الوجهة. قالت الشركة إن خط أنابيب البيانات الأوسع يعالج أكثر من مليار حدث في الثانية، بينما يخدم Bufstream أكثر من 110 مليون سجل Logpush في الثانية. تتوفر Transformers على خطط Free وPro وBusiness وEnterprise.

المصادر: The Cloudflare Blog

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.