1. مقدمة
تدفق البيانات في Google Cloud
تاريخ آخر تعديل: من 2020 إلى 26 أيار (مايو)
ما هو Dataflow؟
Dataflow هي خدمة مُدارة لتنفيذ مجموعة متنوعة من أنماط معالجة البيانات. توضّح لك المستندات على هذا الموقع الإلكتروني كيفية نشر مسارات معالجة البيانات المجمّعة وتدفق البيانات باستخدام Dataflow، بما في ذلك إرشادات استخدام ميزات الخدمة.
حزمة Apache Beam SDK هي نموذج برمجة مفتوح المصدر يمكّنك من تطوير كل من مسارات الحزم وتدفقات البث. ويمكنك إنشاء المسارات باستخدام برنامج Apache Beam، ثم تشغيلها في خدمة Dataflow. توفِّر مستندات Apache Beam معلومات مفاهيمية معمّقة ومواد مرجعية لنموذج برمجة Apache Beam وحزم تطوير البرامج (SDK) وبرامج التشغيل الأخرى.
بث تحليلات البيانات بسرعة
تتيح عملية Dataflow تطوير مسار نقل بيانات البث بسرعة وسهولة مع تقليل وقت الاستجابة.
تبسيط العمليات والإدارة
يسمح ذلك للفِرق بالتركيز على البرمجة بدلاً من إدارة مجموعات الخوادم، لأنّ نهج Dataflow بدون خوادم يؤدي إلى تخفيف أعباء العمل المتعلّقة بهندسة البيانات.
تقليل التكلفة الإجمالية للملكية
من خلال التوسّع التلقائي للموارد إلى جانب إمكانات المعالجة على دفعات محسَّنة، تقدّم Dataflow سعة غير محدودة تقريبًا لإدارة أعباء العمل الموسمية والارتفاعة بدون زيادة في الإنفاق.
الميزات الأساسية
إدارة الموارد المبرمَجة وإعادة موازنة العمل الديناميكي
تعمل Dataflow على برمجة عملية توفير موارد المعالجة وإدارتها لتقليل وقت الاستجابة وزيادة الاستخدام إلى أقصى حد كي لا تحتاج إلى تدوير المثيلات أو الاحتفاظ بها يدويًا. تتم أيضًا برمجة تقسيم العمل ويتم تحسينه لإعادة موازنة العمل المتأخِّر ديناميكيًا. لا داعي لاستخدام "مفاتيح التشغيل السريع" أو معالجة بيانات الإدخال مسبقًا.
القياس التلقائي الأفقي
يؤدي القياس التلقائي الأفقي لموارد العمال للحصول على أفضل سرعة لإنتاج البيانات إلى تحسين الأداء الإجمالي من حيث السعر.
أسعار مرنة لجدولة الموارد للمعالجة المجمّعة
لمعالجة الطلبات بشكل مرن في جدولة المهام، مثل المهام اليومية، توفّر ميزة جدولة الموارد المرنة (FlexRS) سعرًا أقل للمعالجة على دفعات. ويتم وضع هذه المهام المرنة في قائمة انتظار مع ضمان استردادها لتنفيذها في غضون ست ساعات.
المحتوى الذي سيتم عرضه كجزء من هذه الدورة التدريبية
في هذا الدرس التطبيقي حول الترميز، ستبدأ في استخدام لغة SQL Dataflow عن طريق إرسال عبارة SQL من خلال واجهة مستخدم SQL في Dataflow. ستستكشف بعد ذلك المسار باستخدام واجهة مستخدم مراقبة Dataflow.
المعلومات التي ستطّلع عليها
- كيفية إرسال عبارة SQL كمهمة Dataflow في واجهة مستخدم SQL Dataflow.
- كيفية الانتقال إلى مسار Dataflow.
- استكشف الرسم البياني لتدفق البيانات الذي تم إنشاؤه بواسطة عبارة SQL.
- الاطّلاع على معلومات المراقبة المقدّمة في الرسم البياني
المتطلبات
- مشروع على Google Cloud Platform مع تفعيل الفوترة
- تم تفعيل Google Cloud Dataflow وGoogle Cloud PubSub.
2. بدء الإعداد
تأكَّد من تفعيل واجهة برمجة التطبيقات Dataflow API وCloud Pub/Sub API. يمكنك التحقّق من ذلك من خلال الانتقال إلى صفحة الخدمات.
3- الوصول إلى واجهة مستخدم Dataflow SQL
واجهة مستخدم SQL Dataflow هي إعداد لواجهة مستخدم الويب في BigQuery لإنشاء مهام SQL في Dataflow. يمكنك الوصول إلى واجهة مستخدم SQL Dataflow من واجهة مستخدم الويب في BigQuery.
- انتقِل إلى واجهة مستخدم الويب في BigQuery.
- عليك التبديل إلى محرّك "تدفق البيانات في السحابة الإلكترونية".
- انقر على القائمة المنسدلة المزيد وحدد إعدادات طلب البحث.
- في قائمة إعدادات طلب البحث، اختَر محرك Dataflow.
- في الطلب الذي يظهر في حال عدم تفعيل واجهتَي برمجة تطبيقات Dataflow وData Catalog API، انقر على Enable APIs (تفعيل واجهات برمجة التطبيقات).
- انقر على حفظ (Save).
يمكنك أيضًا الوصول إلى واجهة مستخدم SQL Dataflow من واجهة مراقبة تدفق البيانات.
- انتقِل إلى واجهة تتبُّع Dataflow.
- انقر على إنشاء مهمة من SQL.
4. تشغيل مهمة تدفق البيانات باستخدام استعلام SQL (لغة الاستعلام البنيوية)
كتابة استعلامات SQL (لغة الاستعلام البنيوية) لـ Dataflow
تستخدم طلبات بحث SQL لـ Dataflow بنية طلب بحث SQL لـ Dataflow. تشبه بنية طلب بحث SQL في Dataflow لغة الاستعلامات البنيوية (SQL) العادية في BigQuery. يمكنك استخدام إضافات بث لغة الاستعلامات البنيوية (SQL) في Dataflow لتجميع البيانات من خلال تعديل مصادر Dataflow باستمرار، مثل النشر/الاشتراك. على سبيل المثال، يحسب الاستعلام التالي عدد الركاب في ساحة مشاركات Pub/Sub لركوب سيارات الأجرة كل دقيقة:
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
تشغيل استعلامات SQL (لغة الاستعلام البنيوية) لـ Dataflow
عند تشغيل طلب بحث SQL لـ Dataflow، يحوِّل Dataflow طلب البحث إلى مسار شعاع Apache وينفذ المسار.
يمكنك تنفيذ طلب بحث SQL Dataflow باستخدام أداة سطر الأوامر Cloud Console أو gcloud.
لتشغيل طلب بحث SQL Dataflow، استخدِم واجهة مستخدم SQL Dataflow.
- انتقِل إلى واجهة مستخدم Dataflow SQL.
- أدخل استعلام SQL (لغة الاستعلام البنيوية) لـ Dataflow أعلاه في محرر طلبات البحث.
- انقر على "إنشاء مهمة تدفق البيانات في السحابة الإلكترونية" لفتح لوحة بخيارات المهمة.
- (اختياري) انقر على "إظهار المَعلمات الاختيارية" وتصفَّح القائمة.
- في قسم "Destination" (الوجهة) من اللوحة، حدد BigQuery باعتباره نوع الإخراج.
- اختيار رقم تعريف مجموعة بيانات وإنشاء اسم للجدول "passengers_per_min"
- انقر فوق "Create" (إنشاء).
لمزيد من المعلومات حول تنفيذ طلبات بحث عن البيانات وكتابة نتائج طلب بحث SQL Dataflow، يُرجى الاطّلاع على استخدام Dataflow SQL.
5- استكشاف المهمة على واجهة مستخدم Dataflow Monitoring
عند تنفيذ مسار العملية باستخدام خدمة Dataflow المُدارة، يمكنك عرض هذه المهمة وأي مهمة أخرى باستخدام واجهة مستخدم المراقبة المستندة إلى الويب في Dataflow. تتيح لك واجهة المراقبة الاطّلاع على مهام Dataflow والتفاعل معها.
يمكنك الوصول إلى واجهة مراقبة Dataflow باستخدام Google Cloud Console. يمكن أن تعرض لك واجهة المراقبة ما يلي:
- قائمة بجميع مهام Dataflow الجاري تشغيلها حاليًا والمهام التي تم تنفيذها في السابق خلال آخر 30 يومًا
- تمثيل رسومي لكل خط الأنابيب.
- تفاصيل حول حالة المهمة وتنفيذها وإصدار حزمة تطوير البرامج (SDK)
- روابط تنقل إلى معلومات حول خدمات Google Cloud التي تعمل على مسار التعلّم، مثل Compute Engine وCloud Storage
- أي أخطاء أو تحذيرات تحدث أثناء إحدى المهام.
يمكنك عرض الرسوم البيانية لمراقبة الوظائف ضمن واجهة مراقبة Dataflow. تعرض هذه الرسوم البيانية مقاييس على مدار مدة مهمة مسار التعلّم وتشمل المعلومات التالية:
- مستوى الرؤية على مستوى الخطوات للمساعدة في تحديد الخطوات التي قد تتسبب في تأخُّر عملية التنفيذ.
- المعلومات الإحصائية التي يمكن أن تُظهر سلوكًا غير مألوف.
- مقاييس وحدات الإدخال والإخراج التي يمكن أن تساعد في تحديد المؤثِّرات السلبية في المصادر والمصارف.
الوصول إلى واجهة مراقبة Dataflow
للوصول إلى واجهة مراقبة Dataflow، اتّبِع الخطوات التالية:
- انتقِل إلى Cloud Console:
- اختَر مشروعك على Google Cloud.
- انقر على القائمة في أعلى يمين الصفحة.
- انتقل إلى قسم البيانات الضخمة وانقر فوق Dataflow.
ستظهر قائمة بمهام Dataflow بالإضافة إلى حالتها.
قائمة بمهام Dataflow في Cloud Console مع المهام في حالات "قيد التشغيل" و"تعذّر الإجراء" و"تم بنجاح".
يمكن أن تكون للوظيفة الحالات التالية:
- —: لم تتلقَّ واجهة مستخدم المراقبة حالة من خدمة Dataflow.
- قيد التشغيل: الوظيفة قيد التشغيل حاليًا.
- لم تبدأ: تم إنشاء المهمة، ولكن يحتاج النظام إلى بعض الوقت للاستعداد قبل الإطلاق.
- في قائمة الانتظار: تم وضع مهمة FlexRS في قائمة الانتظار.
- جارٍ الإلغاء...: الوظيفة يتم إلغاؤها.
- ملغاة: المهمة التي ألغاها المستخدم.
- يتم استنزاف البطارية...: يتم استنزافها.
- استنزاف: استنزاف المستخدم المهمة.
- جارٍ التعديل...: يتم تعديل الوظيفة.
- معدَّلة: عدَّل المستخدم المهمة.
- اكتملت المهمة: تشير إلى انتهاء المهمة بنجاح.
- تعذّر: تعذّر إكمال المهمة.
ابحث عن الوظيفة التي تتضمن "dfsql". كجزء من المسمى الوظيفي والنقر فوق اسمه.
صفحة تفاصيل الوظيفة التي تحتوي على ما يلي:
- الرسم البياني للوظائف: التمثيل المرئي لمسار عملك
- مقاييس الوظائف: مقاييس حول تنفيذ مهمتك
- لوحة معلومات الوظيفة: تعرض معلومات وصفية حول مسار الوظيفة
- سجلات المهام: السجلات التي تم إنشاؤها بواسطة خدمة Dataflow على مستوى الوظيفة
- سجلات العامل: السجلات التي تم إنشاؤها بواسطة خدمة Dataflow على مستوى العامل
- إعداد تقارير عن أخطاء الوظيفة: رسوم بيانية تعرض أماكن حدوث الأخطاء على طول المخطط الزمني المحدّد وعدد كل الأخطاء التي تم تسجيلها
- أداة اختيار الوقت: أداة تتيح لك ضبط الفترة الزمنية للمقاييس
في صفحة "تفاصيل الوظيفة"، يمكنك تبديل عرض الوظيفة باستخدام "الرسم البياني للوظيفة" وعلامة التبويب "مقاييس الوظيفة".
- انقر على علامة التبويب "مقاييس الوظائف" واستكشِف الرسوم البيانية.
6- إيقاف مهمة SQL في Dataflow
لإيقاف مهام SQL في Dataflow، استخدِم أمر "Cancel" (إلغاء). لا تتوفّر إمكانية إيقاف مهمة SQL في Dataflow باستخدام ميزة "Drain".