جدیدترین‌ها

خوش آمدید

با ثبت نام ، شما می توانید با سایر اعضای انجمن ما در مورد بحث کنید و همچنین تبادل نظر داشته‌باشید.

اکنون ثبت‌نام کنید!
  • هر گونه تشویق و ترغیب اعضا به متشنج کردن انجمن و اطلاع ندادن، بدون تذکر = حذف نام کاربری
  • از کاربران خواستاریم زین پس، از فرستادن هر گونه فایل با حجم بیش از 10MB خودداری کرده و در صورتی که فایل‌هایی بیش از این حجم را قبلا ارسال کرده‌اند حذف کنند.
  • بانوان انجمن رمان بوک قادر به شرکت در گروه گسترده نقد رمان بوک در تلگرام هستند. در صورت عضویت و حضور فعال در نمایه معاونت @MHP اعلام کرده تا امتیازی که در نظر گرفته شده اعمال شود. https://t.me/iromanbook

بخش IT مهندسی داده (Data engineering) چیست؟

اطلاعات موضوع

درباره موضوع به تاریخ, موضوعی در دسته پایگاه داده توسط ممد صنوبر با نام مهندسی داده (Data engineering) چیست؟ ایجاد شده است. این موضوع تا کنون 387 بازدید, 20 پاسخ و 0 بار واکنش داشته است
نام دسته پایگاه داده
نام موضوع مهندسی داده (Data engineering) چیست؟
نویسنده موضوع ممد صنوبر
تاریخ شروع
پاسخ‌ها
بازدیدها
اولین پسند نوشته
آخرین ارسال توسط ممد صنوبر
موضوع نویسنده

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

نرمال‌سازی داده و مدل‌سازی​

بعد از به راه افتادن جریان داده، نیاز است که داده به یک معماری استاندارد تغییر کند. نرمال‌سازی داده شامل تسک‌هایی می‌شود که داده را برای کاربران قابل استفاده‌تر می‌کند. این تسک‌ها معمولا شامل موارد زیر می‌شوند:‌

  • حذف داد‌ه‌های تکرای (deduplication)
  • حل مشکلات داده‌های متناقض
  • تبدیل کردن داده به یک مدل داده‌ای مشخص
این فرآیندهای می‌توانند در مراحل مختلفی اتفاق بیفتند. به عنوان مثال، فرض کنید در یک شرکت بزرگ کار می‌کنید که تیم‌های هوش تجاری و دیتاساینس هم وجود دارد و هر کدام از این دو تیم روی داده‌هایی که از سمت شما می‌آید حساب می‌کنند. پس احتمالا باید داده‌های غیرساختاریافته را در یک دریاچه داده (data lake) ذخیره کنید تا توسط تیم دیتاساینس برای انجام تحلیل داده مورد استفاده قرار گیرد. همچنین ممکن است لازم باشد داده نرمال‌شده را در یک پایگاه‌داده‌ رابطه‌ای یا یک انبار داده (data warehouse) ذخیره کنید تا توسط تیم هوش تجاری مورد استفاده قرار بگیرد یا داده به کاربر نهایی در یک اپلیکیشن نمایش داده شود. تصویر زیر شمایی از این مثال را نشان می‌دهد:
نرمال‌سازی داده و مدل‌کردن معمولا بخش تبدیل در ETL هستند، اما تنها عملیاتی نیستند که در این بخش استفاده می‌شوند. یک مرحله متداول دیگر در این مرحله، پاکسازی داده است.
 
موضوع نویسنده

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

پاکسازی داده (Data Cleaning)​

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

  • تبدیل داده‌های یکسان به یک نوع واحد (مثلا، تبدیل به عدد صحیح (integer) در صورت نیاز)
  • اطمینان از اینکه تمام داده‌ها فرمت یکسان دارند
  • پر کردن مقادیر ناقص (missing value) در صورت امکان
  • بردن مقادیر یک ویژگی به یک بازه مشخص
  • حذف داده خراب و غیرقابل استفاده
کاری که روی داده انجام می‌شود تا تمیز شود، به شدت به نوع ورودی، مدل‌‌داده و خروجی‌های مدنظر بستگی دارد. هرچند ممکن است مسئولیت پاکسازی داده در سطوح مختلف بر عهده تیم‌های مختلف باشد، اما مهندس داده باید سعی کند تا حد ممکن روشی اتوماتیک برای پاکسازی داده ایجاد کند، داده ورودی و ذخیره شده را مدام بررسی کند.
 
موضوع نویسنده

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

مهارت‌های مورد نیاز مهندس داده​

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

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

مهارت‌های برنامه نویسی کلی​

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

مانند هر حوزه تخصصی دیگری، چند زبان برنامه‌نویسی، برای مهندسان داده محبوب‌تر هستند. از جمله آنها می توان پایتون، اسکالا و جاوا را نام برد. اما چرا این زبان‌ها محبوب هستند؟

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

یکی دیگر از دلایل محبوبیت پایتون، کاربرد آن در ابزارهایی orchestration مانند Apachi Airflow و وجود کتابخانه‌های محبوبی مانند آپاچی اسپارک است.

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

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

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

تکنولوژی‌های پایگاه‌داده​

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

در یک دسته‌بندی کلی، پایگاه داده‌ها را می‌توان به دو دسته SQL و NoSQL تقسیم کرد.

از پایگاه‌ داده SQL معمولا برای مدل‌کردن داده‌هایی مانند داده سفارش‌های مشتری، استفاده می‌شوند که با استفاده از رابطه‌ها تعریف شده‌اند.

پایگاه‌ داده‌های غیر رابطه‌ای، سایر پایگاه داده‌ها هستند که از مدل رابطه‌ای تبعیت نمی‌کنند. از جمله:‌

  • ذخیره به صورت کلید-مقدار (key-value) مانند ردیس (Redis)
  • ذخیره متن‌محور مانند MongoDB (مونگو دی‌بی) یا Elasticsearch (الاستیک سرچ)
  • پایگاه داده گرافی مانند Neo4j
  • و سایر پایگاه‌ داده‌ها که کمتر شناخته‌شده هستند.
هرچند نیاز نیست زیر و بم تمام این دیتابیس‌ها را یاد بگیرید، اما لازم است مزایا و معایب آنها را بدانید و در صورت نیاز بتوانید به سرعت، کار کردن با آنها را یاد بگیرید.

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

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

سیتسم‌های توزیع‌شده و مهندسی ابری​

یکی از الگوهای رایج در ETL، راه‌اندازی یک pipeline روی سرورهای جداگانه استکه توسط یک صف پیغام مانند RabbitMQ یا آپاچی کافکا هدایت می‌شوند.

ضروری است که نحوه طراحی این سیستم‌ها را بدانید و با مزایا و ریسک‌هایشان آشنا باشید و بدانید چه زمانی باید از آنها استفاده کنید.

تامین‌کننده سرویس‌های ابری از جمله، وب‌سرویس‌های آمازون، Google Cloud‌ و Microsoft Azure از ابزارهای محبوبی هستند که برای ساختن و پیاده‌سازی سیستم‌های توزیع‌شده از آنها استفاده می‌شود.
 
موضوع نویسنده

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

چطور مهندس داده شویم؟​

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

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

۱. مدرک دانشگاهی​

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

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2
۲. دوره‌های آنلاین رایگان و ارزان

برخی از بهترین مهندسان داده، به صورت خودآموز و از طریق دوره‌های رایگان مسیر یادگیری‌شان را طی کرده‌اند. شاید باورش سخت باشد، اما بیشتر چیزی که باید بدانید را از ویدئوهای یوتیوب می‌توانید یاد بگیرید. همچنین دوره‌های Coursera، Edx، Udemy، Udacity می‌توانند در مسیر یادگیری بسیار مفید واقع شوند. کتاب‌های الکترونیک oreilly هم معتبر و راهگشا هستند.
 
موضوع نویسنده

ممد صنوبر

سطح
0
 
کاربر ویژه انجمن
کاربر ویژه انجمن
شاعر انجمن
Sep
5,799
27,075
مدال‌ها
2

۳. یادگیری پروژه محور​

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