مهندسی داده چیست؟ + مسیر تبدیل شدن به Data Engineer
در سال های اخیر شغل مهندسی داده (Data Engineer) به سرعت در اکوسیستم علوم داده در حال رشد است. طبق گزارش شغلی DICE (شرکت کاریابی در حوزه تکنولوژی) مهندسی داده یکی از شغل های به سرعت در حال رشد در حوزه فناوری در سال های اخیر بوده است. این شغل همچنین بر اساس گزارش مشاغل نوظهور لینکدین (LinkedIn) ایالات متحده در میان 15 شغل برجسته نوظهور قرار گرفته و توانسته طی 5 سال اخیر رشد 35 درصدی در استخدام داشته باشد.
در این مقاله میپردازیم به اینکه مهندسی داده چیست؟ یک مهندس داده در طول شغل روزانه خود چه کارهایی انجام میدهد و اینکه چرا امروزه کار کردن در عنوان شغلی مهندس داده یکی از بهترین گزینه ها است. همچنین نگاهی خواهیم داشت به مهارت ها و صلاحیت هایی که مهندسان داده از آن ها بهره مند هستند.
مهندسی داده چیست؟
مهندسان داده مسئول ذخیره سازی، تبدیل و مدیریت داده ها در یک سازمان هستند. آنها طراحی، ایجاد و نگهداری معماری پایگاه داده و سیستم های پردازش داده را مدیریت می کنند. وظیفه آنها طراحی، ایجاد و نگهداری معماری پایگاه داده (database architecture) و سیستم های پردازش داده است. مهندسان داده با این کار تضمین میدهند که کارهای بعد از تجزیه و تحلیل تا توسعه مدل های یادگیری ماشین (machine learning) به طور یکپارچه، پیوسته، ایمن و موثر انجام می شود.
به طور خلاصه، مهندسان داده فنی ترین پروفایل ها در زمینه علم داده را دارند و نقش پل ارتباطی مهمی را بین توسعه دهندگان نرم افزار/ اپلیکیشن و موقعیت های سنتی علم داده ایفا می کنند.
مهندسان داده مسئول اولین مرحله از گردش کار معمول علم داده هستند که شامل فرآیند جمع آوری و ذخیره داده ها میشود. آنها تضمین میکنند که حجم زیادی از دادههای جمعآوریشده از منابع مختلف به مواد خام در دسترس برای سایر متخصصان علوم داده، مانند تحلیلگران داده و دانشمندان داده تبدیل میشود.
از یک طرف، این شامل توسعه و حفظ زیرساخت های داده مقیاس پذیر با ویژگی در دسترس بودن، عملکرد و قابلیت بالا برای ادغام به فناوری های جدید است. از سوی دیگر، مهندسان داده نیز وظیفه نظارت بر حرکت و وضعیت داده ها را در سراسر این سیستم ها بر عهده دارند.
مهندس داده چه کاری انجام میدهد؟
مهندسان داده بازیگران کلیدی در توسعه و نگهداری معماری داده هر شرکتی هستند. آنها متخصص در تهیه مجموعه داده های بزرگ برای استفاده توسط تحلیلگران هستند. هنگامی که یک تحلیلگر نیاز به تفسیر اطلاعات دارد، مهندس داده برای آماده سازی داده در یک طرح مناسب برنامه ها و روتین هایی را تعریف می کند.
در نتیجه، کار روزانه یک مهندس داده اساساً بین دو فرآیند اجرا می شود:
- فرآیندهای ETL (Extract, Transform, Load) که شامل توسعه استخراج داده ها، تبدیل، بارگذاری وظایف و انتقال داده ها بین محیط های مختلف است.
- فرآیندهای پاکسازی داده ها (Data Cleaning) به گونه ای که به صورت عادی و ساختار یافته به دست تحلیلگران و دانشمندان داده می رسد.
اما فرآیند جمع آوری و ذخیره سازی داده ها می تواند بسیار پیچیده باشد. ممکن است منابع داده های مختلفی درگیر باشند و این منابع داده ممکن است انواع مختلفی از داده ها را با خود به همراه داشته باشند. با افزایش حجم، تنوع و سرعت داده های موجود، پیچیدگی کار مهندس داده نیز افزایش می یابد.
برای اطمینان از اینکه وظایف انجام شده مقیاس پذیر و به وقت هستند، مهندسان داده وارد توسعه مرحله ای میشوند که به آن خطوط لوله داده (data pipeline) میگویند. خط لوله داده، داده ها را به مراحل تعریف شده منتقل می کند. یک نمونه از آن بارگذاری داده ها از یک پایگاه داده داخلی یا سرورهای خصوصی (on-premise) به یک سرویس ابری است.
نکته کلیدی این است که خطوط لوله (pipeline) این حرکت را به صورت خودکار انجام میدهد. به جای اینکه از یک مهندس داده بخواهند هر بار برنامهای را به صورت دستی اجرا کند، آنها میتوانند این کار را به صورت ساعتی یا روزانه یا پس از یک رویداد خاص برنامهریزی کنند. از آنجایی که فرآیند خودکار است، خطوط لوله داده باید نظارت شوند.
خوشبختانه، هشدارها می توانند به طور خودکار ایجاد شوند. خطوط لوله داده برای همه پروژههای علم داده ضروری نیستند، اما زمانی که با دادههای زیادی از منابع مختلف کار میکنند، لازم است تا از این روش استفاده شود، همانطور که معمولاً شرکت های مبتنی بر داده این روش را به کار میگیرند.
پیش نیازهای آموزشی مهندسی داده
مهندسی داده یک شغل نوظهور است. به این ترتیب، تنها تعداد بسیار کمی از دانشگاه ها و کالج ها دارای مدرک مهندسی داده هستند. مهندسان داده معمولاً پیشینه ای در علوم داده، مهندسی نرم افزار، ریاضی، یا یک زمینه مرتبط با تجارت دارند.
اکثر مهندسان داده بسته به شغل یا صنعت خود، اولین شغل سطح مقدماتی خود را پس از اخذ مدرک لیسانس دریافت می کنند. با این حال، با توجه به مجموعه مهارت های بسیار تخصصی مورد نیاز برای انجام وظایف مهندسان داده، در بسیاری از موارد، دانش و شایستگی ها بر آموزش های دانشگاهی غالب است.
بنابراین، اگر میخواهید تحصیلات رسمی را دنبال کنید، حتما مدرکی را انتخاب کنید که معماری سیستم، برنامهنویسی و پیکربندی پایگاه داده در برنامه درسی آن گنجانده شده باشد.
مهارت های مورد نیاز مهندس داده
مهندسان داده به مجموعه قابل توجهی از مهارت های فنی برای انجام به وظایف بسیار پیچیده خود نیاز دارند. با این حال، تهیه فهرستی دقیق و جامع از مهارت ها و دانش برای موفقیت در نقش مهندسی داده بسیار دشوار است. اکوسیستم علم داده به سرعت در حال تکامل است و فناوری ها و سیستم های جدید دائماً ظهور می کنند. این بدان معناست که مهندسان داده باید دائماً در حال یادگیری باشند تا بتوانند با پیشرفت های تکنولوژی همگام شوند.
با این وجود، در ادامه به یک لیست غیر جامع از مهارت هایی که هر مهندس داده باید داشته باشد اشاره میکنیم:
-
مدیریت پایگاه داده:
مهندسان داده بخش قابل توجهی از کار روزانه خود را صرف جمع آوری، ذخیره، انتقال، تمیز کردن یا صرفاً داده کاوی می کنند. از این رو، مهندسان داده باید دانش خوبی از مدیریت پایگاه داده داشته باشند. این مستلزم تسلط بر زبان SQL است که زبان اصلی برای تعامل با پایگاههای داده به حساب می آید و همچنین داشتن تخصص در برخی از محبوبترین SQL ها، از جمله MySQL، SQL Server، و PostgreSQL می تواند بسیار مفید باشد. علاوه بر پایگاه داده های رابطهای (SQL)، مهندسان داده باید با پایگاههای داده NoSQL که به سرعت در حال تبدیل شدن به سیستمهای پیشرو برای Big Data و اپلیکیشن های Real-time هستند، آشنا باشند.
بنابراین، اگرچه تعداد موتورهای NoSQL در حال افزایش است، مهندسان داده حداقل باید تفاوت بین انواع پایگاه داده NoSQL و موارد استفاده هر یک از آنها را به خوبی درک کنند.
-
زبان های برنامه نویسی:
همانند سایر نقش های علم داده، کدنویسی یک مهارت اجباری برای مهندسان داده است. علاوه بر SQL، مهندسان داده از زبان های برنامه نویسی دیگری برای طیف وسیعی از وظایف استفاده می کنند. زبان های برنامه نویسی زیادی وجود دارند که می توانند در مهندسی داده استفاده شوند، اما پایتون مطمئنا یکی از بهترین گزینه ها است.
پایتون زبانی است که در علم داده کاربرد دارد و برای اجرای کارهای ETL و نوشتن Data Pipelineها مناسب است. یکی دیگر از دلایل استفاده از پایتون، ادغام عالی آن با ابزارها و فریم ورک هایی است که در مهندسی داده ها حیاتی هستند، مانند Apache Airflow و Apache Spark. همچنین بسیاری از این فریمورک های متن باز بر روی ماشین مجازی جاوا (Java Virtual Machine) اجرا می شوند. اگر شرکت شما با این فریمورک ها کار می کند، احتمالاً باید Java یا Scala را یاد بگیرید. (برای یادگیری علم داده با پایتون می توانید دوره پکیج جامع علم داده با پایتون را تهیه نمایید.)
-
فریم ورکهای محاسباتی توزیع شده:
در سال های اخیر، سیستم های توزیع شده در علم داده در همه جا قرار دارند. یک سیستم توزیع شده یک محیط محاسباتی است که در آن اجزای مختلف در چندین کامپیوتر (یک کلاستر یا خوشه) در یک شبکه پخش می شوند. سیستم های توزیع شده کار را در سراسر خوشه تقسیم می کنند که باعث هماهنگی شده و باعث می شوند تا کارها کارآمدتر انجام شود.
فریمورک های محاسباتی توزیع شده، مانند Apache Hadoop و Apache Spark، برای پردازش حجم عظیمی از دادهها طراحی شدهاند و اساس برخی از چشم گیرترین برنامههای Big Data را فراهم میکنند. داشتن تخصص در یکی از این فریمورکها برای هر مهندس داده مشتاقی ضروری است.
-
فناوری ابری:
رایانش ابری (Cloud computing) یکی از داغ ترین موضوعات در علم داده است. تقاضا برای راه حل های مبتنی بر ابر (cloud-based) به سرعت در حال تغییر است. امروزه، مهندس داده بودن تا حد زیادی مستلزم اتصال سیستم های تجاری شرکت شما به سیستم های ابری است. با ظهور خدماتی مانند وب آمازون (AWS)، Azure و Google Cloud، کل گردش کار داده می تواند در فضای ابری انجام شود. بنابراین یک مهندس داده خوب باید استفاده از این سرویس های سرویس های ابری، مزایا، معایب و کاربرد آن ها در پروژه های Big Data را بشناسد و تجربه کار با آن ها را داشته باشد. حداقل باید با پلتفرمی مانند AWS یا Azure آشنا باشید، زیرا از آن ها زیاد استفاده میشود.
-
فریمورک ETL:
یکی از نقشهای اصلی مهندسان داده ایجاد پایپ لاین های داده با فناوریهای ETL و فریمورکهای ارکستراسیون (orchestration) است. یک مهندس داده باید با برخی از فناوری ها مانند Apache Airflow و Apache NiFi آشنا باشد و با آن احساس راحتی کند. Apache Airflow یک فریمورک ارکستراسیون است. یک ابزار منبع باز که برای برنامه ریزی، تولید و ردیابی خطوط لوله داده مناسب است. Apache NiFi نیز برای یک فرآیند ETL بیگ دیتا (big data) پایه ای و قابل تکرار مناسب است.
-
فریم ورک پردازش استریم:
برخی از نوآورانه ترین اپلیکیشن های علم داده از داده های بلادرنگ (Real-time) استفاده می کنند. در نتیجه، تقاضا برای موقعیت شغلی آشنا به فریمورک پردازش استریم در حال افزایش است. به همین دلیل است که یادگیری نحوه استفاده از ابزارهای پردازش استریم مانند Flink، Kafka Streams یا Spark Streaming یک حرکت هوشمندانه برای مهندسان داده ای است که می خواهند حرفه خود را ارتقا دهند.
-
شل (Shell):
بیشتر کارها و روال های Cloud و دیگر ابزارها و فریمورک های Big Data با استفاده از دستورات و اسکریپت های shell اجرا می شوند. مهندسان داده باید با ترمینال (terminal) برای ویرایش فایل ها، اجرای دستورات و هدایت سیستم آشنایی کافی داشته باشند.
-
مهارت های ارتباطی:
مهندسان داده همچنین برای کار در بخشها و درک نیازهای تحلیلگران داده و دانشمندان داده و همچنین رهبران تجاری به مهارتهای ارتباطی نیاز دارند. بسته به سازمان، مهندسان داده همچنین ممکن است نیاز داشته باشند که چگونه داشبوردها، گزارشها و سایر تصویر سازیها (visualizations) را برای برقراری ارتباط با ذینفعان ایجاد کنند.
حقوق مهندسی داده چقدر است؟
مهندسی داده یک شغل نوظهور است و یافتن گزینه های مناسب برای استخدامکنندگان همیشه آسان نیست. در واقع شرکت ها برای جذب مهندسین داده با یکدیگر رقابت دارند و این اتفاق منجر به افزایش دستمزدهای موقعیت های شغلی مختلف علم داده شده است. بر اساس گزارش اکثر پورتال های شغلی، میانگین حقوق مهندسان داده در ایالات متحده سالیانه بین 90 الی 110 هزار دلار است.
نتیجه گیری
مهندسی داده یکی از پرتقاضاترین مشاغل در بخش علم داده است و مطمئناً یک انتخاب شغلی عالی برای متخصصان مشتاق علم داده است. برای تبدیل شدن به یک مهندس داده باید به طور مداوم مهارت های خود را توسعه دهید. سعی کنید مدارکی در زمینه های مختلف مانند IBM Certified Data Engineer، Google Cloud Certified Professional Data Engineer کسب کنید. در نهایت با توجه به مهارتهایی که کسب کرده اید برای خودتان رزومه قوی بسازید و با یک موقعیت شغلی نسبتا سبک مثل (تحلیلگر هوش تجاری و یا مدیر پایگاه داده) حرفه مهندسی داده را آغاز کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.