راهنمای دنیای دیتا برای برنامهنویسها
خلاصهٔ کاملتر
این مقاله یه راهنمای میدانیه برای برنامهنویسهایی که یهو سر از یه پروژه یا شرکت دیتا درآوردن و از حرفهای تیم دیتا سر در نمیآرن. نویسنده میگه خودش وقتی به Deepnote پیوست همین وضع رو داشت و بعد از کلی خوندن و پرسیدن، تصمیم گرفت چیزی رو که یاد گرفته توی یک متن جمع کنه: چرخهٔ عمر داده، از اینکه از کجا میآد تا اینکه آخرش چهطور نمایش داده میشه.
اول نقشها رو تفکیک میکنه. تحلیلی (data analyst و BI analyst) با SQL و اسپردشیت و ابزارهایی مثل Tableau گزارش و داشبورد میسازه. علمی (data scientist) سراغ آمار، مدل و آزمایش میره و معمولاً توی نوتبوک با پایتون و pandas و scikit-learn کار میکنه. مهندسی (data engineer) خط لوله و زیرساخت رو نگه میداره تا داده اصلاً قابل تحلیل بشه. و نوع یادگیری ماشین که مدل میسازه، مستقر میکنه و پایشش میکنه.
قلب ماجرا ETL هست: استخراج داده از منبع، تبدیلش (تمیز کردن، جوین زدن) و بارگذاری نتیجه توی مقصد نهایی. جایگزین محبوبش ELT هست که داده رو مستقیم توی انبار میریزی و همونجا تبدیلش میکنی؛ گرونتر تموم میشه ولی دادهٔ خام رو نگه میداری تا اگه بعداً لازم شد جور دیگهای پردازشش کنی.
بخش ذخیرهسازی از فرمت فایل شروع میشه: CSV برای حجم کم و کاربر غیرفنی، و Parquet که ستونیه، فشردهسازی خوبی میده و عملاً زبان مشترک ابزارهای دیتاست. کنارشون ORC و Avro (ردیفی، مناسب پردازش استریم) هم هستن. توی حافظه هم Arrow استاندارد بالفعله: جای بیشتری میگیره ولی انتقال بدون کپی بین ابزارها رو خیلی کارآمد میکنه.
سه نوع ذخیرهسازی رو مقایسه میکنه. انبار داده شبیه دیتابیسه ولی OLAPه و روی ستون بهینه شده، موتور کوئری خودش رو داره و گرونترین گزینهست — مثل Snowflake و BigQuery و Redshift، یا ClickHouse و Doris در نسخهٔ متنباز. دریاچهٔ داده عملاً یه پوشهٔ ابری بزرگه که هر فرمتی رو قبول میکنه و برای کوئری زدن به کاتالوگ متادیتا و موتور کوئری نیاز داره، وگرنه به «باتلاق داده» تبدیل میشه.
لیکهاوس ترکیب این دوتاست: روی دریاچه ساخته میشه ولی یه «فرمت جدول» مثل Iceberg یا Delta Lake یا Hudi وسط میآد و چیزهایی مثل ACID، اجبار اسکیما، نسخهبندی اسکیما و گاهی سفر در زمان رو اضافه میکنه. چون روی ذخیرهسازی ارزون سواره معمولاً از انبار ارزونتر در میآد و تو رو به یه موتور کوئری خاص گره نمیزنه.
برای ورود داده، نویسنده میگه بهجای نوشتن اسکریپتهای تکراری میشه سراغ ابزارهای اینجست مثل Fivetran و Airbyte و dlt رفت که کانکتور مبدأ و مقصد رو برات مدیریت میکنن. برای دیتابیسها هم CDC مطرحه: بهجای کوئری زدن مکرر، لاگ رپلیکیشن خونده میشه و درج و بهروزرسانی و حذف همون لحظه گرفته میشه — Debezium نمونهٔ متنباز محبوبشه.
توی پردازش، پایتون پادشاهه و SQL زبان مشترک. برای تبدیلهای SQLمحور، ابزارهایی مثل dbt و SQLMesh تبدیلها رو بهشکل select توصیف میکنن و گراف وابستگی میسازن تا ترتیب اجرا درست باشه. سمت دیتافریمها هم pandas استاندارد بالفعله، ولی Polars و DataFusion رویکرد «تنبل» دارن: هر عملیات فقط یه پلن منطقی میسازه و موقع collect یکجا بهینه و اجرا میشه.
نکات کلیدی:
- چهار نوع نقش دیتا: تحلیلی، علمی، مهندسی و یادگیری ماشین
- ETL در برابر ELT: نگه داشتن دادهٔ خام به قیمت ذخیرهسازی و محاسبات بیشتر
- Parquet برای فایل ستونی، Arrow برای حافظه و انتقال بدون کپی
- انبار (گرون، ساختیافته، سریع)، دریاچه (ارزون، بیساختار)، لیکهاوس (ترکیب با ACID)
- ابزارهای اینجست مثل Fivetran و Airbyte، و CDC برای خوندن لاگ رپلیکیشن دیتابیس
- dbt و SQLMesh برای تبدیل SQLمحور؛ pandas در برابر دیتافریمهای تنبل مثل Polars




