Presto (موتور پرس و جو SQL) کیست؟ توضیح بده.
Presto (شامل PrestoDB و PrestoSQL که به Trino تغییر نام داد) یک موتور جستجوی توزیع شده برای داده های بزرگ با استفاده از زبان کوئری SQL است. معماری آن به کاربران اجازه می دهد تا منابع داده مانند Hadoop ، Cassandra ، Kafka ، AWS S3 ، Alluxio ، MySQL ، MongoDB و Teradata را پرس و جو کنند، و امکان استفاده از چندین منبع داده را در یک کوئری فراهم می کند. Presto یک نرم افزار منبع باز جامعه محور است که تحت مجوز آپاچی منتشر شده است.Presto در اصل در Facebook, Inc. (که بعداً به Meta تغییر نام داد) برای تحلیلگران داده طراحی و توسعه داده شد تا کوئری تعاملی را در انبار داده بزرگ خود در Apache Hadoop اجرا کنند. چهار توسعه دهنده اول مارتین تراورسو، داین ساندستروم، دیوید فیلیپس و اریک هوانگ بودند. قبل از Presto، تحلیلگران داده در فیس بوک برای اجرای تجزیه و تحلیل SQL در انبار داده چند پتابایتی خود به Apache Hive متکی بودند. Hive برای مقیاس فیس بوک بسیار کند تلقی می شد و Presto برای پر کردن شکاف برای اجرای سریع کوئری ها اختراع شد. توسعه اولیه در سال 2012 آغاز شد و در اواخر همان سال در فیس بوک مستقر شد. در نوامبر 2013، فیس بوک انتشار متن باز خود را اعلام کرد.در سال 2014، نتفلیکس فاش کرد که از Presto بر روی 10 پتابایت داده ذخیره شده در سرویس ذخیره سازی ساده آمازون (S3) استفاده کرده است. در نوامبر 2016، آمازون سرویسی به نام Athena را معرفی کرد که بر اساس Presto بود. در سال 2017، Teradata شرکتی به نام Starburst Data را برای حمایت تجاری از Presto ایجاد کرد که شامل کارکنانی بود که در سال 2014 از Hadapt به دست آمده بودند. نرم افزار QueryGrid Teradata به Presto اجازه دسترسی به پایگاه داده رابطه ای Teradata را داد.در سپتامبر 2019، فیسبوک PrestoDB را به بنیاد لینوکس اهدا کرد و بنیاد Presto را تأسیس کرد. نه سازندگان Presto و نه از مشارکت کنندگان و متعهدان برتر، برای پیوستن به این بنیاد دعوت نشدند.تا سال 2020، هر چهار توسعه‌دهنده اصلی Presto به Starburst پیوستند. در دسامبر 2020، PrestoSQL به Trino تغییر نام داد، زیرا فیس بوک یک علامت تجاری با نام "Presto" (همچنین به بنیاد لینوکس اهدا شده بود) به دست آورده بود.شرکت دیگری به نام Ahana در سال 2020 برای تجاری سازی فورک PrestoDB به عنوان یک سرویس ابری اعلام شد و در سال 2023 توسط IBM خریداری شدمعماری.معماری Presto بسیار شبیه به سایر سیستم های مدیریت پایگاه داده با استفاده از محاسبات خوشه ای است که گاهی اوقات پردازش موازی گسترده (MPP) نامیده می شود. یک هماهنگ کننده، هماهنگ با چندین کارگر کار می کند. کلاینت‌ها بیانیه‌های SQL را که تجزیه و برنامه‌ریزی شده‌اند، ارسال می‌کنند و به دنبال آن وظایف موازی برای کارگران برنامه‌ریزی می‌شوند. کارگران به طور مشترک ردیف هایی را از منابع داده پردازش می کنند و نتایجی را تولید می کنند که به مشتری بازگردانده می شود. در مقایسه با مدل اصلی اجرای Apache Hive که از مکانیزم Hadoop MapReduce در هر کوئری استفاده می‌کرد، Presto نتایج میانی را روی دیسک نمی‌نویسد و در نتیجه سرعت مقدار قابل توجهی بهبود می‌یابد. Presto به زبان جاوا نوشته شده است.یک کوئری Presto می تواند داده ها را از چندین منبع ترکیب کند. Presto اتصال دهنده هایی را به منابع داده از جمله فایل ها در Alluxio ، سیستم فایل توزیع شده Hadoop (که اغلب به آن دریاچه داده می گویند)، Amazon S3 ، MySQL ، PostgreSQL ، Microsoft SQL Server ، Amazon Redshift ، Apache Kudu ، Apache Phoenix ، Apache Kafka ، Apache Casandra ، ارائه می دهد. Accumulo ، MongoDB و Redis . برخلاف سایر ابزارهای توزیع خاص Hadoop، مانند Apache Impala ، Presto می‌تواند با هر نوع Hadoop یا بدون آن کار کند. Presto از جداسازی محاسبات و ذخیره سازی پشتیبانی می کند و ممکن است در محل یا با استفاده از محاسبات ابری مستقر شود.