هندسة البيانات قراءة 7 دقيقة

أطلس أدوات البيانات: الخريطة التي بنيتها لأدرس لامتحان هندسة البيانات في أمزون

27 من أصل 89 كلمة في نموذجي اللغوي الصغير تظهر في هذه المقالة● مستخدمة في هذه المقالة● كلمات إنجليزية، مترجمة
Data Stack Atlas: the map of Kinesis Data Streams

يتضمن امتحان هندسة البيانات لشركة AWS قرابة 100 – 150 من التقنيات المختلفة التي تتفاعل فيما بينها بطرق مختلفة. بعضها من صنع خدمات امزون السحابية في حين أن بعضها الآخر هي تقنيات عامة أصبحت بمثابة المبادئ للعمل في البيانات. وكشخص يحب الخرائط والمخططات فلطالما كانت دراستي للمواضيع المختلفة تتضمن انشاء الكثير من المخططات على الورق أو على أدوات المخططات، لكن اليوم مع كلود كود وخيال جافاسكربت جيد فكرت في انشاء منصة تفاعلية صغيرة للدراسة. في الأسبوعين الأخيرة عملت على منصة Data Stack Atlas مع كلود كود لتتضمن مئات التقنيات، أدوات امزون الخاصة بالبيانات، وبعض أدوات هندسة البيانات العامة، فضلا عن منتجات من شركات أخرى مثل ميكروسوفت او الأدوات مفتوحة المصدر. الأهم فإن هناك أنماط للاتصال بين تلك التقنيات وهناك أيضاً أنماط معمارية ومئات السيناريوهات للربط وتغيير الاعدادات وشاشات تظهر تأثير الاعدادات المختلفة على الأسعار والكفاءة لتلك التقنيات.

مهما كان التطبيق العملي في خدمات امزون السحابية مفيداً فإننا في الواقع، كمهندسين، نهتم او يجب أن نهتم للمبدأ العلمي والتقني وراء التقنيات وهو أمر حاولت التركيز عليه. تسمع وتقرأ عن الفرق بين Glue وEMR من الناحية النظرية وتعرف أن الأخير قد ورث اسمه من Map Reduce لكنه اليوم يستخدم محركات حديثة مثل Spark أو Flink أو Trino ثم تتسائل ما الذي بقي من Map Reduce التاريخي؟ لماذا تبيع خدمات امزون السحابية سبارك هنا وهناك؟ التطبيق العملي سيجعلك تفهم الأمر، لكن أيضاً مخططات “كيف تعمل” في اطلس أدوات البيانات.

جميع الأدوات في خارطة واحدة

أكثر من 550 أداة وخاصية تجدونها في القائمة الجانبية على اليسار مع فصل الخصائص كفروع من الأدوات الرئيسية التي تنتمي لها. حين تختار احداها تأتي تفاصيل الأداة كاملة في القائمة على اليمين. كما تمتلأ اللوحة بكافة الاتصالات الممكنة للأداة مع خطوط توضح الاتصالات الآنية real-time واتصالات نقل الحزم batch فضلا عن الاتصالات المتعلقة بالسيطرة على الأدوات control وما يعمل على تمرير الاحداث حين حدوثها events أو ما يستخدم للوصول الى الأدوات access. تظهر خطوط الاتصال ما يعكس هذه الاتصالات كما يجب أن تظهر بطريقة معبرة (جميلة كما آمل!).

Kinesis Data Streams مع كل ما يكتب إليها وكل ما يقرأ منها. هذا هو الأطلس: اضغط على أي مربع، أو اضغط Ctrl مع عجلة الماوس للتكبير، أو افتحه بملء الشاشة.

وراء الاطلس هناك توثيق لـ 800 اتصال مختلف كما أن هناك إشارة من خط الى ثلاثة خطوط توضح ما إذا كان الاتصال شائعا ام لا بالاعتماد على السيناريوهات والاسئلة التي تم توفيرها للأداة. فيما عدا الأسئلة والسيناريوهات والبيانات التي تم توفيرها من أمزون فإن مراجعة كل خطوط الاتصال تلك تمت عن طريق عملاء agents من كلود عملوا بالتوازي للتحقق من صحة كل خط. كل خط أيضاً يحتوي على معلومات إضافية مما يمكن أن يستوعبه من أصناف ملفات فضلاً عن نوع التشفير وكانت هناك مهمة مختلفة لكلود كود لكل من هذه. التدقيق لهذه من ناحيتي تم وأنا ادرس لكنني لا أضمن بعد كل ذلك، وقد حدثت اتجاه النقل بعدما كان احادي الاتجاه لاحقاً.

ما لا تقوم به الأدوات

من السهل أن نقرأ عن أي أداة تقنية في الغالب من صفحاتها الدعائية أو من شرحها العملي أو أن نجرب تطبيقها لنعرف ما تقوم به، لكن معرفة ما لا تقوم به أو ما ليست مخصصة له فهو أمر تقوم به الامتحانات بشكل أفضل. للأمانة التقنية فإنني لست مستخدما لفايرهوز Firehose أو كينيسس داتا ستريمز Kinesis Data Streams ولا أظن أن هناك الكثير لمستخدمي هذه الأدوات، لكن وجود تسمية Kinesis ضمنها يخلق الكثير من سوء الفهم قبل البدء بالتطبيق واستخدام تلك الأدوات على سبيل التجربة. وهنا يأتي دور الحقل الهام الذي انشأته ضمن الاطلس في القائمة الجانبية على اليمين بناءا على السيناريوهات التي تم توفيرها من مستندات تلك الأدوات او الأسئلة او الأنماط المعمارية المختلفة. لمن لا ينوي تجربة تلك الأدوات يمكنك أن تعرف من هنا أن أثينا لا تخزن البيانات، وأن فايرهوز لا يحتاج الى تنظيم مهمة تنفيذ job له أو أنه لا ينقل البيانات في الوقت الفعلي real time.

هناك أيضاً مقارنات مع الأدوات الأقرب في الوظيفة والتي يمكن ان يكون هناك خلط بينهما والمقارنات تركز على ابعاد أربعة رئيسية: السعر، سهولة البدء في العمل، الخبرة المطلوبة للعمل، وسرعة الأداة.

Amazon Data Firehose وما يتصل به. اضغط على أي مربع لترى معاينته: ما هي الأداة، وما لا تفعله الاداة («هذا ليس» This is NOT)، وما يدخل إليها ويخرج منها.

الأنماط المعمارية

هناك 77 نمط معماري جمعتها أولاً من الأنماط المعمارية المعتمدة في خدمات امزون السحابية وازور ومن ثم من السيناريوهات المقدمة حول الامتحان والمذكورة في مستندات الأدوات. حين تختار النمط يمكن أن ترى كافة الأدوات في اللوحة والبيانات تتحرك باتجاهاتها ووفقاً لانماط حركتها: الوقت الفعلي، او الحزم..الخ.

نمط تصميم على اللوحة والبيانات تتحرك فيه: يمكنك أن ترى أين يلتقي جزء الحزم batch بجزء الوقت الفعلي real-time في المعمارية.

المختبرات المصغرة

حين الضغط على “how it runs” سترى تنوعا من مختبرات مصغرة يتم فيها تمثيل البيانات كدقائق تتحرك بسرعة بين الأجزاء المختلفة للأنظمة. وتركز هذه الشاشات على الجزء المجرد من عمل التقنيات بصفتها أدوات هندسية مكونة من قطع مختلفة تخدم أغراضاً مختلفة. يمكن أن ترى كيف تمتلأ الذاكرة حين نقوم بفعل معين أو كيف يزداد السعر أو وقت التنفيذ مع خيارات معينة وكل ذلك افتراضي بالتأكيد.

مختبر AWS Glue: غيّر نوع المهمة أو حجم البيانات وراقب وقت التنفيذ والكلفة وما يُكتب في النهاية.

هناك مختبرات لكل من: Glue, EMR, Redshift, Athena, Lambda, Kinesis, Step Functions, EBS, Hadoop, SQL engines, NoSQL databases, Kafka and Flink وما زال بالإمكان إضافة المزيد وهذه من مواهب الذكاء الاصطناعي التي لا أزعم نيل الفضل فيها فهذه الأدوات مصممة باستخدام جافاسكربت وكنت أنا صاحب الفكرة وراءها فقط لكنني لست المبرمج مثلما هو الحال مع باقي أجزاء الاطلس. الأرقام كما ذكرت افتراضية توضيحية وليست حرفية. كما أن الحالات المقدمة تدور بشكل رئيسي حول الامتحان واسئلته.

خطوات كيف تعمل

جانب من المختبرات هو رسم خطوات متسلسلة تفاعلية لبعض التقنيات التي يصعب تصورها حين القراءة عنها. سبارك على سبيل المثال نرى في مخططه كيف تبدأ مهمة التنفيذ job وكيف يتم تخطيطها وكيف يدير مدير العنقود cluster manager وحدات التنفيذ المختلفة ومهام القراءة من الأجزاء partitions كما يظهر زيادة الذاكرة وكيف يتم استخدام وحدات الخزن.

مهمة سبارك Spark خطوة بخطوة: المشغّل driver ووحدات التنفيذ executors والذاكرة وملفات الخلط shuffle وما يفيض إلى القرص spill. اضغط Start للبدء.

الادلة التوضيحية

بعض المواضيع الخاصة بالأدوات بدت صعبة التذكر بالنسبة لي أو وجدت فقط أنها مادة خصبة لإنشاء مخطط جميل. في بعض الأحيان انشاء المخططات بالنسبة لي مغري أكثر حتى من غرض التعلم. مثال ذلك هو نوافذ التنفيذ لفلينك Flink وهو المثال المفضل لي حول هذا وهو كما ترونه ادناه.

نوافذ البث في فلينك Apache Flink بشكل حي: كل مسار يغلق نوافذه حين تمر علامة الماء watermark. فعّل خيار الأحداث المتأخرة Late, out-of-order events لترى كيف تُسقط الأحداث التي تصل متأخرة أكثر من اللازم.

بطاقات (ريلز) للتعلم

جانب من دراستي للامتحان تم وانا امارس الرياضة لحل الأسئلة او قراءة بعض الأشياء عن الامتحان، كما أنني بشكل عام استخدم الريلز بأصنافها ومسمياتها المختلفة في يوتيوب او تكتوك او انستاغرام فلماذا لا تكون هناك بطاقات (ريلز) تعليمية؟ اذا فتحت الموقع من الهاتف فستجد خيارا لذلك. لكن اعترف أن هذا الجزء خضع لتدقيقي أقل من بقية الأجزاء حيث انشأته في آخر يوم قبل أن انجح في الامتحان ولم استخدمه كثيراً.

على الهاتف يتحول الأطلس إلى مجموعة من بطاقات المراجعة القصيرة.
على الهاتف يتحول الأطلس إلى مجموعة من بطاقات المراجعة القصيرة.

كيف استخدمت كل هذا للدراسة

بعد انشاء الاطلس بشكله الأساسي واضافة سيناريوهات الأسئلة له صار من الواضح أن أي الأجزاء أكثر ثقلا في الامتحان وكان هذا يتضمن التوجيه لي حيث ادرس واركز اكثر. هناك اختيار في أعلى الأطلس يمكن فيه تحديد الامتحان وتجدون فيه الآن امتحان امزون فقط، وقد اضيف المزيد في الامتحانات القادمة. الأسئلة لا توضح فقط ما هو عليه الحال في الأدوات، بل ما لا تقوم به وما ليست كذلك “هذا ليس…” “هذه الأداة لا تفعل…” وهكذا.

تتضمن اللوحة أيضا الكثير من التوضيحات حول الخصائص الأمنية وخصائص الشبكات وهناك أيضاً لوحات تفاعلية خاصة بالأمن والشبكات.

هذه الأداة تتضمن أدوات مختلفة لأمزون وروابط الى مستندات امزون لكنني اعددتها بشكل مستقل تماما وهي لا ترتبط بشركة امزون.

الخطوة التالية؟

ربما امتحان آخر وربما سأعمل على الأداة أكثر لتحويلها الى أداة فاعلة للتصميم وليس فقط كأداة لدراسة الامتحانات وهي تساعد من الأساس في التصميم الآن.

بامكانك تجربة الأداة في الحاسوب او الهاتف (مع البطاقات). omarmeriwani.com/data-atlas

المزيد في هندسة البيانات

كل مقالات هندسة البيانات
  1. تشاؤم كليبمان: رؤية عميقة لتطور تقنيات هندسة البياناتهندسة البيانات

التعليقات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *