انبار داده‌ی Azure SQL

یک پردازش گر موازی عظیم MPP و مبتنی بر ابر می‌باشد که در قیاس با پایگاه داده‌ رابطه ای می‌تواند حجم زیادی از داده‌ها را پردازش نماید.

انبار داده‌ی SQLServer:

  1. قابلیت ترکیب پایگاه داده ی  رابطه ای  با توانایی های مقیاس پذیر azure cloud را دارد.
  2. حافظه را از محاسبه جدا می‌کند.
  3. توانایی افزایش ،کاهش،توقف،ادامه دادن یک پردازش یا محاسبه را دارد.
  4. همچنین با پلتفرم azure ادغام می‌شود.
  5. از TSQL و ابزارهای آن استفاده می‌کند.
  6. با انواع نیازهای امنیتی تجاری و قانونی مانند SOC و IOS کامپایل می‌شود.

معماری پردازش موازی انبوه:

انبار داده‌ی SQL  سیستم پایگاه داده‌ی گسسته پردازش موازی حجیم است.

این انبار داده، داده‌های کاربر را در میان تعداد بسیاری واحد پردازش و حافظه به اشتراک گذاشته‌شده رواج می‌دهد.

داده‌ها در واحد حافظه دقیقاً فضایی بالاتر از نودهای پردازش گر که وظیفه‌ی اجرای کوئری ها را دارند ،ذخیره می‌شود.

هنگام برخورد با کوئری های پیچیده و اجرای بارگذاری‌ها انبار داده‌ی SQL از” تقسیم و غلبه” استفاده می‌نماید.

درخواست توسط نودهای کنترلی که برای توزیع گسسته بهینه‌شده‌اند در ابتدا دریافت می‌شود .در انتها نودهای محاسبه‌گر آ را دریافت می‌نمایند تا بتوانند کار خود را به‌صورت موازی انجام دهند.

با همراهی واحد محاسبه و حافظه‌ی جداگانه انبار داده می‌تواند سایز حافظه  را صرف‌نظر از واحد  پردازش افزایش دهد. بدون جابجایی داده قدرت محاسبه کامپیوتر را افزایش دهید.

تا زمانی که داده‌ی سالم رها نشوند ظرفیت عمل محاسبه  متوقف می‌شود  و تنها هزینه مربوط به واحد حافظه  در نظر گرفته‌شده است. ظرفیت محاسبه را در طول ساعات اجرا می‌خواهیم به دیر

در شکل زیر این معماری با جزییات بیشتر نمایش داده‌شده است:

نود کنترل :

این نود کوئری ها را بهینه‌سازی و مدیریت می‌کند. همچنین این نود با همه‌ی app ها و ارتباطات در تعامل است. در انبار داده‌یSQL دسترسی به این نود کنترلی همانند دسترسی به آن در پایگاه داده‌ی SQL است.

این نود کنترلی جابجایی داده‌ها و محاسبات موردنیاز برای اجرای کوئری های موازی بر روی‌داده‌های توزیع‌شده را هماهنگ می‌کند.

هنگامی‌که یک کوئری SQL بر روی انبار داده ثبت می‌شود، نود کنترلی این کوئری را به کوئری های جداگانه که بر روی‌داده‌های توزیع‌شده به‌صورت موازی انجام می‌شوند، تقسیم می‌کند.

نودهای محاسبه‌گر:

نودهای محاسبه‌گر به‌عنوان پشتوانه‌ی اصلی  SQL به کار می‌روند. آن‌ها پایگاه داده‌های SQL هستند که داده‌ها را ذخیره و کوئری ها را اجرا می‌نمایند. هنگامی‌که داده‌ای را اضافه نماییم ، انبار ده‌دهی SQL سطرها را میان نودهای محاسبه‌گر  توزیع می‌نماید.

درواقع این نودها وظیفه‌ی اجرای کوئری های موازی بر روی‌داده‌ها را دارند و پس از پردازش نتیجه را بهنودهای کنترلی بازمی‌گردانند. برای اتمام فرآیند نودهای کنترلی این نتایج را جمع نموده و نتیجه‌ی کلی را برمی‌گردانند.

حافظه: داده‌ی شما در حافظه‌ی Azure Blob ذخیره‌شده است . درست زمانی که نودهای محاسبه‌گر با داده‌ها در تعامل هستند ، این داده‌ها  به‌صورت مستقیم در حافظه نوشته  و یا از آن خوانده می‌شوند.به دلیل اینکه حافظه‌ی Azure به‌صورت شفاف و بسیار بسط داده می‌شود ، انبار داده‌ی SQL نیز توانایی گسترش این حجم از داده‌ها را دارد.

چون پردازش و فضای  ذخیره‌سازی مستقل از یکدیگر می‌باشند ، انبار داده‌ی SQL به‌صورت جداگانه مقیاس بندی می‌نماید. این فضای ذخیره‌سازی قدرت تحمل‌پذیری کامل در برابر خطای مربوط به backup  ها و بازگردانی محاسبه‌ها را دارد.

سرویس جابجایی داده (DMS) : این سرویس عمل جابجایی داده میان نودها را انجام می‌دهد. همچنین DMS ها به نمودهای محاسبه‌گر اجازه‌ی دسترسی به داده‌های موردنیازشانبرای اجرای کوئری ها و سایر اعمال محاسباتی را می‌دهند. DMS یک سرویس Azure نیست؛ درواقع DMS یک سرویس ویندوز است که در کنار پایگاه داده‌ای SQL بر روی نودها اجرا می‌شود.DMS   یک سرویس پس‌زمینه است که به‌صورت مستقیم نمی‌توان با آن در تعامل بود. ازآنجایی‌که برای اجرای کوئری های موازی به DNS نیاز داریم ،شما می‌توانید این سرویس و موقعیت اجرای آن  را در پلان مربوط به کوئری ها مشاهده نمایید.

بهینه‌سازی حجم کار انبار داده:

رویکرد پردازش‌های موازی انبوه یا MPP توسط چندین عملکرد بهینه‌سازی انبار داده‌ها به کار گرفته‌شده است:

  • بهینه‌ساز کوئری توزیع‌شده و مجموعه از آمارهای  پیچیده  که پیرامون داده‌ها وجود دارد.  با به‌کارگیری این اطلاعات پیرامون سایز داده‌ها و فضای توزیع، این سرویس  با ارزیابی هزینه‌ی مربوط به فرآیند  اجرای کوئری های توزیع‌شده ، قادر به بهینه‌سازی کوئری ها است.
  • به‌کارگیری تکنیک‌ها و الگوریتم‌هایی که با فرایند جابجایی داده در میان نودهای محاسبه‌گر، ادغام شوند ، برای اجرای بهینه‌ی کوئری ها ضروری است .
  • استفاده از columnsotre index ها: هنگامی‌که حافظه بر مبنای ستون باشد انبار داده‌ی SQL  به‌طور متوسط ۵ برابر بیشتر از حالتی که بر مبنای سطر باشد فشرده می‌شود. همچنین فرایند اجرای کوئری ها ۱۰ بار سریع‌تر انجام می‌شود.

عملکرد مقیاس‌پذیر و قابل پیش‌بینی با واحدهای انبار داده :

انبار داده‌یSQL  از تکنولوژی مشابه پایگاه داده SQL ایجادشده است که به همین  دلیل تعامل کاربر با انبرای اجرای کوئری های تحلیلی سازگار است.

کاربران هنگام اضافه با حذف یک نود محاسبه‌گر می‌توانند مقیاس بندی این عملکردها را نیز مشاهده نمایند اختصاص منابع به انبار داده توسط واحد DWUs در انبار داده‌ها قابل‌اندازه‌گیری می‌باشد. درواقع  در این واحد مقدار منابع اختصاص داده‌شده به انبار داده مانند CPU  ,حافظه ،IOPSو…  مشخص می‌شود. افزایش این واحد به معنای افزایش منابع و عملکرد می‌باشد. DWUS تضمین می‌کند که :

  1. شما می‌توانید انبار داده‌ی خود را صرف‌نظر از نگرانی درباره‌ی  حجم زیرساخت‌های نرم‌افزاری و سخت‌افزاری مقیاس بندی کنید.
  2. شما قادر خواهید بود که عملکرد DWUs  و بهبود آن را قبل از تغییر محاسبات پیش‌بینی نمایید.
  3. زیرساخت‌های نرم‌افزاری و سخت‌افزاری شما می‌توانند بدون اینکه تأثیر منفی بر روی عملکرد فضای کاری شما داشته باشند، تغییر کنند.
  4. مایکروسافت می‌تواند معماری این سرویس‌ها را فارغ از تأثیرات آن بر روی حجم کار بهبود ببخشد.
  5. مایکروسافت قادر است عملکرد انبار داده را به‌گونه‌ای مطلوب و مقیاس‌پذیر افزایش دهد.

واحد DWUs انبار داده برای این مقیاس بندی ۳ پارامتر  مرتبط با حجم کاری انبار داده را مشخص می‌کند :

اسکن کردن : یک کوئری  انبار داده‌ی استاندارد تعداد زیادی از سطرها را اسکن می‌کند  و پردازش‌های پیچیده‌ای مانند فرآیند  ورودی و خروجی و یا پردازش‌های مرتبط با CPU را اجرا می‌کند.

بارگذاری : با ابن پارامتر داده در اختیار سرویس قرار می‌گیرد. این بارگذاری‌ها هنگامی‌که با Azure data lake همراه شوند ،سریع‌تر انجام می‌گیرند. این پارامتر به‌منظور ارزیابی استرس شبکه برای آن سرویس و با ابعاد CPU در دسترس آن سرویس طراحی‌شده است.

قابلیت CreateTableAsSelect:  این پارامتر امکان کپی کردن جدول را فراهم می‌کند. به این صورت که داده از حافظه خوانده می‌شود و میان نودها انتقال می‌یابد و سپس بر روی حافظه نوشته می‌شود. این توانایی به عملکرد ورودی خروجی ،CPU و شبکه مربوط می‌شود.

ساخته‌شده برمبنایSQL Server:

انبار داده‌ی SQL   بر اساس موتور پایگاه داده س رابطه‌ای SQL ایجادشده و بسیاری از ویژگی‌های مورد انتظار شما از یک پایگاه داده را شامل می‌شود. درصورتی‌که با  پایگاه داده T-SQL آشنایی داشته باشید به‌راحتی می‌توانید این دانش را پیرامون انبار داده‌ها بسط دهید. بعلاوه شما می‌توانید درباره‌ی مؤلفه‌های  زبان اختصاص داده‌شده به انبار داده همان‌طور که در ادامه مطرح‌شده است، فکر کنید:

  1. انبار داده‌ی SQL از TSQL برای اجرا کمک می‌گیرد. همچنین ساختارهای قدیمی SQL مانند procedure ها ,index,… را پشتیبانی می‌کند.
  2. انبار داده‌یSQL از مشخصه‌های جدیدتر مانند clustered columnstore index و حسابرسی اطلاعات و… استفاده می‌کند.
  3. بسیاری از مؤلفه‌های TSQL که اشتراک کمتری با انبار داده دارند و یا برای SQLServer جدید به شمار می‌آیند ممکن است در دسترس نباشد.

حفاظت از داده‌ها:

انبار داده‌ی SQL داده‌ها را در فضای آزاد از حافظه‌ی انبار داده‌ها ذخیره می‌کند. چندین کپی از این داده‌ها در مرکز  محلی داده‌ها قرار داده می‌شود تا به‌صورت شفافی حفاظت از داده‌های اصلی را تضمین نماید. همچنین انبار داده به‌صورت خودکار از فعالیت‌های کاربر بر روی پایگاه داده در فواصل زمانی منظم  با کمک قابلیت snapshot azure storage بک آپ می‌گیرد .

ادغام با ابزارهای مایکروسافت:

این انبار داده  بسیاری از قابلیت‌هایی از SQLServer که کاربر با آن‌ها آشنا است  را به کار می‌گیرد:

  1. ابزارهای قدیمی SQLServer
  2. انبار داده با تمامی  سرویس‌های تحلیل ،سرویس‌های ادغام و سرویس‌های گزارش‌گیری کامل می‌شود.
  3. ابزار برمبنای ابر: انبار داده‌یSQL می‌تواند با انواع سرویس‌های Azure شامل power BI,یادگیری ماشین و … ادغام شود.
  4. ابزارهای شخص ثالث : بسیاری از ابزارهای شخص ثالث می‌توانند با انبار داده‌هایSQL ادغام شوند.

سناریوی data source های ترکیبی :

درواقع poly base به شما امکان نفوذ  به داده‌ها از منابع مختلف را با استفاده از دستوراتی مشابه T-SQL فراهم می‌کند. همچنین امکان اجرای کوئری بر روی‌داده‌های غیر رابطه‌ای و یا انتقال این داده‌های غیر رابطه‌ای به انبار داده‌ی SQL در حافظه‌ی  Azure  وجود دارد :

  1.  برای دسترسی به این داده‌ها از جداول خارجی کمک می‌گیریم .تعریف این  جداول در انبار داده وجود دارد .برای این  منظور می‌توانیم از دستورات و ابزارهایSQL استفاده نماییم.
  2. توانایی دسترسی به حافظه‌ی مورداستفاده توسط HDInsight cluster وجود دارد که امکان دست‌یابی به ابزار رابطه‌ای و غیر رابطه‌ای را فراهم می‌کند.
  3. داده‌ای که توسط polybase خوانده می‌شود می‌تواند در فرمت‌های متفاوتی ازجمله ORC files باشد.

SLA

انبار داده‌ی SQL توافق‌نامه‌ی سطح سرویس و سطح محصول را به‌عنوان سرویس آنلاین مایکروسافت مطرح می‌کند.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *