عناصر مدل داده دیتا والت (Data Vault)عناصر مدل داده دیتا والت (Data Vault)

عناصر مدل داده دیتا والت (Data Vault)

نویسنده: حامد هرمزی

دسته بندی: هوش تجاری
6 دقیقه زمان مطالعه
۱۴۰۰/۰۴/۰۸
0 نظر
امتیاز 3.8 از 5

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

هاب Hub

 هاب‌ها، لیستی از کلیدهای کسب و کار (Business Keys) را در بر می‌گیرند که گرایش کمی به تغییر دارند. آن‌ها همچنین حاوی کلید جایگزین (Surrogate Key) و فیلدهایی هستند که منشاء کلید کسب و کار (Business key) را توصیف می‌کنند. ویژگی‌های توصیفی برای اطلاعات موجود در هاب، در ساختارهایی به نام جدول ستلایت ذخیره می‌شوند که در بخش‌های بعدی به بررسی آن‌ها خواهیم پرداخت.
هر هاب، حداقل فیلدهای زیر را در بر می‌گیرد:

  • یک کلید جایگزین (surrogate key) که برای متصل کردن ساختارهای دیگر به این جدول استفاده می‌شود.
  • یک کلید کسب و کار (Business key) که ممکن است شامل فیلدهای چندگانه شود.
  • یک منبع رکورد که مشخص می‌کند کدام سیستم برای اولین بار هر بیزنس کی را بارگذاری کرده است.
  • به صورت اختیاری، می‌توانید فیلدهای با اطلاعات به‌روزرسانی (کاربر/ زمان) و تاریخ استخراج داشته باشید.
  •  هاب نمی‌‌تواند چند کلید کسب و کار (Business key) را شامل شود و معمولا باید حداقل یک ستلایت داشته باشد.

لینک Link

رابطه‌های انجمنی یا تعاملات بین کلیدهای کسب و کار ( که برای مثال هاب‌های مشتری و محصول را در معامله خرید به هم مرتبط می‌کنند)، با استفاده از جدول‌های لینک مدل‌سازی شده‌اند. این جدول‌ها در اصل جدول‌هایی برای پیاده‌سازی روابط چند به چند هستند، به اضافه تعدادی فراداده (Metadata) برای مشخص کردن زمان لود و منبع داده‌ها.
در مواقع خاص (زمان تغییر در درشت‌دانگی داده‌ها)، لینک‌ها می‌توانند یک لینک را به لینک دیگر ارتباط دهند. برای مثال اگر یک لینک بین مشتری و آدرس دارید، می‌توان یک ارتباط بین آن لینک و لینک بین هاب‌های محصول و شرکت حمل و نقل اضافه کرد. عنوان لینک جدید می‌تواند «تحویل» باشد. در حالت کلی باید تا حد امکان از  ارجاع دادن یک لینک به لینک دیگر اجتناب کرد زیرا وابستگی‌هایی را ایجاد می‌کند که باعث سخت‌تر شدن بارگذاری موازی می‌شود.
لینک‌ها گاهی اوقات هاب‌ها را به اطلاعاتی متصل می‌کنند که به خودی خود برای ساخت یک هاب کافی نیست. این اتفاق زمانی رخ می‌دهد که یکی از بیزنس کی‌های مرتبط با لینک، یک بیزنس کی واقعی نیست. به عنوان مثال، یک فرم سفارش با شماره سفارش را به عنوان کلید در نظر بگیرید، و ردیف‌های سفارش که با یک عدد نیمه تصادفی کلید می‌شوند تا آ‌ن‌ها را منحصربه‌فرد کنند. کلید دومی یک بیزنس کی واقعی نیست، پس هاب هم نیست. با این حال، ما باید از آن استفاده کنیم تا جزئیات دقیق برای لینک تضمین شود. در این مورد، از هاب با کلید جایگزین (Surrogate Key) استفاده نمی‌کنیم، اما بیزنس کی «شماره منحصربه‌فرد» را به لینک اضافه می‌کنیم. دن لینستد (Dan Linstedt) این لینک را یک لینک Peg-legged نامیده است.

ستلایت Satellite

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

جداول مرجع Reference Tables 

جداول مرجع (Reference Tables) به عنوان یکی از بخش‌های پرکاربرد در مدل دیتا‌والت مطرح هستند که از آن‌ها برای جلوگیری از تکرار ذخیره داده‌های مرجع ساده و پر تکرار (که اغلب آ‌ن‌ها توصیفی هستند) استفاده می‌شود.
دن لینستد داده‌های مرجع (Reference Data) را این گونه توصیف می‌کند:
«هرگونه اطلاعات مورد نیاز برای رفع توضیحات از جداول یا ترجمه و تفسیر کلیدها، که معمولا به صورت فیلدهای توصیفی وضعیت خاصی از اطلاعات دیگر را تشریح می‌کنند.»
در دیتا والت این داده‌های مرجع در جداول خام جداگانه‌ای با عنوان جداول مرجع (Reference Tables) نگهداری می شوند.
ستلایت‌ها به جداول مرجع ارجاع دارند ولی این رابطه از طریق کلیدهای خارجی پیاده‌سازی نمی‌شود. در مدل دیتا‌والت هیچ ساختار ترجیحی برای جداول مرجع وجود ندارد و پیشنهاد می‌شود که از هر روشی که در مورد خاص شما کارایی دارد استفاده کنید، مانند Lookup Tables  و ... . این جداول می‌توانند دارای تاریخچه نباشند (تصمیم در این زمینه بر عهده طراح انبار داده و بر اساس نیاز کسب و کار است) که در این صورت توصیه می‌شود از کلیدهای طبیعی (Natural Keys)  استفاده شود و کلید جایگزین (Surrogate Keys) ایجاد نشود.
در انبار داده‌های طراحی شده بر مبنای دیتا والت، تعداد زیادی از جداول مرجع وجود خواهد داشت.

 ستلایت‌های چندگانه Multi Active Satellite

با توجه به برداشت‌های اشتباه فراوان از مفهوم ستلایت‌های چندگانه، دن لینستد (Dan Linstedt) در سال 2016 این مورد را در وبسایت خود شرح داد. او ستلایت‌های چندگانه را این گونه توصیف می‌کند:
ستلایت‌های چندگانه جداولی با ساختار شبیه به ستلایت‌ها هستند و تنها تفاوت‌شان با ستلایت‌ها در این است که در لحظه (Per point in time) بیش از یک رکورد فعال به ازای هر کلید دارند.
در بعضی از مواقع سیستم‌های منبع در یک لحظه بیش از یک سطر فعال و معتبر برای توصی�� یک کلید کسب و کار (Business Keys) دارند (این سطرها معمولا کلید کسب و کار منحصر به خود را ندارند). برای پوشش چنین حالتی، در دیتا والت از ستلایت‌های چندگانه (Multi Active Satellite)  استفاده می‌شود.
یکی از اشتباهات رایجی که در طراحی انبارهای داده رخ می‌دهد این است: در بعضی از موارد که توصیف‌ها یا ارتباط‌های یک کلید کسب و کار در فاصله بین دو بارگذاری (Load) انبار داده بیش از یک بار تغییر می‌کند، طراحان از ستلایت چندگانه استفاده می کنند، در صورتی که مهمترین مسئله در مورد ستلایت‌های چندگانه، فعال بودن همزمان بیش از یک سطر است. 
به نظر من در چنین حالت‌هایی باید مکانیزم بارگذاری متفاوتی (با نوعی زمان‌بندی که تغییرات را پوشش دهد)، برای آن قسمت از مدل که تغییرات زیاد دارد، در نظر گرفته شود.

جمع‌بندی

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