مترجمهندسة البيانات

مقدمة لهندسة البيانات

كاتب المقال: Xinran Waibel مهندس البيانات في شركة نتفليكس   ترجمة: سعد الشهراني   مراجعة: فارس القنيعير

[رابط المقال الأصلي هنا]

من الأسئلة الأكثر تكراراً حول هندسة البيانات: ماذا يعمل مهندس البيانات؟ ما هوخط مسار البيانات؟ ما هو مستودع (تخزين) البيانات؟ كيف يختلف مهندس البيانات عن عالم البيانات؟ ما هي المهارات ولغات البرمجة التي تحتاج تعلمها لتصبح مهندس بيانات؟

وفقاً لتقرير دايس 2020 للوظائف التقنية الذي نشر مؤخراً، كان مهندس البيانات أسرع المهن التكنولوجية نمواً في عام 2019، مع نمو بنسبة 50% على مدار العام في عدد الوظائف المفتوحة. بما أن هندسة البيانات هي فئة عمل جديدة نسبياً، غالباً ما أحصل على أسئلة من الناس المهتمين بمتابعتها كمهنة حول ما أفعله. في هذه المدونة سأشارك قصتي الخاصة بعد أن أصبحت مهندس بيانات، وأجيب على بعض الأسئلة التي كثيراً ما تطرح حول هندسة البيانات.

المصدر: دايس 2020 للوظائف التقنية

رحلتي إلى هندسة البيانات

 قبل عامين، وقبل أن أصبح مهندساً للبيانات، عملت في الأساس على تطوير قواعد البيانات والتطبيقات (بالإضافة إلى قياس النطاق (scale) والأداء (performance). أحببت العمل مع RDBMS والبيانات كثيراً لدرجة أنني قررت متابعة مهنة الهندسة التي تركز على البيانات الضخمة. بعد البحث في الإنترنت، تعلمت عن نوع من الوظائف لم أسمع بها من قبل، ولكن اعتقد أنه قد يكون “الخيار المناسب” بالنسبة لي: مهندس البيانات. لقد كنت تائهاً في ذلك الوقت لأنني لم أكن أعرف من أين أبدأ، أو ما إذا كانت هذه الخطوة ستنجح معي. على أية حال، كُنْتُ محظوظاً بما فيه الكفاية أَنْ يَكُونَ عِنْدي مُرشد وهو الذي علمني وساعدَني للحصول على وظيفتي الأولى في هندسة البيانات. منذ ذلك الحين وأنا لازلت أعمل بدوام كامل في ذلك المجال، وما زلت أحبه!

اسألني عن أي شئ:

س: ماذا يعمل مهندس البيانات ؟

باختصار، فإن مهندسي البيانات مسؤولين عن تصميم وتطوير وصيانة منصة البيانات، التي تشمل البنية التحتية للبيانات، وتطبيقاتها، ومستودعها، و خط مسارها.

في شركة كبرى مثلاً، ينقسم مهندسوا البيانات عادة إلى مجموعات مختلفة تعمل كل منها على جزء محدد من منصة البيانات:

  • مستودع البيانات ومسارها (data warehouse & pipelines): يقوم مهندسوا مستودع البيانات ببناء خط مسار البيانات الحزمية (أو\و) الآنية للدمج بين النظم ودعم مستودع البيانات. وحيث أن مستودع البيانات يهدف لحل مشاكل متعلقة بالأعمال، فإن مهندسي مستودع البيانات غالباً يعملون بالقرب من محللي وعلماء البيانات أو فرق العمل التي تخدم أحد قطاعات الأعمال.
  • البنية التحتية للبيانات (data infrastructure): يقوم مهندسي البنية التحتية للبيانات ببناء وصيانة الأساس لمنصة البيانات: الأنظمة الموزعة التي يعمل كل شيء عليها. فعلى سبيل المثال، في متاجر تارجت (Target) يقوم الفريق بالاحتفاظ بالبيانات في مجموعات clusters Hadoop تستخدمها المنظمة بأكملها.
  • تطبيقات البيانات (data applications): مهندسي تطبيقات البيانات هم مهندسي البرمجيات اللذين يبنون أدوات البيانات الداخلية وواجهات التطبيقات البرمجية (API). في بعض الأحيان، قد تصبح أداة داخلية عظيمة فيما بعد منتجاً مفتوح المصدر للشركة. على سبيل المثال، قام أحد فرق منتجات البيانات في Lyft ببناء أداة لاكتشاف البيانات تدعى Amundsen، والتي فتح مصدرها عام 2019.

س: ما هو مستودع البيانات؟

مستودع البيانات هو نظام للتخزين مملوء بالبيانات من مصادر مختلفة ويستخدم أساساً في تحليل البيانات. كثيراً ما يتم تخزين بيانات الشركة في أنظمة قواعد بيانات علائقية مختلفة (أو أسوأ من ذلك، كملفات نصية)، كما أن البيانات العلائقية تتسم بقدر كبير من التطبيع (normalized) وغير مثالية لعمل التحليلات. السبب الرئيسي لبناء مستودع البيانات هو تخزين جميع الأنواع بصيغ مُحسنة وفي مكان مركزي بحيث يمكن لعلماء البيانات تحليلها كلياً. هناك العديد من قواعد البيانات التي تعمل كمستودع بيانات، مثل Apache Hive و BigQuery (GCP) و RedShift (AWS).

س: ماهو خط مسار البيانات (pipeline 

خط مسار البيانات هو سلسلة من عمليات البيانات التي تقوم باستخراجها ومعالجتها وتحميلها بين الأنظمة المختلفة. وهناك نوعان رئيسيان من خطوط مسار البيانات: خطوط البيانات الحزمية (batch) والفورية (real-time):

  • الحزمية (Batch-driven): يعالج خط مسار البيانات الحزمية البيانات فقط بتوقيتات معينة، وغالباً ما يتم جدولتها بواسطة أداة تنظيم مثل Airflowأو Oozie أو  Cron. عادة ما يعالجون دفعة كبيرة من البيانات المحفوظة دفعة واحدة، وبالتالي يستغرقون وقتاً طويلاً لإنهاءها مما يتسبب بإحداث مزيد من التأخير  في النظام النهائي. على سبيل المثال ، يقوم خط مسار البيانات القائم على الحزم بتنزيل بيانات اليوم السابق من واجهة برمجة التطبيقات (API) في الساعة 12 صباحاً من كل يوم، وتحويلها، ثم يحملها إلى مستودع البيانات.
  • الفوري (Real-time): يعالج خط المسار الفوري البيانات الجديدة بمجرد توفرها، ولا يوجد أي تأخير تقريباً بين نظام المصدر ونظام النهاية. إن هندسة تركيبة معالجة البيانات في الوقت الفوري تختلف كثيراً عن هندسة خط مسار البيانات الحزمي لأن البيانات تعامل على أنها تيار من الأحداث بدلاً من قطعاً من السجلات. على سبيل المثال، إعادة بناء خط مسار البيانات المذكور أعلاه إلى خط مسار فوري، هناك حاجة إلى أداة مناسبة مثل كافكا (Kafka): تقوم Kafka Connector بنقل البيانات من API إلى موضوع Kafka topic، وسوف تؤدي عملية Kafka Streams (أو Kafka Producer) عملية التحويل على البيانات الخام من موضوع Kafka وتحميل البيانات المحولة إلى موضوع Kafka آخر. التأخير بين المصدر API وموضوع Kafka الوجهة قد يكون في غضون ثانية!

 المصدر: Data Engineer vs. Data Scientists

س: كيف يختلف مهندس البيانات عن عالم البيانات؟

يقوم مهندسوا البيانات ببناء منصات البيانات التي تمكن علماء البيانات من تحليل البيانات وتدريب نماذج تعلم الآلة عليها (Machine Learning (ML)). وفي بعض الأحيان، يحتاج مهندسوا البيانات أيضاً إلى تحليلها ومساعدة علماء البيانات في دمج نماذج تعلم الآله مع خط مسارها. في بعض فرق عمل البيانات، قد تجد علماء البيانات يقومون بعمل هندسة البيانات. وهناك عدة مهارات متداخلة بين مهندسي وعلماء البيانات: مثل البرمجة وتدفق البيانات وتحليلها.

هنا دور ناشئ يدعى مهندس تعلم الآله (ML engineer) الذي يبني جسراً بين العالمين. يتمتع مهندس تعلم الآلة بمهارات قوية في كل من الهندسة وتعلم الآلة، وهو مسؤول عن الاستفادة المثلى من نماذج تعلم الآلة ونشرها (production).

س: لكي أصبح مهندس بيانات، ما هي لغات البرمجة التي يجب أن أتعلمها؟

هنا قائمة بالمهارات الأساسية إلى جانب أحد الأطر المتعارف عليها:

  • الأنظمة الموزعة (Distributed systems): Hadoop
  • قواعد البيانات (Databases): MySQL
  • معالجة البيانات (Data Processing): Spark
  • النظام البيئي للبيانات في الوقت الفوري (Real-time Data Ecosystem): Kafka
  • تنسيق (جدولة) البيانات (Data Orchestration) : Airflow
  • علم البيانات وتعلم الآلة (Data Science and ML): pandas (مكتبة بايثون)
  • التطوير المتكامل (Full-Stack Development): React

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

(للمهتمين بطرق تعلم الأدوات التقنية بشكل فعال؟ اطلع على طريقة التعلم المنهجي).

اليوم، حوالي 1.7 ميغابابت من البيانات الجديدة يتم توليدها في الثانية لكل إنسان على الكوكب، وهذه البيانات تحتوي على قيمة ضخمة لا يمكن حصادها دون هندسة البيانات. إن مهندسي البيانات يساعدون الناس على اتخاذ قرارات أكثر ذكاء، ولهذا السبب أحب وظيفتي كثيراً 😊.

اظهر المزيد

سعد آل سند

مرشح دكتوراه في علم البيانات. مهتم بمعالجة اللغات الطبيعية والذكاء الاصطناعي.

‫2 تعليقات

اترك تعليقاً

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

زر الذهاب إلى الأعلى