خانه / کلان داده / هدوپ و فناوریهای مرتبط / مروری بر ابزارهای SQL بر روی هدوپ و کلان داده
SQl_Hadoop

مروری بر ابزارهای SQL بر روی هدوپ و کلان داده

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

از اولین تلاشهایی که در این حوزه انجام شد، هایو (Hive) بود که از فیس بوک نشات گرفت و برای اجرای پرس و جوهای شبه اس کیو ال روی داده های ذخیره شده در هدوپ طراحی شده بود . هایو این دستورات شبه اس کیو ال را تبدیل به دستورات نگاشت و تجمیع (Map Reduce) می کند و آنها را روی کلاستری از گره های محاسباتی اجرا و نتیجه را برمی گرداند.

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

۱. آپاچی هایو : که در بالا به آن اشاره شد، رایجترین راه حل اجرای اس کیو ال روی هدوپ است و تقریباً روی تمام توزیع های هدوپ توسط شرکتهای مختلف، وجود دارد و دستورات آن بسیار شبیه به مای اس کیو ال است. نسخه کلاسیک و اصلی هایو، دستورات فقط خواندنی دارد (امکان تغییر داده ها به کمک آن وجود ندارد) و  هم دستورات را پشت صحنه به مجموعه کارهای نگاشت و تجمیع تبدیل می کند که نسبت به بقیه موتورهای پردازش کلان داده بسیار کندتر است اما امروزه تلاشهایی در حال انجام است تا بتوان آنرا بهینه تر نیز اجرا کرد و موتور پردازش دستورات آن به جای نگاشت و تجمیع کلاسیک ،‌ آپاچی تز (TEZ) یا اسپارک باشد (Hive On Spark). آینده هایو به دلیل رواج گسترده و تلاش شرکتهای مختلف برای بهینه سازی و بهبود آن بسیار روشن دیده می شود و بخصوص ترکیب آن با اسپارک می تواند قدرت پردازش زیادی به شما بدهد.

زبان اس کیو ال مخصوص هایو امروزه با نام Hive-QL شناخته می شود.

۲. استینگر : هورتون ورکز، در حال انجام پروژه ای با نام استینگر با هدف بهبود هایو و افزایش سرعت آن به کسری از ثانیه و افزودن امکان تغییر داده ها و انجام تراکنش به هایو است که به تازگی و از توزیع ۲.۲ هدوپ هورتون ورکز به بعد در اختیار علاقه مندان قرار گرفته است. نقطه منفی این رهیافت،‌تعلق داشتن آن به یک شرکت و عدم رواج آن در توزیع های مختلف هدوپ است .

۳. ایمپالا (Impala)‌: ایمپالا که جزء اولین تلاشها برای غلبه بر محدودیت های هایو توسط شرکت کلودارا (Cloudera) است، مشابه هایو، امکان اجرای دستورات اس کیو ال را به کاربران می دهد و استاندارد Hive-QL را هم پشتیبانی می کند. این پروژه هم مشابه هایو، یک پروژه متن باز محسوب می شود. ایمپالا موتور پردازشی خاص خود را دارد و برای اجرای آن روی یک کلاستر، روی تک تک گره های رایانه ها باید اجراکننده ایمپالا نصب و پیکربندی شود که خود جزء معایب آن می تواند محسوب شود. نقطه ضعف  دیگر آن هم محدود بودن آن به یک تویع خاص هدوپ است و آخرین مشکل آن هم این که برای اجرای بهینه و سریع دستورات در ایمپالا، داده ها باید به قالب Parquet تبدیل شوند که خود نیاز به زمان و هزینه دارد .

در ایمپالا می توان پرس و جوهای تعاملی هم داشت یعنی مثل هایو لازم نیست داده ها ابتدا ذخیره شده باشند که  با اتصال به منابع داده موجود در هدوپ به اجرای دستورات اس کیو ال روی آنها پرداخت و می توان هر زمان نیاز بود، داده ها را وارد کرده و یا تغییر داد.

۴. پرستو (Presto by Facebook) : پرستو هم شبیه به ایمپالا یک پروژه متن باز است که توسط خود فیس بوک که خالق هایو نیز هست،‌ معرفی و به بازار عرضه شده است. این پروژه که مانند امیپالا ماهیت تعاملی دارد و برای قالب داده RCFile‌ بهینه شده است، برای اجرا نیاز به نصب روی تک تک رایانه های تشکیل دهنده کلاستر هدوپ را دارد. نقطه ضعف اصلی که می توان برای پرستو علاوه بر موارد فوق ذکر کرد، عدم پشتیبانی آن توسط شرکتهای اصلی فراهم کننده توزیع های هدوپ است یعنی وظیفه نصب و پیکربندی آنرا خودتان باید انجام دهید و اگر فیس بوک حمایت خود را از آن بردارد،‌ هزینه تغییر آن در زیرساخت های اطلاعاتی به شما تحمیل خواهد شد.

۵. اسپارک اس کیو ال : اسپارک که به عنوان یکی از رو به رشدترین پروژه های بنیاد آپاچی در چند سال اخیر بوده است و توانسته است جایگاه خود را به عنوان موتور پردازشی نوین هدوپ تثبیت کند،‌ زیرپروژه ای به عنوان اسپارک اس کیو ال دارد که امکان تلفیق اسپارک با اس کیو ال را فراهم می کند و سرعت اجرای دستورات را نسبت به هایو کلاسیک، بسیار بالا می برد. این زیرپروژه، از تغییر نام پروژه شارک و ارتقای آن بوجود آمده است و جزء بهترین گزینه های موجود در اجرای اس کیو ال بر روی هدوپ است .

۶. آپاچی دریل (Drill)‌ : این پروژه که توسط شرکت MapR (یکی از چند شرکت اصلی فراهم کننده توزیع های هدوپ) و با الهام گرفتن از دریمل شرکت گوگل، ایجاد شد و امروزه به یکی پروژه های اصلی آپاچی در حوزه تحلیل کلان داده تبدیل شده است، امکان اجرای پرس و جوهای شبه اس کیو ال را بر روی هر نوع منبع داده ای فراهم می کند و بر خلاف رهیافت های قبلی که محدود به اکو سیستم هدوپ بودند، می تواند با انواع مختلف داده ها با حجم بالا کار کند و حتی روی بانکهای NoSQL مانند مانگو دی بی هم قابل استفاده است . نقطه قوت دریل هم همین بخش است که می توانید با دانلود و نصب آن و بدون نصب هیچ کدام از مولفه های هدوپ،‌کار خود را شروع کنید. مثلاً اگر قصد پردازش فایلهای لاگ را دارید، با نصب دریل و با سرعت بالا می توانید به پرس و جو از  فایلهای خود در قالب اس کیو ال بپردازید. (نسخه اول آن اواخر اردیبهشت ۹۴ یعنی حدود دو ماه پیش وارد بازار شده است.) .

اگر رهیافت های قبلی را بتوانیم اس کیو ال برای هدوپ نامگذاری کنیم،‌ دریل در حقیقت اس کیو ال برای هر چیز است .

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

۷. آپاچی فونیکس ( Phoenix) : این پروژه که توسط تولید کننده آن به اس کیو ال برای HBase نام گذاری شده است، یک پوسته اس کیو ال بر روی بانک اطلاعاتی HBase‌ ایجاد می کند و کاربردی خاص منظوره دارد.

۸.   HAWQ for Pivotal HD : اس کیو ال برای هدوپ که توسط شرکت Pivotal HD برای توزیع هدوپ آن شرکت طراحی شده است .

۹ . نسخه اوراکل (Oracle Big Data SQL)

۱۰. نسخه آی بی  ام‌ (IBM BigSQL)

۱۱. …

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

پیشنهاد بنده برای سرمایه گذاری در این حوزه یادگیری HiveQL‌ و کار با آپاچی دریل و اسپارک اس کیو ال است.

پاسخ دهید

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

Time limit is exhausted. Please reload CAPTCHA.