مهندسی داده و رایانش ابری
2.54K subscribers
496 photos
28 videos
73 files
421 links
دنیای مهندسی داده و رایانش ابری با طعم
Amazon Web Services

🟢 About us:
https://www.m-fozouni.ir/
🔵 Instagram:
https://www.instagram.com/elmedade
🔴 Youtube:
https://youtube.com/c/ElmeDade
🟤 مشاوره با دکتر فزونی
https://www.m-fozouni.ir/consult
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
برای مشاهده‌ی توضیحات تکمیلی و بررسی دقیق‌تر سرفصل‌ها به لینک زیر مراجعه نمایید

https://m-fozouni.ir/de4
...........................
🔴 یادگیری و تداوم در آن، رمز موفقیت در راهِ رسیدن به اهداف‌مان هست.
...........................
#data_engineering
#مهندسی_داده
...........................
@elmedadeir
📕 13 ترفند از داکر که نمی‌دانستید
📕 13 Docker Tricks You Didn’t Know

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

1. Multi-stage Builds for Efficient Images
✔️ با استفاده از این مورد می‌توانیم ایمیج‌هایی بسازیم که بسیار بهینه‌تر باشند و موارد امنیتی را نیز به خوبی در آنها رعایت کرده باشیم. بعنوان مثال ابتدا اپی می‌سازیم و در مرحله‌ی دوم تنها خروجی اپ اول را در آن کپی می‌کنیم. ایمیج حاصل حداقل کدهای اجرایی ممکن را برای اجرا شدن دارد.
2. Squashing Image Layers
✔️ با کمک این آپشن می‌توانیم حجم ایمیج‌های خود را کاهش دهیم.
3. Docker BuildKit Secrets
✔️ به کمک این ابزار می‌توانیم از رمزهای عبور و موارد محرمانه در ایمیج و کانتینرهای داکر تا حد بسیار زیادی محافظت کنیم.
4. Leveraging .dockerignore
✔️ مانند مورد قبل این آیتم نیز برای بحث امنیت کاربرد دارد. مواردی را که نمی‌خواهیم در ایمیج نهایی باشد را داخل داکرایگنور قرار می‌دهیم.
5. Health Checks in Dockerfiles
✔️ با کمک این مورد می‌توانیم از سلامت کانتینرها بخوبی مطلع شویم.
6. Docker CLI Output Formatting
✔️ به کمک این مورد می‌توانیم در خط فرمان، خروجی‌های بسیار زیبا و کاربرپسندی را تولید کنیم.
7. Optimizing Cache Use in Builds
✔️ با کمک سیستم کش در داکر، می‌توانیم زمان ساختن ایمیج‌ها را بشدت کاهش دهیم.
8. Limiting Container Resources
✔️ به کمک این مورد می‌توانیم کانتینرها را محدود نمائیم تا بخش زیادی از منابع سخت‌افزاری ما را اشغال نکنند.
9. Docker Events for Monitoring
✔️ به کمک این دستور و اجرای آن در خط فرمان، می‌توانیم اطلاعات بسیار مهم و مفیدی را در لحظه از وضعیت کلاستر و کانتینرها کسب کنیم.
10. Running Containers in Read-only Mode
✔️ این مورد از لحاظ امنیتی در محیط‌های پروداکشن بسیار حیاتی است. کانتینرهایی می‌سازیم که به هیچ وجه نشود مورد جدیدی داخلشان نوشت و تنها می‌توانیم کدهای داخل انرا بخوانیم.
11. Cleaning Up with Docker Prune
✔️ به کمک این دستور می‌توانیم محیط کاری داکر خود را بطور کامل پاک و تمیز نمائیم. بعد از مدتی کار با داکر فضای بسیار زیادی از کامپیوتر و سیستم اشغال خواهد شد.
12. Overriding Entrypoint for Debugging
✔️ به کمک این مورد می‌توانیم نقطه ورود به کانتینر را تغییر داده و در دیباگینگ‌های روزمره بسیار مفید واقع می‌شود. فرض کنید کانتینری را اجرا می‌کنیم ولی مرتب ریستارت می‌شود و اصلن نمی‌توانیم وارد آن شویم و مشکل‌یابی کنیم. اینجاست که این مورد بسیار حیاتی می‌شود.
13. Docker Contexts for Multi-environment Management
✔️ به کمک این مورد می‌توانیم بین محیط‌های تست، توسعه و پروداکشن براحتی حرکت کنیم (حتی وقتی که بخواهیم با ریموت سرورها کار کنیم).
.
Ref: https://overcast.blog/13-docker-tricks-you-didnt-know-47775a4f678f
.
پی‌نوشت: جهت مشاهده‌ی یک خلاصه‌ی کامل‌تر از این پست، همراه با کدها و دستورات به لینک زیر مراجعه کنید
https://www.m-fozouni.ir/13-tricks-of-docker/
.
#Docker
#داکر
@elmedadeir
چهار مرحله و سطح از مهندسین داده
.
@elmedadeir
🟢 در این مقاله، فرزین، که از بچه‌های اسنپ هست، در خصوص معماری داده در این مجموعه صحبت می‌کنه. مقاله‌ی خوبی هست. وقت کردین بخونید حتمن.
.
🔴مطالعه‌ی مقاله به زبان فارسی🔴
.
@elmedadeir
خیلی‌ها سوال می‌پرسند؛

«آیا شخصی که رشته‌اش کامپیوتر نبوده و مهارت‌های کامپیوتری ضعیفی داره، می‌تونه وارد حوزه‌هایی بشه که درک بالا از کامپیوتر رو طلب می‌کنه؟»

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

بعضی از افراد هم می‌گن اگر بخواهیم در سطح صنعت یا همون
Industry Level
چیزی رو یاد بگیریم دانشگاه و دانشگاهی جماعت بدرد نمی‌خورند. ولی من گمان می‌کنم همه چیز، در ابتدای ساکن یک بخش تئوری لازم دارند. اگر اونو یاد نداشته باشیم و اهمیت بهش ندیم، خیلی بعید هست که کارهای عملی ما به نتیجه‌ی مطلوب خودشون برسند. اون کسی هم که داره پروژه‌ی میلیارد دلاری در سطح ناسا انجام میده که از شکم مامانیش در سطح صنعت کار نکرده. وقت گذاشته، کار کرده، بالا پائین داشته. تا اینکه درگیر کارهای بسیار عظیم شدند.
.
@elmedadeir
یک وبینار داریم با آقای
Jean-Georges Perrin
نویسنده‌ی کتابِ فاخر
Spark in Action

ایشون قرار هست که راجع به تجربیات
چندین ساله‌ی خودشون در کار با اسپارک و بایدها و نبایدهایش برای ما صحبت کنند.

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

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

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

لینک گوگل میت وبینار:
https://meet.google.com/yxo-dwri-vyz
زمان:
پنجشنبه ۹ فروردین‌ماه ۱۴۰۳ ساعت ۱۵:۳۰ برابر با ۲۸ مارچ ۲۰۲۴
.
@elmedadeir
داخل دستاپ ویندوز، فولدری ایجاد کردم و بعد از پایان کار وقتی خواستم
shift+delete
کنم، انجام نشد. هر چقدر ور رفتم باهاش پاک نشد. از پاورشل در حالت ادمین هم کمک گرفتم، بازم نشد. چند تا مقاله خوندم و باز هم نشد که نشد. همینطور که داشتم صلوات می‌فرستادم، گفتم من که wsl رو دارم روی سیستم و بزار اونم تست کنم. از همون مسیر با نوشتن
wsl
وارد لینوکس خودم شدم. خیلی راحت نوشتم

$ rm -r "MY-FOLDER-NAME"

و براحتی آب خوردن فولدرِ مرموز پاک شد. اینجا بود که برای چندمین بار ایمان آوردم به لینوکس 😎 و خطِ فرمانِ خفنش. مثل شتر کار می‌کنه 😂.
.
@elmedadeir
Forwarded from مهندسی داده و رایانش ابری (Elmedade Support)
🚀 چهارمین دوره‌ی آموزشی «مهندسی داده»

📆 شروع: ۱۵ فروردین‌ماه ۱۴۰۳

🗣 مدرس: دکتر محمد فزونی

🧭 تعداد جلسات و ساعت دوره: 30 جلسه 37 ساعت

💻 نحوه برگزاری: ترکیبی: ویدیوهای ضبط شده و جلسات آنلاین

💰 هزینه ثبت‌نام: 3/450/000 تومان

📕 سرفصل‌ها:
Linux, HDFS, Docker, Java, Git, Postgresql, Airflow, Kafka, Spark, Kubernetes

🎡 تفاوت این دوره با سه دوره‌ی گذشته: عمیق‌تر شدن در سرفصل‌های کار با کافکا و اسپارک

🛒 لینک ثبت‌نام و توضیحات مدرس بصورت ویدیویی:

▶️ https://www.m-fozouni.ir/de4
.
#data_engineering
.
@elmedadeir
🔴 تبدیل فایل پایتونی به یک فایل اجرایی:

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

برای اینکار اول کتابخونه‌ی
pyinstaller
رو نصب کنید، در واقع
pip install pyinstaller

رو در در محیطی که اپ‌تون رو نوشتید و از طریق خط فرمان، اجرا کنید.

سپس وارد فولدر پروژه‌ی خودتون بشید و دستور زیر رو وارد کنید
pyinstaller --onefile your_script_name.py

بعد از اجرای خط فوق، یک فایل
your_script_name.exe

در یک پوشه بنام
dist
در همون دایرکتوری برای شما ایجاد می‌شود. خیلی راحت فایل رو هر جور که دوست داشتید به فرد مورد نظر برسونید تا طرف حالشو ببره 😎.
.
#python
.
@elmedadeir
برای استفاده از این سرویس، به لینک زیر مراجعه کنید
https://avalai.ir/
.
@elmedadeir
🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴

🚀 دومین دوره‌ی آموزشی «مهندسی داده با AWS»

(در این دوره تنها مباحث رایانش ابری که در دنیای مهندسی داده مورد استفاده قرار می‌گیرد، تدریس خواهد شد)

📆 شروع: 30 فروردین‌ماه ۱۴۰۳

🗣 مدرس: دکتر محمد فزونی

🧭 تعداد جلسات و ساعت دوره: 15 جلسه 20 ساعت

💻 نحوه برگزاری: ترکیبی: ویدیوهای ضبط شده و جلسات آنلاین

💰 هزینه ثبت‌نام: 2/499/000 تومان

📕 سرفصل‌ها:
IAM, Lambda, Kinesis, MSK, DMS, Redshift, Step Function, Spark, AWS Glue and Glue Studio

🛒 لینک ثبت‌نام و توضیحات اضافی در خصوص دوره:

▶️ https://www.m-fozouni.ir/aws2
.
#aws
#cloud_computing
.
@elmedadeir
از معجزات، شگفتی‌ها و پیچیدگی‌های اسپارک. میزان تاخیر در کار با این API و حالت پیوسته، در حدود یک میلی‌ثانیه هست 👌.
.
@elmedadeir
یک دوره‌ی دواپس خیلی خوب، از مقدمه تا سطح پیشرفته. جهت مشاهده و دانلود به

🔴...این لینک...🔴

مراجعه کنید.
ابزارهایی که در دنیای دواپس کار می‌شه، چون خیلی به محیط عملیاتی نزدیک هستند، الان فوق‌العاده ترند شدند و بازار کارش خیلی خوبه.
.
#devops
#دواپس
==============
@elmedadeir
🚀مهندسی داده و رایانش ابری🚀
.
مقالات‌ || اینستاگرام || لینکدین || یوتیوب
🛑🛑🛑

▶️ https://pypi.org/project/nba_api/

این API خیلی جالب و باحاله. به کمک این کتابخونه‌ی پایتونی می‌شه دیتای بازی‌های بسکتبال NBA رو حتی بصورت لایو گرفت و در اپ‌های خودمون استفاده کرد (اگر قصد داریم چنین اپی بنویسیم).
==============
@elmedadeir
🚀مهندسی داده و رایانش ابری🚀
.
مقالات‌ || اینستاگرام || لینکدین || یوتیوب
.
▶️ https://stackoverflow.blog/2024/04/15/how-to-succeed-as-a-data-engineer-without-the-burnout/

در این مقاله، نویسنده که از مهندسینِ داده‌ی با تجربه هست، یک نکته‌ی خیلی جالبی رو بهش اشاره کرده:

می‌گویند «بجای اینکه سخت کار کنیم، باید یاد بگیریم هوشمندانه کارها و مسئولیت‌هامون رو انجام بدهیم». همچنین ایشون می‌فرمایند «من که در شرکت مسئول یک کلاستر هدوپ بودم که به ده تا دیتاساینتیست سرویس‌دهی می‌کرد، از جایی به بعد فهمیدم که می‌تونم از

Terraform and Ansible

استفاده کنم که کارهام بطور اتومات انجام شود».

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

یادآوری می‌کنم که ترافورم برای مدیریت زیرساخت‌ و انسیبل برای اتومات کردن تسک‌های آی.تی. و دیپلویمنت‌ها استفاده می‌شود.
==============
@elmedadeir
🚀مهندسی داده و رایانش ابری🚀
.
مقالات‌ || اینستاگرام || لینکدین || یوتیوب
از معجزات دیتابیس الستیک (بهتره بگوئیم موتور جستجو) این هست که ایشون
Schema-Less
تشریف دارند. یعنی فرض کنیم قصد داریم یک‌سری داده‌ی متنی رو از روی یک
API
بخونیم و در یک دیتابیس ذخیره کنیم. چون الستیک بدون اسکیما هست، می‌تونیم تمامی این اطلاعات رو داخل یک ایندکس (ایندکس در الستیک در دنیای دیتابیس‌های رابطه‌ای دیتابیس نامیده می‌شود) بریزیم و بعدن سر فرصت بپردازیم به آنالیز اونها.

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

بعنوان مثال رکورد اول می‌تونه این باشه:
{
"field1": "value1",
"field2": "value2"
}

و رکورد دوم این:
{
"field1": "value1",
"field2": "value2",
"item":"[1,2,3]"
}

#elasticsearch
.
@elmedadeir
🛑 گزارشی از یک پروژه‌ی ساده و باحال:

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

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

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

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

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

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

پی‌نوشت: اگر روی سیستم لینوکس ندارید از این سایت هم می‌شه برای کارهای کرون (Cron Jobs) استفاده کرد:
▶️ https://cron-job.org/

پی‌نوشت2: برای قسمت دوم کار هم یک فایل بش می‌نویسیم (بسیار ساده هست) که کل فرایند بصورت اتوماتیک انجام بشه. می‌تونیم روی یک سرور لینوکسی هم این پایپ‌لاین رو مستقر کنیم و فقط 48 ساعت بهش زمان بدیم. خودمون هم در این بین می‌ریم یک سر شمال جوج می‌زنیم بر بدن 😎😂.
.
#requests
#pandas
#bash_scripting
#linux
#python
==============
@elmedadeir
🚀مهندسی داده و رایانش ابری🚀
.
مقالات‌ || اینستاگرام || لینکدین || یوتیوب
🔴 هفت کتابخانه‌ی پایتون برای مهندسین داده؛

1- requests

1️⃣ این کتابخانه بما این امکان را می‌دهد که بتوانیم محتوای وب‌سایت‌ها را استخراج نماییم.

2- beautifulsoup

2️⃣ همانند مورد قبل این کتابخانه با امکاناتی متفاوت ما را قادر می‌سازد که اطلاعات وبسایت‌ها را استخراج کرده و داده‌ها را به نحوه مطلوب جداسازی کنیم.

3- pandas

3️⃣ برای آنالیز داده‌ها، پانداز یکی از بهترین کتاب‌خانه‌های موجود در اکوسیستم پایتون است.

4- SQLAlchemy

4️⃣ برای ارتباط با دیتابیس‌ها از این کتابخانه استفاده می‌کنیم.

5- airflow

5️⃣ برای مدیریت جریان داده‌ها از ایرفلو استفاده می‌کنیم. ایرفلو یکی از پروژه‌های بسیار بزرگ بنیاد آپاچی با بیش از دو هزار پانصد شرکت‌کننده می‌باشد.

6- pyspark

6️⃣ برای ارتباط با هسته‌ی اسپارک از این کتابخانه استفاده می‌کنیم که بتوانیم به زبان پایتون، با اسپارک تعامل داشته باشیم.

7- kafka-python

7️⃣ برای تعامل با کافکا از این کتابخانه استفاده می‌کنیم. آپاچی کافکا یکی از بهترین ابزارها برای برقراری پردازش استریم می‌باشد.

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

▶️ Reference: https://www.kdnuggets.com/7-python-libraries-every-data-engineer-should-know
==============
.
@elmedadeir
🚀مهندسی داده و رایانش ابری🚀
.
مقالات‌ || اینستاگرام || لینکدین || یوتیوب || چهارمین دوره مهندسی داده