با در نظر گرفتن یک معیار جدید در آزمایشات، سه موتور پیشتاز SQL-on-Hadoop با عنوان های Apache Impala 2.3, Apache Spark 1.6, Apache Hive 1.2 از نقاط قوت و ضعف منحصربه فردی برخوردار میباشند که استفاده از آنها در برخی برنامههای هوش تجاری یا (Business Intelligence (BI بسیار مناسب بوده و برای برخی دیگر، کاربرد کمتری دارد. البته موتورهای SQL-on-Hadoop دیگری نیز وجود دارد که تا کنون روی آن ها بررسی صورت نگرفته است.
Dave Mariani، مدیرعامل و موسس Atscale به عنوان شرکت متخصص در زمینه ارائه BI بر روی Hadoop، اظهار نمود که نتیجهگیری واقعی آن است که یک Engine، نمی تواند برای تمام شرایط و موقعیتها مناسب و پاسخگو باشد. وی افزود: کاری که ما برای مشتریان خود انجام دادیم، ارائه موتورهای متعدد می باشد.
Atscale در برنامه هوش تجاری بر اساس معیار Hadoop، به ارزیابان تکنولوژی جهت انتخاب بهترین تکنولوژی SQL-on-Hadoop برای BI مورد نظر آنها کمک مینماید. تیم آزمایش Atscale از مجموعه دادههای Star Schema Benchmarkیا SSB مبتنی بر دادههای پرکاربرد TPCH استفاده نمود و برای اصلاح آن، دقت بیشتری به خرج داد تا یک طرح نمونهی BI محور را از دادهها ارائه نماید. مجموعه دادهها این امکان را برای تیم آزمایش فراهم می سازد تا جستجو در جدولهای بزرگ را آزمایش و بررسی نمایند: جدول ترتیب خطی، دربرگیرنده تقریبا شش بیلیون ردیف و جدول مشتریان شامل بیش از یک بیلیون ردیف میباشد.
موتورهای SQL-on-Hadoop دارای بارکاری Sweet Spot متفاوتی هستند.
Mariani عنوان میکند که AtScale جهت ارزیابی موتورهای SQL-on-Hadoop و سازگاری آنها برای جبران بارکاری BI، سه شرایط مهم و کلیدی را مورد توجه قرار میدهد:
- اجرا بر روی Big Data. موتورهای SQL-on-Hadoop باید قابلیت تحلیل بیلیونها یا تریلیونها ردیف داده را به صورت پایدار داشته باشند، با توجه به اینکه این فرایند باید بدون خطا و با ترتیب زمان پاسخگویی 10 یا 100 ثانیه باشد.
- سریع برای دادههای کوچک. موتور باید عملکرد تعاملی را بر اساس یک الگوی جستجوی مشخص ارائه نماید، در همین راستا مهم است که موتور SQL-on-Hadoop نتایج مربوط به مجموعه دادههای کوچک را در عرض کمتر از چند ثانیه نشان دهد.
- پایدار برای بسیاری از کاربران. کاربر سازمانی BI شامل صدها یا حتی هزاران ایجاد کننده داده می باشد. بنابراین موتور اصلی SQL-on-Hadoop باید تحت شرایط بارکاری برای تحلیلِ کاملا هم زمان، به گونهای مطلوب عمل نماید.
Mariani به عنوان فردی که فرآیند ساخت بزرگترین مکعب OLAP جهان را برای BI در Yahoo هدایت میکند، معتقد است، این سه معیار حاکی از شرایط اولیهای است که یک شرکت متوسط باید برای انجام BI بر روی Hadoop دارا باشد. این معیارها حاصل تجربیات تیم آزمایش، در نتیجهی همکاری با تعداد زیادی از شرکتها در بخش خدمات مالی، بهداشت و سلامت، خردهفروشی، ارتباطات راه دور و صنایع دیگر بود.
Josh Klahr، معاون مدیر تولید شرکت AtScale افزود: برای ارائه اطلاعات و مدارک از تجربیات واقعی شرکتها که هر ارزیابی میتواند آن را به عنوان بخشی از فرایند ارزیابی خود به کار گیرد، استفاده نمودیم.
تیم آزمایش دریافتند که هر سه موتور اشاره شده در این خبر، آزمایشهای مورد نظر را پشت سر گذاشته و برای پشتیبانی از بارکاری BI به اندازه کافی پایدار میباشند؛ اما نکته مهم آنجا بود که دریافتند، یک موتور نمیتواند پاسخگوی تمامی نیازها باشد. هر یک از موتورها، نقطه قوت مخصوص به خود را دارا میباشند و ممکن است شرکتها این موضوع را دریابند که استفاده ترکیبی از تمامی موتورها در راستای اهداف آنها می تواند نتیجه مطلوب تری ارائه دهد.
با توجه پیش فرض بودن استفاده از Hive برای SQL-on-Hadoop مطابق با معیارهای فوق، به عنوان کندترین موتور محسوب شده و برای جستجوهای تعاملی اصلا مناسب نمیباشد.
Mariani عنوان میکندکه اگر قصد کاربرد انحصاری Hive Tez را به عنوان موتور جستجوی تعاملی دارید، بهترین کاری که میتوانید انجام دهید در زمان 2.4 ثانیه می باشد.
اما Hive در عین کند بودن، پایدارترین موتور در میان این سه موتور به شمار رفته و بیشترین سازگاری را در انواع مختلف جستجو داراست.
وی افزود با اینکه Hive Tez بسیار کند عمل میکند اما همواره کار را به اتمام میرساند و بسیار قابل اطمینان میباشد، اگرچه این فرآیند به شیوهای سریع و ویژه صورت نمیگیرد.
همچنین هنگامی که مجموعه دادههای کوچکتری مورد نظر باشند، Impala و Spark بهترین گزینهها به شمار میروند. Impala ازنظر وسعت و گستردگی بارکاری، بالاتر از Spark قرار دارد؛ اما Mariani خاطر نشان میکند که Spark 1.6 نسبت به نسخه 1.5 دارای بهبود قابل توجهی در عملکرد بوده و انتظار می رود که این روند ادامه یابد؛ زیرا Spark یک مجموعه بزرگ و Open Source را با تمرکز بر توسعه و پیشرفت مهیا نموده است. Cloudera اخیرا Impala را به بنیاد نرمافزار Apache ارائه نموده است و میتواند حرکتهای بیشتری را در راستای توسعه و رشد آن انجام دهد.
در حال حاضر، Impala در صدر کاربری و استفاده قرار دارد که این مساله مستلزم حجم زیادی از کاربران میباشد.
Mariani عنوان میکند که Impala در کنار موتورهای دیگر پیشتاز بوده و اگر قرار است گروه بزرگی از کاربران جستجوهای کوچک و سریع انجام دهند، Impala گزینه بسیار بهتری نسبت به Spark خواهد بود.
وی در ادامه افزود: اگر قابلیت اطمینان و اعتبار به جای سرعت در اولویت قرار داشته باشند، استفاده از Hive Tez برای موتور Pipeline دادهها مدنظر قرار میگیرد. در ضمن برای بارکاری زیاد نیز Hive Tez انتخاب میشود. در صورت تمایل به ایجاد دسترسیِ کاربران BI به Warehouse نیز گزینه Spark یا Impala انتخاب میشود.
Mariani اشاره میکند این تیم به ارزیابی و بررسی موتورهای دیگر از جمله Apache Drill یا Apache Presto نپرداخته است اما در مرحله بعدی آزمایشات حتما به این موضوع نیز خواهد پرداخت.