خانه SQL Server انبار داده (Data Warehouse) چیست؟ آشنایی با روند ساخت، انواع و ساختار SQL Server انبار داده نوشته شده توسط: احسان حسین پور تاریخ انتشار: ۰۳ آبان ۱۳۹۶ آخرین بروزرسانی: ۱۷ اردیبهشت ۱۴۰۳ زمان مطالعه: 13 دقیقه ۴.۲ (۱۹) انبار داده چیست و چرا در سازمانهای مدرن اهمیت دارد؟ در این مقاله به این پرسش مهم پاسخ داده میشود. بهطور کلی، Data Warehouse بهدلیل ذخیرهسازی متمرکز دادهها، امکان یکپارچهسازی با ابزارهای هوش تجاری، تشخیص ترندها و تحلیل تاریخی دادهها برای سازمانها اهمیت فراوانی دارد. با مطالعه این مطلب، شما با روند ساخت انبار داده، تفاوت آن با پایگاه داده، انواع آن، ساختار ذخیرهسازی و سایر مباحث مهم مربوطه آشنا میشوید. انبار داده (Data Warehouse) چیست؟ انبار داده (Data Warehouse)، پایگاه دادهای خاص برای ذخیرهسازی، مدیریت و تجزیهوتحلیل دادههایی است که از چندین سیستم عملیاتی در یک سازمان بهدست میآیند. برخلاف پایگاه های داده تراکنشی، که برای ورود و استخراج سریع داده بهینهسازی شدهاند، در انبارهای داده پردازش تحلیلی اولویت دارد. انبار داده یک نمای جامع و یکپارچه از دادههای سازمانی برای اهداف گزارشگیری و اخذ تصمیمات ارائه میدهد. بهصورت عام، Data Warehouse تحت عنوان DW شناخته میشود و همانند هسته اصلی یک سیستم هوش تجاری BI به شمار میآید. به بیان ساده، انبار داده یک مخزن دیتای مرکزی از دادههای تجمیعشده است که از سیستمها و منابع مختلف سازمان جمعآوری شدهاند. روش ساخت انبار داده برای ایجاد یک انبار داده ، رویکردی سیستمی وجود دارد که فعالیتها و گامها مختلفی را دربرمیگیرد. متدولوژی ایجاد Data Warehouse بهصورت زیر است: ۱- جمع آوری نیازمندی ها موارد زیر در گام اول ایجاد انبار داده اهمیت دارند: تعامل با ذینفعان: برای درک بهتر نیازمندیهای مربوط به دادهها، باید با ذینفعان تعامل داشته باشید تا از اهداف کسب و کار و همچنین نیازمندیهای تحلیلی آگاه شوید. تجزیهوتحلیل داده: دیتاسورسها، فرمتها، کیفیت و حجم را بررسی کنید تا بدین شیوه، دیتاستها مرتبط را برای شمول در Data Warehouse شناسایی کنید. تعیین Scope پروژه: شما باید Scope پروژه انبار داده، شامل دامنههای داده مدنظر، نقشهای کاربر، نیازمندیهای گزارشگیری و استثنائات عملکردی را تعریف کنید. ۲- مدل سازی داده اقدامات زیر را در گام مدل سازی دیتا انجام دهید: مدل سازی مفهومی: یک مدل داده مفهومی سطح بالا ایجاد کنید که موجودیتها (Entities) اصلی، روابط (Relationships) و قوانین تجاری دلالتکننده بر دیتا را پوشش دهد. مدل سازی منطقی: با استفاده از نمودار ER یا تکنیکهای Dimensional Modeling یک مدل داده منطقی برای نمایش ساختار انبار داده طراحی کنید. مدل سازی بعدی: با پیادهسازی تکنیکهای مدلسازی Dimensional، مانند Star Schema یا Snowflake Schema، دادهها را به Fact table و dimnesion Table برای تحلیل و کوئرینویسی کارآمد سازماندهی کنید. ۳- ETL در این گام، موارد زیر انجام میشوند: استخراج داده: دادهها را از سورسهای مختلف، ازجمله پایگاه های داده، استخراج کنید. تبدیل داده: در این مرحله، اموری همچون پاکسازی، استانداردسازی و تبدیل دادههای خام انجام میشوند. بدین شیوه، از سازگاری، دقت و تطابق داده با اسکیمای Data Warehouse اطمینان حاصل خواهد شد. بارگذاری دیتا: در این گام، دادههای تبدیلشده ازطریق پردازش دستهای (Batch Processing) یا مکانیزمهای جریان بلادرنگ به انبار داده بارگذاری میشوند. برای آشنایی بیشتر با این گام، مقاله ETL چیست را مطالعه کنید. ۴- پیاده سازی در فاز پیادهسازی، موارد زیر حائز اهمیت هستند: راهاندازی زیرساخت (Infrastructure Setup): این گام، مرحله آمادهسازی و تأمین منابع سختافزاری، نرمافزاری و شبکهای موردنیاز برای پشتیبانی از محیط انبار داده است. طراحی پایگاه داده: پیکربندی و بهینهسازی تنظیمات سیستم مدیریت پایگاه داده (DBMS)، استراتژیهای ایندکسگذاری و پارتیشنبندی اسکیما و پیکربندی ذخیرهسازی در این مرحله است. این موارد برای دستیابی به عملکرد مطلوب و استفاده بهینه از منابع انجام میشوند. خودکارسازی جریان کاری ETL: بهواسطه اموری مانند پیادهسازی جریانهای کاری ETL، رسیدگی به خطا، Job Scheduling و مکانیزمهای مانیتورینگ، فرآیندهای ETL را اتوماتیک کنید. ۵- تست و اعتبارسنجی حال موارد زیر را انجام دهید: تضمین کیفیت داده (Data Quality Assurance): فرآیندی است که برای اطمینان از دقت، کاملبودن و سازگاری دادهها در انبار داده به کار میرود. این اطمینان ازطریق انجام بررسیهای کیفیت داده، آزمونهای اعتبارسنجی و فرآیندهای تطبیق (Reconciliation) حاصل میشود. تست عملکرد: Performance Testing به ارزیابی پاسخگویی و مقیاسپذیری انبار داده تحت سناریوهای لودکاری (Workload) مختلف میپردازد. این ارزیابی به هدف بهینهسازی عملکرد کوئری انجام میشود. User Acceptance Testing: مرحلهای است که در آن با کاربران نهایی Data Warehouse تعامل برقرار میشود تا اعتبارسنجی قابلیتهای کاربردی، سهولت استفاده و ارتباط گزارشها، داشبوردها و ابزارهای تحلیلی ساختهشده روی انبار داده انجام شوند. به این گام، تحت عنوان UAT نیز اشاره میشود. ۶- استقرار و Rollout در این مرحله، شما باید استقرار انبار داده را بهصورت افزایشی یا همان Incremental انجام دهید. ضمن اینکه باید با ارائه پشتیبانی مستمر از بیخلل پیش رفتن انتقال و سازگاری Data Warehouse در درون سازمان اطمینان حاصل کنید. درنهایت، باید با تعیین رویههای Recovery Disaster، مانیتورینگ و نگهداری، در دسترس بودن انبار داده و همچنین سلامت و کارایی آن را در طول زمان بهصورت پیشگیرانه مدیریت کنید. تفاوت انبار داده و پایگاه داده پایگاه داده و انبار داده هر یک اهداف متمایزی در مدیریت و استفاده از دادهها در یک سازمان دارند. معمولاً در دیتابیس از یک مدل رابطهای با ساختارهای داده نرمالشده استفاده میشود تا از صحت داده و به حداقل رساندن افزونگی دادهها اطمینان حاصل شود. برای آشنایی بیشتر، پیشنهاد میکنیم مقاله پایگاه داده چیست؟ آشنایی با انواع دیتابیس و کاربردهای آن ها را مطالعه نمایید. ازسوی دیگر، Data Warehouse برای پردازش تحلیلی طراحی شده است و با گردآوری حجم وسیعی از دادههای تاریخی از سورسهای مختلف، به تسهیل درخواستهای پیچیده، گزارشگیری و تجزیهوتحلیل داده میپردازد. DW با استفاده از یک مدل Dimensional با ساختارهای دادهای غیرنرمال، دیتا را برای درخواستهای تحلیلی بهینهسازی میکند و با ارائه بینشهایی، فرآیندهای تصمیمگیری را پشتیبانی میکند. پایگاه داده برروی کارایی تراکنشی و نیازهای عملیاتی متمرکز است، در حالی که انبار داده عملکرد تحلیلی و پشتیبانی از تصمیمگیریهای مستند ازطریق تجزیهوتحلیل را بهعنوان اولویت قرار میدهد. بخش های مختلف انبار داده مهمترین کامپوننتهای انبار داده عبارتند از: منابع داده فرآیندهای ETL ذخیرهسازی داده مدلسازی داده Metadata Repository ابزارهای تحلیل و کوئرینویسی حاکمیت داده و امنیت پشتیبانگیری و بازیابی چرا از انبار داده استفاده می کنیم؟ انبارهای داده برای سازمانهایی ضروری هستند که بهدنبال استفاده از دادههایشان برای اتخاذ تصمیمات استراتژیک هستند. درحقیقت، انبار داده بهعنوان دارایی حیاتی سازمانها عمل میکند و امکان ذخیرهسازی دادههای متمرکز و قابلیتهای تحلیلی را ارائه میدهد. Data Warehouse با تجمیع دادهها از منابع مختلف و قابلیت تجزیهوتحلیل پیچیده، بینشهای ارزشمندی را برای تصمیمگیری آگاهانه در اختیار شما میگذارد. علاوهبراین، انبارهای داده اطمینان از یکپارچگی داده، حاکمیت و انطباق را تضمین کرده و درنتیجه، کارایی کلی سازمان و برنامهریزی استراتژیک را بهبود میبخشند. ویژگی های انبار داده موارد زیر بهعنوان ویژگیهای مهم انبار داده شناخته میشوند: ارائه امکان ذخیرهسازی متمرکز پشتیبانی از ادغام دادهها ذخیرهسازی دادههای تاریخی بهینهسازی کارایی کوئری مدلسازی دادهها به هدف سازماندهی و تحلیل کارآمد پشتیبانی از فرآیندهای ETL امکان یکپارچهسازی با ابزارهای هوش تجاری (BI) قابلیت ارتقاءپذیری و Scale شدن ارائه مکانیزمهای پشتیبانیگیری و بازیابی ابزارهای انبار داده در این بخش به ابزارهای متداول انبار داده اشاره میشود: Amazon Redshift Google BigQuery Snowflake Microsoft Azure Synapse Analytics IBM Db2 Warehouse Teradata Oracle Autonomous Data Warehouse Vertica Exasol Panoply انواع انبار داده بهصورت کلی، انبار داده براساس معماری و استقرار، به سه نوع زیر دستهبندی میشود: Enterprise Data Warehouse: یک ریپازیتوری متمرکز است که دادهها را از منابع مختلف در کل سازمان ادغام میکند. بهطور معمول، EDW یا همان Enterprise Data Warehouse، برای پشتیبانی از گزارشگیری سطح سازمانی، تجزیهوتحلیل و فرآیندهای تصمیمگیری در کل سازمان طراحی شده است. این نوع از انبار داده ، غالباً با استفاده از رویکرد مدلسازی بعدی (Dimensional Modeling) ساختاردهی میشود و برای کوئریها و تحلیلهای پیچیده بهینهسازی شده است. Operational Data Store: یک پایگاه داده است که برای ادغام دادهها از چندین سیستم عملیاتی بهصورت بلادرنگ یا «نزدیک به بلادرنگ» طراحی شده است. برخلاف Data Warehouse های سنتی، ODS بر ارائه یک نمای منسجم و آپدیتشده از دادههای عملیاتی برای تصمیمگیری فوری و گزارشدهی عملیاتی تمرکز دارد. توجه کنید که در اغلب موارد، ODS بهعنوان Data Layer میانی بین سیستمهای عملیاتی و انبارهای داده استفاده میشود و یکپارچهسازی و همگامسازی دادهها را تسهیل میکند. Data Mart: دیتامارت زیرمجموعهای از Data Warehouse محسوب میشود که روی یک عملکرد تجاری خاص، بخش یا حوزه متمرکز است. دیتامارتها به منظور برآوردن نیازهای گروه خاصی از کاربران مانند فروش، بازاریابی، امور مالی یا منابع انسانی طراحی شدهاند و در مقایسه با انبارهای داده سازمانی، ازنظر مقیاس کوچکتر هستند. نقش انبار داده در پروژه های هوش تجاری در پروژه های BI، انبارهای داده بهدلیل نقش خود بهعنوان ریپازیتوریهای متمرکز، با تجمیع دادهها از سورسهای مختلف مانند پایگاههای داده، ضروری هستند. انبار داده فرآیندهای یکپارچهسازی داده را تسهیل میبخشند و انسجام آنها را تضمین میکنند؛ در عین حال، امکان ذخیرهسازی دادههای تاریخی برای تجزیهوتحلیل ترند و تصمیمگیری آگاهانه را سادهسازی میکنند. بهدلیل سازگاری انبارهای داده با ابزارهای مختلف BI، محیط تحلیلی انعطافپذیر و پویایی را ایجاد میکند. به این ترتیب، سازمانها میتوانند به بینشهای عملیاتی برسند و در چشمانداز دادهمحور کنونی، از مزیتهایی برخوردار شوند. درمجموع، Data Warehouse بهعنوان یک جز اساسی از معماری سیستمهای اطلاعاتی مدرن عمل میکند و با سیستمهای OLTP و OLAP تعامل دارد تا دادهها را جمعآوری، ذخیرهسازی، تحلیل و گزارش دهد. ویژگی های داده های درون انبار داده دادههای DW از نگاه Inmon دارای ویژگیهای اصلی زیر هستند: غیرفرار و ماندگار (Non-Volatile): دادهها در یک انبار داده غیرقابل تغییر هستند؛ یعنی پس از بارگذاری، تغییرات مکرر روی آنها اعمال نمیشود. دادههای تاریخی در طول زمان حفظ میشوند و امکان تجزیهوتحلیل ترندها و مقایسه تاریخی را فراهم خواهند کرد. موضوعگرا (Subject-Oriented): منظور از «موضوع» پایههای اساسی یک کسبوکار است؛ به شکلی که با حذف یکی از این پایهها، شاید ماهیت آن کسبوکار تغییر یابد. به بیان دیگر، هر Data Warehouse دادههای مرتبط با یک موضوع خاص را نگهداری میکند؛ به طوری که این دادهها جهت استخراج تحلیلهای خاص به کار گرفته میشوند. یکپارچه (Integrated): باید تمامی کدهایی که در سیستمهای عملیاتی وجود داشته و معانی یکسانی دارند، برای مثال کد جنسیت، به یک روش در Data warehouse ذخیرهسازی و نمایش داده شوند. با توجه به اینکه دادهها از سیستمها و منابع مختلف جمعآوری میشوند، تکنیکهای مختلف عملیات یکپارچهسازی و تجمیع دادهها بهمنظور تأمین یکپارچگی داده به کار گرفته میشود. زمانگرا (Time Variant): هر رکورد باید حاوی فیلد یا کلیدی باشد تا به کمک آن مشخص شود که رکورد در چه زمانی ایجاد، استخراج و ذخیرهسازی شده است. از آنجا که دادههای درون سیستمهای عملیاتی آخرین و بهروزترین داده هر سیستم هستند، نیازی به وجود چنین عنصری در سیستمهای OLTP احساس نمیشود. با توجه به اینکه در DW تمامی دادههای نسخه قدیمی دیتای سیستمهای عملیاتی موجود است، باید حتماً مشخص شود که هر دادهای در سیستمهای عملیاتی، در چه زمانی ایجاد شده و چه مقادیری داشته است. ساختار ذخیره سازی انبار داده ساختار ذخیره سازی انبار داده از دو نوع جدول Fact و Dimenstion است: Dimension ها، جدولهایی به حساب میآیند که حاوی اطلاعات توصیفی هستند. منظور از اطلاعات توصیفی دادههایی مانند نام مشتری، عنوان شغل، نام شرکت و حتی اطلاعات جغرافیایی محل سکونت مشتری است. هر جدول Dimension، حاوی فهرستی از فیلدها است که به آنها مشخصه (Attribute) گفته میشود. هر مشخصه حاوی اطلاعات توصیفی است و مشخصههایی که به یکدیگر مرتبط هستند در یک Dimension قرار میگیرند. Fact جدولی حاوی فیلدهایی از نوع Measure و تعدادی Foreign Key است که به جداولی از نوع Dimension اشاره میکند. معمولاً جداول Fact، تعداد زیادی از رکوردها را در خود ذخیرهسازی میکنند و اغلب فضای انبار داده، چیزی حدود ۸۰ درصد، را به خود اختصاص میدهند. با این مقدمات، به بررسی بیشتر جدولهای Fact و Dimension میپردازیم. بررسی جداول Fact و Dimension هر جدول Dimension حاوی فهرستی از فیلدها است که به آنها Attribute گفته میشود. هر مشخصه حاوی اطلاعات توصیفی است و مشخصههایی که به یکدیگر مرتبط هستند، در یک بُعد قرار میگیرند. برای مثال، بُعد مشتری حاوی Attribute و یا فیلدهای زیر است: هر بُعد دارای یک کلید اصلی است که به آن Surrogate Key گفته میشود. کلید اصلی سیستم منبع در جدول بُعد بهعنوان Business Key ذخیره میشود. درواقع، Business Key همان کلید اصلی در جداول سیستمهای OLTP است. در مثال بالا، CustomerKey بهعنوان Surrogate Key و CustomerPK بهعنوان Bussiness Key درنظر گرفته میشوند. تکنیک های متداول مدل سازی در انبار داده در این بخش، ساختارهای Star Schema و Snowflake Schema ، که از معروفترین ساختارهای ارتباطی بین جداول انبار داده به شمار میآیند، را بررسی میکنیم. مدل ستاره ای (Star Schema) در این مدل، دادهها به یک جدول Fact مرکزی سازماندهی میشوند و جداول Dimension ازطریق ایجاد کلید خارجی به آن متصل میشوند. در این روش، تمام صفات قابل شمارش و اندازهگیری در جدول Fact قرار میگیرند. در تصویر فوق، جدول فروش میتواند شامل مبلغ فروش، تعداد فروش و میزان سود باشد. در این روش، زمان اجرا بهدلیل ارتباط مستقیم بین جداول Fact و Dimension و بهدنبال آن، وجود join های کمتر، بسیار سریع است. مدل دانه برفی (Snowflake Schema) همانطور که در تصویر فوق مشخص است، در مدل Snowflake یا همان دانه برفی، Dimension ها نرمال شدهاند و افزونگی کاهش یافته است. به عبارت دیگر، فضای ذخیرهسازی کاهش پیدا کرده، در حالی که زمان پاسخگویی به یک کوئری تحلیلی نیازمند join های بیشتری است. از این رو، در مقایسه با روش Star، زمان پاسخگویی آن کندتر خواهد بود. جمع بندی: چرا انبار داده حائز اهمیت است؟ در این مقاله به این سؤال پاسخ داده شد که انبار داده چیست و چگونه ایجاد میشود. علاوهبراین، به مواردی همچون تفاوت آن با دیتابیس، نقش آن در پروژههای BI، تکنیکهای مدلسازی Data Warehouse و انواع آن پرداخته شد. در مجموع، انبارهای داده نقش بسزایی در محیطهای تجاری مدرن ایفا میکنند و به سازمانها این قابلیت را میدهند که از دادهها مانند یک مزیت استراتژیک بهرهمند شوند. چه رتبه ای میدهید؟ میانگین ۴.۲ / ۵. از مجموع ۱۹ اولین نفر باش معرفی نویسنده مقالات 4 مقاله توسط این نویسنده محصولات 4 دوره توسط این نویسنده احسان حسین پور احسان حسین پور مدیر بانک اطلاعاتی در شرکت پرداخت الکترونیک سداد و همچنین مدرس و مشاور SQL Server در نیکآموز است. از دیگر سوابق او به مدیر پایگاه داده در شرکت حصین ، مدیر فنی توسعه سامانه نیکنام، ، متخصص سیستمهای انبارداده و هوش تجاری، طراحی In-Memory OLTP در SQL Server اشاره کرد. معرفی محصول مسعود طاهری دوره آموزشی انبار داده در هوش تجاری 1.390.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ زهرا ۰۱ / ۰۷ / ۰۲ - ۱۲:۵۵ ممنونم مطلب مفیدی بود ۱ پاسخ به دیدگاه محمد ۰۱ / ۱۲ / ۹۷ - ۰۱:۳۴ سلام من در حوزه مدیریت پایگاه داده کار می کنم. می خواستم ببینم چه دوره هایی برای این کار نیاز دارم. پاسخ به دیدگاه مسعود طاهری ۰۲ / ۱۲ / ۹۷ - ۰۵:۰۵ شما این مسیر راه را دنبال کنید فیلم اول را دانلود و بررسی کنید ….. https://nikamooz.com/road-map-sql-server-training/ پاسخ به دیدگاه محمد ۰۱ / ۱۲ / ۹۷ - ۰۱:۳۴ سلام من در حوزه مدیریت پایگاه داده کار می کنم. می خواستم ببینم چه دوره هایی برای این کار نیاز دارم. پاسخ به دیدگاه مسعود طاهری ۰۲ / ۱۲ / ۹۷ - ۰۵:۰۵ شما این مسیر راه را دنبال کنید فیلم اول را دانلود و بررسی کنید ….. https://nikamooz.com/road-map-sql-server-training/ پاسخ به دیدگاه وحید جوادی ۱۲ / ۱۰ / ۹۷ - ۰۵:۳۳ سلام متشکر از اطلاعات شما من در حوزه استقرار نظام امارهای ثبتی و ایجاد داشبوردهای سازمانی کار می کنم اگر در زمینه معرفی نمونه های موفق انباره داده و BI اطلاعاتی ارائه بفرمایید استفاده خواهم کرد باسپاس فراوان پاسخ به دیدگاه وحید جوادی ۱۲ / ۱۰ / ۹۷ - ۰۵:۳۳ سلام متشکر از اطلاعات شما من در حوزه استقرار نظام امارهای ثبتی و ایجاد داشبوردهای سازمانی کار می کنم اگر در زمینه معرفی نمونه های موفق انباره داده و BI اطلاعاتی ارائه بفرمایید استفاده خواهم کرد باسپاس فراوان پاسخ به دیدگاه