۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

بررسی Ahana Cloud برای Presto: جستجوهای سریع SQL در برابر دریاچه های داده

Ahana Cloud for Presto یک دریاچه داده در آمازون S3 را بدون جابجایی هیچ داده ای به یک انبار داده تبدیل می کند. پرس و جوهای SQL حتی در هنگام پیوستن به چندین منبع داده ناهمگن به سرعت اجرا می شوند.

Ahana Cloud for Presto یک دریاچه داده در آمازون S3 را بدون جابجایی هیچ داده ای به یک انبار داده تبدیل می کند. پرس و جوهای SQL حتی در هنگام پیوستن به چندین منبع داده ناهمگن به سرعت اجرا می شوند.

امید در تجارت پایگاه داده جاودانه می‌آید. در حالی که ما هنوز در مورد انبارهای داده (پایگاه های اطلاعاتی تجزیه و تحلیل سریع، معمولا دارای فضای ذخیره سازی ستونی در حافظه) و ابزارهایی که مرحله ETL را بهبود می بخشند (استخراج، تبدیل و بارگذاری) می شنویم، همچنین در مورد بهبود دریاچه های داده (که داده‌ها را در قالب اصلی خود ذخیره کنید) و فدراسیون داده (ادغام داده‌های بر حسب تقاضا از فروشگاه‌های داده ناهمگن).

Presto به عنوان راهی سریع برای انجام پرسش‌های SQL روی داده‌های بزرگ که در فایل های دریاچه داده قرار دارد. Presto یک موتور جستجوی SQL منبع باز توزیع شده برای اجرای پرس و جوهای تحلیلی تعاملی در برابر منابع داده در هر اندازه است. Presto امکان جستجوی داده‌ها را در جایی که در آن زندگی می‌کند، از جمله Hive، Cassandra، پایگاه‌های داده رابطه‌ای و ذخیره‌های داده اختصاصی را می‌دهد. یک کوئری Presto می تواند داده ها را از چندین منبع ترکیب کند. فیس بوک از Presto برای پرس و جوهای تعاملی در برابر چندین فروشگاه داده داخلی، از جمله انبار داده ۳۰۰PB آنها استفاده می کند.

بنیاد Presto سازمانی است که بر توسعه پروژه منبع باز Presto نظارت دارد. فیسبوک، اوبر، توییتر و علی بابا بنیاد Presto را تأسیس کردند. اعضای اضافی اکنون شامل Alluxio، Ahana، Upsolver و Intel هستند.

Ahana Cloud for Presto، موضوع این بررسی، یک سرویس مدیریت‌شده است که Presto را برای ابر ساده می‌کند. همانطور که خواهیم دید، Ahana Cloud for Presto در آمازون اجرا می‌شود، رابط کاربری نسبتاً ساده‌ای دارد و دارای مدیریت چرخه حیات خوشه‌ای است. در Kubernetes اجرا می شود و بسیار مقیاس پذیر است. دارای کاتالوگ داخلی و ادغام آسان با منابع داده، کاتالوگ ها و ابزارهای داشبورد است.

رقبای Ahana Cloud برای Presto عبارتند از Databricks Delta Lake، Qubole و BlazingSQL. من در پایان مقاله مقایسه خواهم کرد.

معماری پرستو و آهانا

Presto یک پایگاه داده رابطه ای همه منظوره نیست. در عوض، این ابزاری است که برای پرس و جوی کارآمد مقادیر زیادی از داده ها با استفاده از پرس و جوهای SQL توزیع شده طراحی شده است. در حالی که می‌تواند جایگزین ابزارهایی شود که HDFS را با استفاده از خطوط لوله کارهای MapReduce مانند Hive یا Pig جستجو می‌کنند، Presto برای کار بر روی انواع مختلف منابع داده از جمله پایگاه‌های داده سنتی رابطه‌ای و سایر منابع داده مانند Cassandra گسترش یافته است.

نحوه ارزش گذاری خدمات رایانش ابری

به طور خلاصه، Presto برای پردازش تراکنش آنلاین (OLTP) طراحی نشده است، بلکه برای پردازش تحلیلی آنلاین (OLAP) از جمله تجزیه و تحلیل داده ها، جمع آوری مقادیر زیادی از داده ها و تولید گزارش ها طراحی شده است. این می‌تواند طیف گسترده‌ای از منابع داده، از فایل‌ها گرفته تا پایگاه‌های داده را پرس و جو کند و نتایج را به تعدادی از BI و محیط‌های تحلیلی برگرداند.

Presto یک پروژه متن باز است که تحت نظارت فیس بوک کار می کرد. این پروژه در فیس بوک اختراع شد و این پروژه توسط توسعه دهندگان داخلی فیس بوک و تعدادی از توسعه دهندگان شخص ثالث تحت نظارت بنیاد Presto همچنان ادامه دارد.

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

بسته‌های Ahana Cloud مدیریت Presto، یک کاتالوگ ابرداده Hive، یک دریاچه داده میزبانی شده در آمازون S3، مدیریت خوشه‌ای و دسترسی به پایگاه‌های داده آمازون به آنچه که عملاً یک انبار داده ابری در یک پشته باز و تفکیک‌شده است، همانطور که در معماری نشان داده شده است. نمودار زیر رابط Presto Hive دسترسی به ORC، Parquet، CSV و سایر فایل‌های داده را مدیریت می‌کند.

ahana for presto 03

هواپیمای کنترلی Ahana از هماهنگی خوشه‌ای، ثبت گزارش، امنیت و کنترل دسترسی، صورت‌حساب و پشتیبانی مراقبت می‌کند. خوشه‌های Presto و فضای ذخیره‌سازی داخل VPC مشتری قرار دارند.

استفاده از Ahana Cloud برای Presto

Ahana به من یک آزمایشگاه عملی ارائه کرد که به من اجازه داد یک خوشه ایجاد کنم، آن را به منابعی در Amazon S3 و Amazon RDS MySQL متصل کنم، و Presto را با استفاده از SQL از Apache Superset. Superset یک پلت فرم مدرن کاوش و تجسم داده است. من واقعاً بخش تجسم Superset را تمرین نکردم، زیرا هدف تمرین این بود که با استفاده از Presto به عملکرد SQL نگاه کنیم.

ahana for presto 05

وقتی یک خوشه Presto در Ahana ایجاد می‌کنید، انواع نمونه‌های خود را برای هماهنگ‌کننده، متاستور، و کارگران و تعداد اولیه کارگران انتخاب می‌کنید. می توانید تعداد کارگران را بعداً افزایش یا کاهش دهید. از آنجایی که مجموعه داده‌هایی که استفاده می‌کردم نسبتاً کوچک بودند (فقط میلیون‌ها ردیف)، من زحمت فعال کردن حافظه پنهان I/O را که یکی از ویژگی‌های جدید Ahana Cloud است، نکردم.

به قفل شدن فروشنده ابری عادت کنید

ahana for presto 06

پنج کلاسترهای رابط Ahana، خوشه‌های فعال، معلق و غیرفعال شما را نشان می‌دهد. کنسول PrestoDB وضعیت خوشه در حال اجرا را نشان می دهد.

فرآیند افزودن منابع داده را کمی آزاردهنده دیدم زیرا نیاز به ویرایش رشته‌های URI و رشته‌های پیکربندی JSON داشت. اگر رشته‌ها از تکه‌هایی در کادرهای متنی مجزا جمع‌آوری می‌شدند، به‌ویژه اگر جعبه‌های متن به‌طور خودکار پر می‌شدند، راحت‌تر بود.

ahana for presto 07

ایجاد کاتالوگ و تبدیل از فرمت CSV به ORC برای ۲۶.۲ میلیون ردیف رتبه بندی فیلم، کمتر از یک دقیقه طول کشید. پرس و جو از یک فایل ORC بسیار سریعتر از درخواست یک فایل CSV است. برای مثال، شمارش فایل ORC 2.5 ثانیه طول می کشد، در حالی که شمارش فایل CSV 48.6 ثانیه طول می کشد.

ahana for presto 08

این جستجوی فدرال رتبه‌بندی فیلم‌ها را در قالب ORC با داده‌های فیلم در جدول پایگاه داده MySQL می‌پیوندد تا فهرستی از رتبه‌بندی‌ها، تعداد و محبوبیت را به دهک‌ها تقسیم کند. ۱۰ ثانیه طول کشید.

ahana for presto 09

این پرس‌وجو محبوب‌ترین فیلم‌ها را در پایگاه داده فدرال با توضیحاتی که به سلاح‌ها اشاره می‌کند و همچنین بودجه فیلم‌ها را گزارش می‌کند، محاسبه می‌کند. پرس و جو ۷.۵ ثانیه طول کشید.

چگونه Ahana Presto را با یادگیری ماشین و یادگیری عمیق ادغام کنیم

چگونه مردم Ahana Presto را با یادگیری ماشینی و یادگیری عمیق ادغام می کنند؟ معمولاً، به جای استفاده از Superset به عنوان مشتری، آنها از یک نوت بوک استفاده کنید، خواه Jupyter یا Zeppelin. برای انجام پرس و جوی SQL، آنها از پیوند JDBC به موتور جستجوی Ahana Presto استفاده می کنند. سپس خروجی از پرس و جوی SQL، بسته به چارچوب مورد استفاده، ساختار یا چارچوب داده مناسب را برای استفاده در یادگیری ماشین پر می کند.

ویژگی های جدید Ahana Cloud برای Presto

نسخه Ahana Cloud I دارای بهبودهایی بود که در ۲۴ مارس ۲۰۲۱ اعلام شد. این موارد شامل بهبودهای عملکردی مانند حافظه پنهان I/O داده و بهینه‌سازی جستجوی تنظیم‌شده و بهبودهای سهولت استفاده از قبیل ارتقاء خودکار و نسخه‌شده Ahana بود. صفحه محاسباتی.

من خودم از همه آنها استفاده نکردم. به عنوان مثال، من ذخیره داده lake I/O را فعال نکردم زیرا جدول data lake که استفاده می‌کردم خیلی کوچک بود و به اندازه کافی با Ahana وقت صرف نکردم تا نسخه ارتقاء یافته را ببینم.

Ahana Cloud برای Presto در مقابل رقبا

به طور کلی، Ahana Cloud for Presto راه خوبی برای تبدیل یک دریاچه داده در Amazon S3 به چیزی است که عملاً یک انبار داده بدون جابجایی داده است. استفاده از Ahana Cloud از بسیاری از کارهای مورد نیاز برای راه اندازی و تنظیم Presto و Apache Superset جلوگیری می کند. پرس و جوهای SQL به سرعت در Ahana Cloud for Presto اجرا می شوند، حتی زمانی که آنها به چندین منبع داده ناهمگن می پیوندند.

3 برد و 3 باخت برای رایانش ابری

Databricks Delta Lake از فناوری‌های مختلفی برای انجام برخی از کارهای مشابه استفاده می‌کند. Ahana Cloud برای Presto. تمام فایل های Databricks Delta Lake در قالب Apache Parquet هستند و Delta Lake از Apache Spark برای پرس و جوهای SQL استفاده می کند. مانند Ahana Cloud for Presto، Databricks Delta Lake می‌تواند جستجوهای SQL را با یک کش یکپارچه سرعت بخشد. با این حال، دلتا لیک نمی تواند پرس و جوهای فدرال را انجام دهد.

Qubole، یک پلتفرم داده بومی ابری برای تجزیه و تحلیل و یادگیری ماشینی، به شما کمک می‌کند تا مجموعه‌های داده را از دریاچه داده دریافت کنید، طرح‌واره‌هایی را با Hive بسازید، داده‌ها را با Hive، Presto، Quantum و پرس و جو کنید. / یا Spark، و به مهندسی داده و علم داده خود ادامه دهید. می‌توانید از نوت‌بوک‌های Zeppelin یا Jupyter و گردش‌های کاری Airflow استفاده کنید. علاوه بر این، Qubole به شما کمک می کند هزینه های ابری خود را به روشی مستقل از پلت فرم مدیریت کنید. برخلاف Ahana، Qubole می‌تواند روی AWS، Microsoft Azure، Google Cloud Platform و Oracle Cloud اجرا شود.

BlazingSQL روشی حتی سریع‌تر برای اجرای پرسش‌های SQL، با استفاده از پردازنده‌های گرافیکی Nvidia و اجرای SQL بر روی داده‌های بارگذاری شده در حافظه GPU. BlazingSQL به شما امکان می دهد داده های خام ETL را مستقیماً در حافظه GPU به عنوان DataFrames GPU وارد کنید. هنگامی که DataFrames GPU را در حافظه GPU دارید، می‌توانید از RAPIDS cuML برای یادگیری ماشین استفاده کنید، یا DataFrames را به DLPack یا NVTabular برای یادگیری عمیق درون GPU با PyTorch یا TensorFlow تبدیل کنید.

Ahana Cloud for Presto جایگزین ارزشمندی برای رقبای خود است و راه‌اندازی و نگهداری آن آسان‌تر از استقرار Presto منبع باز است. مطمئناً ارزش تلاش یک آزمایش رایگان را دارد.

هزینه: ۰.۲۵ دلار/ساعت Ahana Cloud Credit (ACC). به ماشین حساب قیمت و جدول هزینه‌های نمونه. مثال: Presto Cluster 10 x r5.xlarge اجرا در هر روز کاری ۲۵۶ دلار در ماه هزینه دارد.

پلتفرم: در سرویس Amazon Elastic Kubernetes اجرا می‌شود.