Big Data vs SQL Server

Big Data vs SQL Server

SQL  یکی از ابزارهای همه کاره در کار با دیتابیس های رابطه ای محسوب میشود. SQL  حدود 40 سال پیش توسعه داده شد و بخاطر راحتی انجام عملیات CRUD  در آن و کارایی بسیار بسرعت محبوب گشت. کم کم رقبا دیگر هم وارد میدان شدن و رقابت بین مایکروسافت با SQL Server؛ اوراکل با پایگاه داده اوراکل؛ و MySQL، توسعه یافته توسط Sun که در حال حاضر نیز متعلق به اوراکل است شروع شد. با این حال، اگر به عنوان خواننده ای متواضع در حوزه فن آوری باشید ممکن است بدانید که Big DATA افق روشنی دارد.  چیزی که مسلم هست اینه که، برنامه های کاربردی داده های بزرگ حداقل در زمان های اخیر با الگوریتم MapReduce  گوگل ایجاد شده اند  و با سرعت فوق العاده ای در حال گسترش محصولات مختلف هستند. بطوری که حالا با یک جستجو در گوگل، می توانید تعداد زیادی از مقالات که مفاهیم  Big DATA را بیان می کنند، پیدا کنید.  کار با داده های حجیم باعث ایجاد و توسعه مفهمومی به نام  NoSQL شد که قابلیت کار با حجم بسیار عظیمی از داده ها را داراست و در کار با داده ها به صورت بسیار ساده و روان از XML یا JSON استفاده میشود.


مقایسه فرمت دخیره سازی در دیتابیس های رابطه ای و NoSQL
میخواهیم بدانیم، تفاوت بین داده های ارتباطی و داده های غیر وابسته - یا SQL و NoSQL چیست؟
داده های رابطه ای در سطح پایه توسط یک سری از موجودیت ها به عنوان جدول تعریف میشوند که حاوی ستون ها و ردیف ها هستند، و بوسیله ویژگی های مشترک خود با سایر جداول ارتباط برقرار میکنند. شما میتوانید گزارشات مختلفی بر اساس این ارتباطات ایجاد کنید و از این اطلاعات ساده می توانید تصمیمات تجاری خوبی بگیرید به عبارت دیگر استفاده از این امکانات برای ایجاد گزارش و تصمیم گیری بی پایان هستند.
داده های غیر رابطه ای، همانطور که واضح است در جداول ذخیره نمی شوند. اغلب "داده های بدون ساختار" نیز نامیده می شود، این داده ها شامل سوابق جداگانه ای با ویژگی هایی هستند که اغلب در هر رکورد متفاوت هستند. استانداردهایی مانند XML و JSON برای این کار برای ایده آل هستند. بنابراین اطلاعات بزرگ در هنگام کار با داده های بدون ساختار بسیار خوب است
جستجو در داده ها
بگذارید به الگوریتم های جستجوی داده ها نگاه کنیم. در یک مدل NoSQL مانند Hadoop که تعداد زیادی متغییر در برای موضوع خاص وجود دارد از الگوی MapReduce برای جستجو استفاده میشود.
 Hadoop یک چارچوب است که با آن می توان نرم افزار های توزیع شده برای پردازش توزیعی تولید کرد به گونه ای که این نرم افزارها قابل اعتماد و قابل توسعه باشند. Hadoop می تواند بر روی یک سرور یا بر روی چند هزار کامپیوتر پیاده سازی شود. MapReduce یک روش پردازش داده ها بصورت موازی است که از روی آن فریمورکی با همین نام ساخته شده است که در Hadoop برای پیاده سازی منطق پردازش داده ها از آن استفاده می شود. این فریمورک کمک می کند تابتوان برنامه هایی تولید کرد که بتوانند داده ها را بصورت موازی بر روی یک کلاستر بزرگ از رایانه های معمولی با چند هزار گره پردازش کنند و دارای تحمل خطای بسیار بالایی باشند.
اما داده های رابطه ای میشوند بجای اینکه  در سرورهای متعدد نگهداری شوند ترجیحا در یک سرور متمرکز ذخیره میشوند. در یک مدل رابطه ای، جستجو برای داده ها بسیار کارآمد است.
نوشتن و خواندن
نوشتن در سیستم های اطلاعاتی بزرگ مانند Hadoop بسیار سریعتر از دیتابیس های رابطه ای است. علت این امر این است که در این سیستم ها نوشتن بصورت asynchronously انجام میشود و سیستم توقفی برای اینکه نتیجه عملیات چیست ندارد. در حالی که در سیستم های رابطه ای نوشتن نوعی تعهد محصوب میشود نتیجه کار باید مشخص شود در صورت عدم موفقیت عملیات باید اصلاح شوند.
اما در مورد خواندن اطلاعات چطور؟ همانطور که در بالا بیان شد، خواندن داده ها بزرگ طولانی تر از خواندن از یک مجموعه منظم است. چرا که شکا در یک ساختار رابطه ای میتوانید  کوئری را بشکنید، بهینه کنید و فیلتر نمایید در نتیجه خواندن اطلاعات بهینه تر خواهد بود.
هزینه های مالکیت
اگر چه استفاده از پلاتفرم های Big Data مثل Hadoop رایگان است اما این بدین معنا نیست که وقعا هزینه صورت نمیگیرد. هزینه استقرار و برقراری امنیت از مسائل مهم در این مقوله است چرا که بدلیل Open Source بودن هر کسی از نحوه علمکرد آنها اطلاع دارد درنتیجه نیاز به راهکارهای بیشتری برای حفظ امنیت داریم. فراموش نکنیم که facebook  با حجک زیادی از اطلاعات هنوز هم از NoSQL استفاده نمیکند و از دیتابیس های رابطه ای استفاده میکند.

 

مرتضی جنگجو

برنامه نویس fullstack با بیش از 14 سال سابقه کار و همکاری در توسعه و پیاده سازی نرم افزارهای تحت وب با تکنولوژی Net. در شرکتهای بزرگ ایرانی، هلندی، فنلاندی و ترکیه

شبکه های اجتماعی نویسنده

دیدگاه کاربران