مدل دیتا والت (Data Vault)، یکی از روشهای مدلسازی پایگاه داده است که برای ذخیرهسازی دادههای کلان به دست آمده از سیستمهای عملیاتی مختلف، همراه با تاریخچه آنها استفاده میشود. در این روش امکان حسابرسی و ردیابی دادهها و همچنین زمان و مدت لود دادهها مورد توجه قرار گرفته است. به این معنی که تمامی سطرهای داده در Data Vault باید اطلاعات مربوط به ارتباط با منبع داده و همچنین مشخصات لود در دیتا والت را داشته باشند.
در این مطلب ابتدا بررسی میکنیم که «دیتا والت» چیست و بعد به معرفی تاریخچه و فلسفه آن میپردازیم. با ما همراه باشید.
دیتا والت (Data Vault) چیست؟
Dan Linstedt، خالق دیتا والت، آن را به این صورت تعریف میکند:
«دیتا والت مجموعهای است از جداول نرمالسازی شده که به یک دیگر لینک شدهاند و قابلیت ردیابی تاریخچه تمام جزییات دادهها را در یک یا چند بخش کاربردی کسب و کار فراهم میکنند.
دیتا والت یک رویکرد ترکیبی است که بهترین ویژگیهای الگوهای ۳NF و استار را در خود دارد. این طراحی، انعطافپذیر، مقیاسپذیر و سازگار با نیازهای سازمان است. همچنین مدلی است که به طور خاص برای پاسخگویی به نیازهای انبار دادههای سازمانی امروزی طراحی شده است.»
روشهای پیشین مدلسازی انبار داده
جالب است بدانید که پیش از این، برای مدلسازی انبار داده دو روش برجسته وجود داشت:
• مدلسازی بر اساس روش کیمبال (Ralph Kimball): این روش بر اساس ابعاد سازگار (Conformed Dimensions) و باس دادههای سازمانی (Enterprise Data Bus) استوار است.
•مدل سازی بر اساس روش اینمن (Bill Inmon): این روش بر پایه طراحی نرمال است.
اما هر دو این روشها هنگام مواجهه با تغییرات در منابع دادههای انبار داده دچار مشکل میشوند.
به خصوص در روش ابعادی (Kimball)، دادهها باید تمیز شوند یا به عبارتی باید Data Cleansing داشته باشیم که در بعضی از موارد نامطلوب است؛ چرا که باعث از دست رفتن بعضی دادههای موجود در سیستمهای عملیاتی در انبار داده میشود.
دیتا والت برای جلوگیری از این مسئله، تمیز کردن دادهها را به خارج از مرحلهای انتقال داده است که وظیفه نگهداری تاریخچه دادههای سازمانی را دارد.
همچنین برای کاهش اثرات تغییر در منابع تغذیه دادههای انبار داده دیتا والت آیتمهای ساختاری (کلیدهای کسب و کار و ارتباط بین آنها) را از آیتمهای توصیفی جدا کرده است.
در مدل دیتا والت تفاوتی میان دادههای خوب و بد وجود ندارد؛ داده بد به معنی دادهای که با قواعد کسب و کار Business Rule مطابقت نداشته باشد. این در حالیست که در سایر روشهای انبار داده تاکید بر نگهداری یک نسخه از حقیقت است و دادههایی که با قواعد کسب و کار تطابق ندارند اصلاح یا حذف میشوند. اما دیتا والت تمام دادهها را در تمام زمانها نگه میدارد. در این روش اطلاعات ساختاری کاملا از اطلاعات توصیفی جدا هستند و به نحوی طراحی شده است که لود همزمان (Parallel loading) در آن امکانپذیر است.
تاریخچه و فلسفه دیتا والت
مبحث دیتا والت توسط Dan Linstedt در سال ۱۹۹۰ مطرح و در سال ۲۰۰۰ به عنوان یک روش مدلسازی عمومی ارائه شد. این مبحث در قالب پنج مقاله درData Administration Newsletter به چاپ رسید. در این مقالات، قواعد و مفاهیم دیتا والت و همچنین اجزاء مدل و بهترین روشهای لود داده در مدل برای عموم تشریح شد. همچنین دیتا والت ۲٫۰ در سال ۲۰۱۳ ارائه شد.
اما فلسفه دیتا والت چیست؟ فلسفه دیتا والت این است که تمامی دادهها معتبر هستند ،حتی اگر با قوانین کسب و کار (Business Rule) مطابقت نداشته باشند. اگر دادهها با قواعد کسب و کار تعریفشده همخوانی ندارند، این مشکل کسب و کار است نه انبار داده.
تعیین این که دادهای اشتباه است یا نه به زاویه دید ما بستگی دارد، یک تفسیر از یک نوع دیدگاه خاص است و ممکن است برای همه و در همه زمانها معتبر نباشد، بنابراین دیتا والت باید همه دادهها را ذخیره کند و فقط هنگام گزارش یا استخراج دادهها، امکان تفسیر آنها را بدهد.
مسئله دیگری که در دیتا والت مورد توجه قرار میگیرد امکان ردیابی تمام دادهها در انبار داده است. از این رو، در هر پیادهسازی از دیتا والت تمرکز روی قابلیت اطمینان دادهها و امکان ردیابی آنها است.
Data Vault 2/0
دیتا والت ۲٫۰ مجموعهای است که بهترین روشهای پیادهسازی، معماری و مدلسازی را توصیف میکند. در دیتا والت ۲٫۰ تمرکز روی مواردی مانند کلان داده یا همان Big Data و NoSQL و همچنین بهبود پرفورمنس لود است؛ این در حالیست که در دیتا والت ۱٫۰ تمرکز روی مدلسازی و تعریف آن بود.
دیتا والت چگونه عمل میکند؟
طبق گفته دن لینستد (Dan Linstedt) مدل داده دیتا والت، از سیستم عصبی (نورونها، دندریتها و سیناپسها) الهام گرفته است. هاب و هاب ستلایتها مانند نورونها، لینکها مانند دندریتها (بردارهای اطلاعات) و لینکهای دیگر مانند سیناپسها (بردارهایی در جهت مخالف)، عمل میکنند. با استفاده از مجموعهای از الگوریتمهای دیتا ماینینگ (Data Mining)، لینکها میتوانند بر اساس اعتبار و استحکام طبقهبندی شوند.
مدل دیتا والت، یک جهانبینی سازمانی ایجاد میکند. به این معنی که اصطلاحات را در دامنه سازمانی (هابها)، روابط میان آنها (لینکها) تعریف میکند و در صورت لزوم، ویژگیهای توصیفی (ستلایت) به آنها اضافه میکند.
همچنین میتوانیم دیتا والت را مانند یک گراف ببینیم. مدل دیتا والت، توسط هابها و ارتباطها در دنیای پایگاه داده پیوندی، در واقع یک مدل گراف میسازد.
دیتا والت تلاش میکند مشکل تغییرات شرایط را که از بزرگترین مشکلات در ساخت انبارهای داده است، با تعریف کلیدهای کسب وکار (Business Keys) جداگانه و ارتباط بین آن کلیدها حل کند. کلیدهای کسب و کار اغلب تغییر نمیکنند؛ چرا که هر کدام شناسه یک مفهوم کسب و کار هستند.
کلیدهای کسب وکار و ارتباطات آنها ویژگیهای ساختاری هستند که اسکلت این مدل داده را تشکیل میدهند.
یکی از اصول اساسی دیتا والت این است که کلیدهای کسب و کار تغییر نمیکنند، مگر این که کسب و کار تغییر کند. به این ترتیب آنها پایدارترین عناصر هستند که ساختار یک پایگاه داده تاریخی را میسازند.
اگر این کلیدها را مانند ستون فقرات یک انبار داده استفاده کنید، میتوانید سایر دادهها را در اطراف آن نظم دهید. به این ترتیب، انتخاب کلیدهای صحیح کسب و کار، اهمیت بسیاری در پایداری مدل شما خواهد داشت. کلیدها در جدولهایی با ساختارهای ساده طبقهبندی شدهاند. این جدولها هاب (Hub) نام دارند.
عناصر مدل داده دیتا والت (Data Vault)
به طور کلی دیتا والت (Data Vault)، دیتا والت مجموعهای است از جداول نرمالسازی شده که به یک دیگر لینک شدهاند و قابلیت ردیابی تاریخچه تمام جزییات دادهها را در یک یا چند بخش کاربردی کسب و کار فراهم میکنند. در این روش مدلسازی دادهها، بر خلاف روشهای قبلی، هیچ دادهای پاک نمیشود. همچنین ساختار کلی بر اساس ارزشهای کلیدی خود کسب و کار تعیین میشود و نه بر اساس نوع دادهها! در این روش مدلسازی دادههای سازمانی را معرفی کردیم و فلسفه آن را شرح دادیم. (اگر آشنایی زیادی با دیتا والت ندارید، پیشنهاد میکنیم قبل از این مقاله، نگاهی به مقاله قبلی بیاندازید.) در این مقاله هم میخواهیم درباره عناصر مدل داده «دیتا والت» صحبت کنیم. با ما همراه باشید.
دیتا والت از چه عناصری تشکیل شده است؟
۱- هاب Hub
هابها، لیستی از کلیدهای کسب و کار (Business Keys) هستند که کمتر مورد تغییر قرار میگیرند. آنها همچنین حاوی کلید جایگزین (Surrogate 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) در سال ۲۰۱۶ این مورد را در وبسایت خود شرح داد. او ستلایتهای چندگانه را این گونه توصیف میکند:
«ستلایتهای چندگانه جدولهایی با ساختار شبیه به ستلایتها هستند و تنها تفاوتشان با ستلایتها در این است که در لحظه (Per point in time) بیش از یک رکورد فعال به ازای هر کلید دارند.
در بعضی از مواقع سیستمهای منبع در یک لحظه بیش از یک سطر فعال و معتبر برای توصیف یک کلید کسب و کار (Business Keys) دارند (این سطرها معمولا کلید کسب و کار منحصر به خود را ندارند). برای پوشش چنین حالتی، در دیتا والت از ستلایتهای چندگانه (Multi Active Satellite) استفاده میشود.
یکی از اشتباهات رایجی که در طراحی انبارهای داده رخ میدهد این است که در بعضی از موارد که توصیفها یا ارتباطهای یک کلید کسب و کار در فاصله بین دو بارگذاری (Load) انبار داده بیش از یک بار تغییر میکند، طراحان از ستلایت چندگانه استفاده می کنند؛ در صورتی که مهمترین مسئله در مورد ستلایتهای چندگانه، فعال بودن همزمان بیش از یک سطر است.
به نظر من در چنین حالتهایی باید مکانیزم بارگذاری متفاوتی (با نوعی زمانبندی که تغییرات را پوشش دهد)، برای آن قسمت از مدل که تغییرات زیاد دارد، در نظر گرفته شود.»
جمعبندی
در این مقاله بررسی کردیم که دیتا والت و فلسفه آن چیست و چگونه عمل میکند. همچنین درباره مزایای آن با سایر روشهای مدلسازی داده صحبت کردیم. عناصر مدل داده دیتا والت را با هم بررسی کردیم و مواردی را نیز از زبان دن لینستد (خالق مدل دیتا والت) شرح دادیم. عناصر مدل دیتا والت شامل هابها، لینکها، ستلایتها، جداول مرجع و ستلایتهای چندگانه میشود.
دیدگاهتان را بنویسید