من هم مهندسو البيانات ، وكيف يصبحون؟

مرحبا مرة أخرى! عنوان المقال يتحدث عن نفسه. تحسبا لبدء دورة "مهندس البيانات" ، نقترح معرفة من هم مهندسو البيانات. المقالة لديها الكثير من الروابط المفيدة. هل لديك قراءة جيدة.



دليل بسيط حول كيفية التقاط موجة هندسة البيانات ومنعها من جذبك إلى الهاوية.

يحصل المرء على الانطباع بأن الجميع في هذه الأيام يريد أن يصبح عالم بيانات. ولكن ماذا عن هندسة البيانات؟ في جوهرها ، إنه نوع من مزيج من محلل البيانات وعالم البيانات ؛ مهندس البيانات عادة ما يكون مسؤولاً عن إدارة سير العمل ومعالجة خطوط الأنابيب وعمليات ETL . نظرًا لأهمية هذه الوظائف ، تعد هذه المصطلحات حاليًا لغة مهنية شعبية أخرى تكتسب زخماً نشطًا.

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

لذلك دعونا نبدأ!

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

بصراحة ، لا يوجد تفسير أفضل من هذا:
"يمكن للعالم اكتشاف نجم جديد ، لكن لا يمكن إنشاؤه. سيكون عليه أن يطلب من المهندس أن يفعل ذلك من أجله. "

غوردون ليندساي غليج
وبالتالي ، فإن دور مهندس البيانات مهم للغاية.

من الاسم يتبع أن هندسة البيانات مرتبطة بالبيانات ، وبالتحديد تسليمها وتخزينها ومعالجتها. وفقا لذلك ، فإن المهمة الرئيسية للمهندسين هي توفير بنية تحتية موثوقة للبيانات. إذا نظرنا إلى التسلسل الهرمي للاحتياجات AI ، تأخذ هندسة البيانات المراحل 2-3 الأولى: جمع البيانات ونقلها وتخزينها .



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

مع ظهور البيانات الضخمة ، تغير مجال المسؤولية بشكل كبير. في السابق ، كتب هؤلاء الخبراء استعلامات SQL كبيرة وتجاوزوا البيانات باستخدام أدوات مثل Informatica ETL و Pentaho ETL و Talend ، لكن الآن زادت متطلبات مهندسي البيانات.

معظم الشركات التي لديها وظائف شاغرة مفتوحة لمهندس البيانات لديها المتطلبات التالية:

  • معرفة ممتازة بـ SQL و Python.
  • تجربة مع منصات سحابة ، ولا سيما خدمات الويب الأمازون.
  • المعرفة من جافا / سكالا المفضل.
  • فهم جيد لقواعد بيانات SQL و NoSQL (نمذجة البيانات وتخزين البيانات).

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

قد تختلف قائمة الأدوات المستخدمة في هذه الحالة ، كل هذا يتوقف على حجم هذه البيانات ، وسرعة استلامها وعدم التجانس. لا تواجه معظم الشركات بيانات كبيرة على الإطلاق ، لذلك ، كمستودع مركزي ، أو مستودع البيانات المزعوم ، يمكنك استخدام قاعدة بيانات SQL (PostgreSQL ، MySQL ، وما إلى ذلك) مع مجموعة صغيرة من البرامج النصية التي توجه البيانات إلى المستودع.

لدى عمالقة تكنولوجيا المعلومات مثل Google أو Amazon أو Facebook أو Dropbox مطالب أعلى: معرفة Python أو Java أو Scala.

  • تجربة مع البيانات الكبيرة: Hadoop ، سبارك ، كافكا.
  • معرفة الخوارزميات وهياكل البيانات.
  • فهم أساسيات النظم الموزعة.
  • ستكون تجربة استخدام أدوات تصور البيانات مثل Tableau أو ElasticSearch ميزة كبيرة.

أي أن هناك تحولًا واضحًا نحو البيانات الضخمة ، وبالتحديد في معالجتها بأحمال عالية. زادت هذه الشركات من متطلبات تحمل أخطاء النظام.

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


حسنًا ، كانت مقارنة بسيطة ومضحكة (لا شيء شخصي) ، ولكن في الواقع ، كل شيء أكثر تعقيدًا.

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

علم البيانات أمر خطير ، لكننا نتحرك نحو عالم به علم بيانات وظيفي حيث يمكن للممارسين إجراء تحليلاتهم الخاصة. لاستخدام خطوط أنابيب البيانات وهياكل البيانات المتكاملة ، تحتاج إلى مهندسي بيانات ، وليس إلى علماء.

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

ولكن هنا تكمن ميزة مهندس البيانات: بدونه ، تكون قيمة نموذج النموذج الأولي ، التي تتكون في معظم الأحيان من جزء من رمز الجودة الفظيعة في ملف Python ، المستلم من عالم بيانات ويعطي نتيجة ما بطريقة ما ، إلى الصفر.

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

معلومات أساسية يجب أن يعرفها مهندس البيانات



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

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

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

على سبيل المثال ، تستند قواعد بيانات SQL B-tree العادية إلى هيكل بيانات B-Tree ، وكذلك في المستودعات الموزعة الحديثة ، LSM-Tree وغيرها من تعديلات جدول التجزئة.

* تستند هذه الخطوات إلى مقال رائع من تأليف عادل خشتاموف . لذلك ، إذا كنت تعرف الروسية ، فدعم هذا المؤلف وقراءة منشوره .

1. الخوارزميات وهياكل البيانات

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


بالإضافة إلى ذلك ، لا تنس العمل الكلاسيكي في خوارزميات توماس كورمين - مقدمة في الخوارزميات . هذا هو المرجع المثالي عندما تحتاج إلى تحديث ذاكرتك.

  • لتحسين مهاراتك ، استخدم Leetcode .

يمكنك أيضًا الغوص في عالم قواعد البيانات باستخدام مقاطع الفيديو المذهلة من جامعة كارنيجي ميلون على Youtube:


2. تعلم SQL

حياتنا كلها هي البيانات. ومن أجل استخراج هذه البيانات من قاعدة البيانات ، تحتاج إلى "التحدث" معهم بلغة واحدة.

SQL (لغة الاستعلام الهيكلية) هي لغة اتصال بيانات. بغض النظر عن ما يقوله شخص ما ، فإن SQL قد عاشت على قيد الحياة وستعيش لفترة طويلة جدًا.

إذا كنت تعمل في مجال التطوير لفترة طويلة ، فمن المحتمل أنك لاحظت أن الشائعات حول الموت الوشيك لـ SQL تظهر بشكل دوري. تم تطوير اللغة في أوائل سبعينيات القرن العشرين وما زالت تحظى بشعبية كبيرة بين المحللين والمطورين والمتحمسين فقط.
بدون معرفة SQL ، لا يوجد شيء يمكن القيام به في هندسة البيانات ، حيث سيكون عليك إنشاء استعلامات لاسترداد البيانات. تدعم جميع مخازن البيانات الكبيرة الحديثة SQL:

  • الانحناء الأحمر الأمازون
  • HP Vertica
  • وحي
  • مزود خدمة

... وغيرها الكثير.

لتحليل طبقة كبيرة من البيانات المخزنة في الأنظمة الموزعة مثل HDFS ، تم اختراع آليات SQL: Apache Hive ، Impala ، إلخ. كما ترى ، لن تذهب إلى أي مكان.

كيف تتعلم SQL؟ فقط تفعل ذلك في الممارسة العملية.

للقيام بذلك ، أوصي بقراءة برنامج تعليمي ممتاز ، والذي ، بالمناسبة ، خالٍ من Mode Analytics .

  1. مزود المتوسطة
  2. الجمع بين البيانات في SQL

الميزة المميزة لهذه الدورات التدريبية هي وجود بيئة تفاعلية يمكنك من خلالها كتابة وتنفيذ استعلامات SQL مباشرة في المستعرض. مورد SQL الحديثة لن يكون زائدا. ويمكنك تطبيق هذه المعرفة في مهام Leetcode في قسم قواعد البيانات.

3. البرمجة في بيثون وجافا / سكالا

لماذا يستحق تعلم لغة برمجة بايثون ، لقد كتبت بالفعل في مقال بيثون ضد آر. اختيار أفضل أداة لعلوم الذكاء الاصطناعي ، ML وعلم البيانات . بالنسبة إلى Java و Scala ، تتم كتابة معظم أدوات تخزين ومعالجة كميات هائلة من البيانات بهذه اللغات. على سبيل المثال:

  • أباتشي كافكا (سكالا)
  • Hadoop ، HDFS (جافا)
  • أباتشي سبارك (سكالا)
  • أباتشي كاساندرا (جافا)
  • HBase (جافا)
  • اباتشي هايف (جافا)

لفهم كيفية عمل هذه الأدوات ، تحتاج إلى معرفة اللغات التي كتبت بها. يتيح لك الأسلوب الوظيفي لـ Scala حل مهام معالجة البيانات الموازية بكفاءة. بيثون ، للأسف ، لا يمكن أن يتباهى بالسرعة والمعالجة المتوازية. بشكل عام ، تؤثر معرفة العديد من اللغات ونماذج البرمجة جيدًا على اتساع النهج لحل المشكلات.

لتنغمس في لغة Scala ، يمكنك قراءة البرمجة في Scala من مؤلف اللغة. نشر تويتر أيضًا دليلًا تمهيديًا جيدًا - مدرسة سكالا .

بالنسبة لبايثون ، أجد فلوينت بيثون أفضل كتاب متوسط ​​المدى.

4. أدوات البيانات الكبيرة

فيما يلي قائمة بأكثر الأدوات شعبية في عالم البيانات الضخمة:

  • اباتشي شرارة
  • أباتشي كافكا
  • أباتشي Hadoop (HDFS ، HBase ، خلية)
  • أباتشي كاساندرا

يمكنك العثور على مزيد من المعلومات حول إنشاء كتل بيانات كبيرة في هذه البيئة التفاعلية المدهشة. الأدوات الأكثر شعبية هي سبارك وكافكا. إنهم بالتأكيد يستحقون الاستكشاف ، فمن المستحسن فهم كيفية عملهم من الداخل. نشر جاي كريبس (مؤلف مشارك لكافكا) في عام 2013 العمل الضخم The Log: ما يجب أن يعرفه كل مطور برمجي حول التجريد من تجميع البيانات في الوقت الفعلي ، بالمناسبة ، تم استخدام الأفكار الرئيسية من Talmud لإنشاء Apache Kafka.


5. منصات سحابة



معرفة ما لا يقل عن منصة سحابة واحدة على قائمة المتطلبات الأساسية لمقدمي الطلبات لمنصب مهندس البيانات. يمنح أصحاب العمل الأفضلية لخدمات Amazon Web Services ، تليها منصة Google السحابية ، ويغلقون أفضل ثلاثة من قادة Microsoft Azure.

يجب أن تكون على دراية جيدة في Amazon EC2 و AWS Lambda و Amazon S3 و DynamoDB.

6. النظم الموزعة

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

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

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

بالنسبة لأولئك الذين يحبون مشاهدة مقاطع الفيديو ، توجد دورة تدريبية حول أنظمة الكمبيوتر الموزعة على Youtube.

7. خطوط أنابيب البيانات



خطوط أنابيب البيانات هي ما لا يمكنك العيش بدونه كمهندس بيانات.

في معظم الأوقات ، يقوم مهندس البيانات بإنشاء تاريخ ما يسمى بخطوط الأنابيب ، أي أنه ينشئ عملية تسليم البيانات من مكان إلى آخر. يمكن أن تكون هذه البرامج النصية للمستخدم التي تذهب إلى API للخدمة الخارجية أو تقوم بإجراء استعلام SQL ، وتكمِّل البيانات وتضعها في مخزن مركزي (مستودع بيانات) أو تخزين بيانات غير منظم (بحيرة البيانات).

لتلخيص: القائمة المرجعية مهندس البيانات



لتلخيص ، تحتاج إلى فهم جيد لما يلي:

  • نظم المعلومات
  • تطوير البرمجيات (Agile ، DevOps ، تقنيات التصميم ، الخدمية) ؛
  • النظم الموزعة والبرمجة الموازية ؛
  • أساسيات قواعد البيانات - التخطيط والتصميم والتشغيل واستكشاف الأخطاء وإصلاحها ؛
  • تصميم التجارب - اختبارات A / B لإثبات المفاهيم وتحديد الموثوقية وأداء النظام وأيضًا لتطوير طرق موثوقة لتوفير حلول جيدة بسرعة.

هذه مجرد متطلبات قليلة لكي تصبح مهندس بيانات ، لذا عليك دراسة وفهم أنظمة البيانات وأنظمة المعلومات والتوصيل / النشر / التكامل المستمر ولغات البرمجة وغيرها من المواضيع في علوم الكمبيوتر (وليس في جميع المجالات).

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

إليكم صورة رائعة شاهدتها توضح هذه النقطة جيدًا:



ونعم ، تذكر تجنب الإرهاق والراحة. هذا هو أيضا مهم جدا. حظا سعيدا

كيف تحب المقال ، أيها الأصدقاء؟ ندعوك لحضور ندوة عبر الإنترنت مجانًا ، والتي ستعقد اليوم في الساعة 20:00. كجزء من الندوة عبر الإنترنت ، سنناقش كيفية إنشاء نظام معالجة بيانات فعال وقابل للتطوير لشركة صغيرة أو شركة ناشئة بأقل تكلفة ممكنة. كعمل ، سنقدم لك أدوات معالجة بيانات Google Cloud. اراك قريبا!

Source: https://habr.com/ru/post/ar452670/


All Articles