TGViewer
مهندسی و علم داده مهندسی و علم داده @bimining · 3.98K subscribers
Post #1069 5.6K
✳️☑️الگوی طراحی جداول ابعاد slowly changing dimension

@BIMining
بیشتر اوقات مقادیر موجود در جداول ابعاد (Dimensions) ثابت هستند و تغییری در آنها رخ نمی‌دهد. به عنوان مثال تغییر در نام ماه های سال تقریبا غیر ممکن است. اما برخی از اطلاعات قابل تغییر هستند، مانند نام یا نام خانوادگی و آدرس افراد. جهت شرح چنین شرایطی از اصطلاح SCD یا slowly changing dimension استفاده میشود. SCD الگوی طراحی جداول ابعاد است.

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


سه از مهمترين نوع طراحی برای SCD وجود دارد.

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

✅نوع دوم: SCD نوع دوم کاملا متفاوت و برعکس نوع اول است. در این نوع تمامی تغییرات بدون اعمال تغییر روی داده‌ها ثبت و رهگیری می‌شود. برای انجام این کار سطر و ستون هایی به جدول مورد نظر اضافه می‌کنیم.
تاریخ شروع و تاریخ پایان به همراه یک کلید اصلی جدید جهت ثبت تاریخچه تغییرات به جدول اضافه می‌کنیم.


✅نوع سوم: در این حالت پردازش جهت رهگیری تغییرات تا حدودی ساده شده به طوری که فقط نام فعلی و نام قدیمی به همراه تاریخ تغییر را در جدول ذخیره می‌کنیم. نام جدید با نام قدیمی جایگزین می‌شود و نام قدیمی در فیلد دیگری به همراه تاریخ تغییرات ثبت می‌شود. در نوع سوم SCD سطری اضافه نمی‌شود و فقط ستون‌هایی برای درج تاریخ تغییرات و مقدار قبلی افزوده می‌شود. در صورتی که نیاز به ثبت تاریخچه تمامی تغییرات باشیم، باید ستون های دیگری به جدول اضافه کنیم. از این نوع زمانی استفاده می‌شود که فقط نیاز به اطلاع از داده قبلی باشد. @BIMining
More from @bimining
  1. Oct 1, 2026نکته مهم همین‌جاست: 100M Records ≠ 100M Records Read به همین دلیل: • Partitioning • ORDER…
  2. Oct 1, 2026چطور ClickHouse روی 100 میلیون رکورد Query اجرا می‌کند، بدون اینکه 100 میلیون رکورد را بخو…
  3. Sep 4, 2026قراردادی برای اینکه داده، قابل اعتماد بماند؛ Data Contract. در یک سیستم داده، ممکن است یک…
  4. Aug 16, 2026۵ الگوی معماری داده برای ۲۰۲۶ بحث ابزار نیست، بحث الگوست. الگوی غلط = خط لولهٔ مرده. ۱. لا…
  5. Jul 18, 2026ابزار dbt (Data Build Tool) در حال تسخیر دنیای مهندسی داده است. در ادامه لینک قیلمهای آموز…
  6. Jul 11, 2026معماری مدالیون(Medallion Architecture)، سیر تحول داده‌ها را از حالت خام اولیه تا نسخه‌ای ک…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →