مقدمه

در دنیای امروز، داده به عنوان «طلای جدید» شناخته می‌شود. اما داده‌ی خام به تنهایی ارزش چندانی ندارد؛ ارزش واقعی وقتی ایجاد می‌شود که بتوانیم داده را جمع‌آوری، ذخیره، پردازش و در نهایت به شکلی قابل استفاده برای تحلیل یا یادگیری ماشین تبدیل کنیم. این دقیقن همان کاری است که یک مهندس داده انجام می‌دهد.

در این درس، با مفهوم مهندسی داده، وظایف یک مهندس داده، و تفاوت آن با نقش‌های مرتبط مانند دانشمند داده آشنا می‌شویم.

مهندسی داده چیست؟

مهندسی داده (Data Engineering) به مجموعه‌ای از فرایندها، ابزارها و تکنیک‌ها گفته می‌شود که برای دریافت، ذخیره‌سازی، پردازش و انتقال داده به کار می‌روند. هدف نهایی مهندسی داده، فراهم کردن داده‌های باکیفیت و قابل اعتماد برای تحلیل‌گران، دانشمندان داده و برنامه‌های کاربردی دیگر در مجموعه یا سازمان است.

به عبارت ساده‌تر، اگر علم داده مانند پختن یک غذای لذیذ باشد، مهندسی داده مانند تهیه‌ی مواد اولیه، آماده‌سازی آشپزخانه و طراحی خط تولید است. بدون زیرساخت مهندسی داده، هیچ تحلیل یا مدل‌سازی معتبری امکان‌پذیر نخواهد بود.

وظایف اصلی یک مهندس داده:

در جدول زیر بطور خلاصه با مهم‌ترین وظایف مهندسان داده آشنا می‌شویم:

وظیفهتوضیح
دریافت داده (Ingestion)جمع‌آوری داده از منابع مختلف مانند پایگاه‌های داده، فایل‌ها، APIها و جریان‌های زنده (دیتاهای استریم)
ذخیره‌سازی داده (Storage)انتخاب و پیاده‌سازی سیستم‌های ذخیره‌سازی مناسب مانند پایگاه‌های داده، دیتا‌لیک‌ها یا دیتا‌ور‌هاوس‌ها (با این مفاهیم در ادامه آشنا خواهیم شد)
پردازش داده (Processing)تمیزکاری، تبدیل و آماده‌سازی داده برای استفاده‌های بعدی
مدیریت خط‌لوله‌ها (Pipelines)طراحی و نگهداری جریان‌های کاری (workflows) خودکار که داده را از منبع به مقصد می‌رسانند
ایمنی و حاکمیت داده (Governance)اطمینان از امنیت، حریم خصوصی و انطباق داده با قوانین در سازمان یا در سطح کشور

تفاوت مهندس داده و دانشمند داده

این دو نقش (Data Engineers & Data Scientist) اغلب با هم اشتباه گرفته می‌شوند، اما تمرکز و مهارت‌های متفاوتی دارند. جدول زیر به وضوح این تفاوت‌ها را نشان می‌دهد:

عناوینمهندس دادهدانشمند داده
هدف اصلیایجاد زیرساخت و جریان داده (کار با تکنولوژی‌ها)تحلیل داده و ساخت مدل‌های پیش‌بینی‌کننده (کار با الگوریتم‌ها)
مهارت‌های فنیپایگاه‌های داده، برنامه‌نویسی (Python/SQL)، ابزارهای ETL، سیستم‌های توزیع‌شدهآمار، یادگیری ماشین، برنامه‌نویسی، تصویرسازی دیتا
خروجی کارخط‌لوله‌های قابل اعتماد و داده‌های تمیزمدل‌های تحلیلی، بینش‌های کسب‌وکاری، داشبوردها
ذهنیتمعماری، مقیاس‌پذیری، پایداریآزمون فرض، اکتشاف، تجربه‌اندوزی
ابزارهای رایجSQL، Python، Spark، Airflow، DockerPython، R، SQL، TensorFlow، Jupyter

برای درک بهتر تمایز این دو نقش یک مثال ملموس بشرح ذیل ارائه می‌دهیم:

  • دانشمند داده می‌خواهد پیش‌بینی کند که فردا چند مشتری از فروشگاه خرید می‌کنند. او به داده‌های خرید چند سال گذشته نیاز دارد.
  • مهندس داده سیستمی می‌سازد که هر روز، داده‌های خرید را از پایگاه‌های مختلف فروشگاه جمع‌آوری، تمیز و در یک دیتا‌ور‌هاوس متمرکز ذخیره کند تا دانشمند داده به راحتی به آنها دسترسی داشته باشد.

پس همان‌طور که خودتان نیز از مثال فوق فهمیده‌اید، ابتدا باید مهندسان داده دیتای مناسب برای کار را جمع‌آوری کرده. سپس تیم تحلیل داده یا حتی دیتاساینتیست‌ها بر روی آنها کار کنند تا ارزش افزوده خلق نمایند.

چرخه‌ی حیات داده

برای درک بهتر جایگاه مهندسی داده، بهتر است با چرخه‌ی حیات داده آشنا شویم. این چرخه نشان می‌دهد که داده از لحظه‌ی ایجاد تا زمانی که به یک تصمیم تبدیل می‌شود، چه مراحلی را طی می‌کند. البته ممکن است که این چرخه حیات برای برخی از پروژه‌ها و مجموعه‌ها مقداری متفاوت ترسیم گردد.

[تولید داده] → [دریافت] → [ذخیره‌سازی] → [پردازش] → [تحلیل و مدل‌سازی] → [تصمیم‌گیری و عمل]

در این چرخه، مهندسان داده بطور عمده روی سه بخش اول (دریافت، ذخیره‌سازی و پردازش) و دانشمندان داده روی دو بخش آخر (تحلیل تا تصمیم‌گیری) تمرکز دارند. هر دو نقش برای تکمیل این چرخه ضروری هستند. دقت کنید که در مجموعه‌های کوچک جهت ذخیره منابع مالی برخی از شرکت‌ها اقدام به استخدام افرادی می‌کنند که مهارت‌های یک مهندسی داده و یک دانشمند داده را همزمان داشته باشند. اما شما باید متوجه باشید که وظایف کاملن مجزا هستند.

جمع‌بندی و تمرین

در این درس، با مفهوم مهندسی داده و تفاوت آن با علم داده آشنا شدیم. مهندسی داده، ستون فقرات هر پروژه‌ی داده‌محوری است و بدون آن، تحلیل‌ها و مدل‌ها پایه و اساس محکمی نخواهند داشت.

تمرین پیشنهادی:

۱. به یک سازمان یا فروشگاه اینترنتی آشنا فکر کنید. چه داده‌هایی در آن تولید می‌شود (مثلن ثبت سفارش، اطلاعات کاربران، بازدید از محصولات)؟

۲. اگر بخواهید داده‌های فروش یک فروشگاه را برای تحلیل روزانه آماده کنید، چه مراحلی را باید طی کنید؟ (فقط به صورت مفهومی فکر کنید. در ادامه شما را با موارد عملی متعددی آشنا خواهیم کرد).