پرستو دی بی (PrestoDB) چیست؟
calendar_today
Dec 07, 2024
schedule
1 دقیقه مطالعه
PrestoDB چیست؟
PrestoDB یک موتور جستجوی SQL توزیعشده و متنباز است که ویژه انجام جستجوهای تحلیلی سریع بر روی دادههای با حجم متفاوت طراحی شده است. این سیستم از منابع غیررابطهای مانند سیستم فایل توزیع شده و همچنین منابع داده رابطهای پشتیبانی میکند. پرستو به دادهها در محل ذخیرهسازی آنها، بدون اینکه نیازی به انتقال دادهها به یک سیستم تحلیلی جداگانه باشد، دسترسی دارد. اجرای جستجو بهصورت موازی بر روی یک ساختار مبتنی بر حافظه خالص انجام میشود و بیشتر نتایج در عرض چند ثانیه ارائه میشوند. بسیاری از شرکتهای معروفی مانند Facebook، Airbnb، Netflix، Atlassian و Nasdaq از آن استفاده میکنند.تاریخچه PrestoDB
پرستو بهعنوان یک پروژه در Facebook برای جستجوهای تحلیلی تعاملی بر روی یک انبار داده 300 پتابایتی که با خوشههای بزرگ Hadoop/HDFS ساخته شده بود، شروع شد. قبل از توسعه آن، Facebook از Apache Hive استفاده میکرد که در سال 2008 ایجاد شد تا نحوه ادغام SQL در اکوسیستم Hadoop را معرفی کند. Hive تأثیر قابل توجهی بر اکوسیستم Hadoop داشت و کارهای پیچیده جاوا را به جستجوهای ساده SQL تبدیل می کرد و توانایی اجرای کار در مقیاس بالا را داشت. با این حال، برای عملکرد سریع در جستجوهای تعاملی بهینهسازی نشده بود. در سال 2012، گروه زیرساخت دادههای Facebook پرستو را توسعه داد؛ یک سیستم جستجوی تعاملی که میتوانست بهسرعت در مقیاس پتابایتی کار کند. این سیستم در بهار 2013 در سراسر شرکت معرفی شد. در نوامبر 2013، Facebook، پرستو را تحت مجوز نرمافزار Apache باز کرد و آن را برای دانلود در GitHub در دسترس قرار داد. امروزه، پرستو به یک انتخاب محبوب برای انجام جستجوهای تعاملی بر روی Hadoop تبدیل شده و از سوی Facebook و سایر سازمانها استفاده می شود. بیش از هزار کارمند در Facebook پرستو را پیاده سازی می کنند. آن ها روزانه بیش از 30000 جستجو انجام میدهند و یک پتابایت داده را پردازش میکنند.PrestoDB چطور کار میکند؟
پرستو یک سیستم توزیعشده است که بر روی Hadoop اجرا میشود و از ساختاری مشابه سیستمهای مدیریت پایگاه داده پردازش موازی کلان (MPP) استفاده میکند. این سیستم دارای یک نود (گره) هماهنگکننده است که با چندین نود کارگر همزمان کار میکند. کاربران، جستجوی SQL خود را به نود هماهنگکننده ارسال میکنند که از یک موتور جستجو و اجرای سفارشی برای تفکیک، برنامهریزی و زمانبندی یک طرح جستجوی توزیعشده در میان نودها استفاده میکند. این سیستم بهگونهای طراحی شده است که از معانی استاندارد ANSI SQL پشتیبانی کند، از جمله جستجوهای پیچیده، تجمیعها، پیوندها، پیوندهای خارجی چپ/راست، زیر جستجوها، توابع پنجرهای، شمارشهای متمایز و صدکهای (Percentile) تقریبی. پس از جمعکردن جستجوها، پرستو درخواست را طی مراحل مختلف در میان نودهای پایانی پردازش میکند. تمام پردازشها در حافظه انجام میشود و بین مراحل در شبکه بهصورت خطی منتقل میشود تا از هرگونه بار I/O غیرضروری جلوگیری شود. افزودن نودهای بیشتر به موازیسازی بیشتر و پردازش سریعتر کمک میکند. برای اینکه پرستو در هر منبع دادهای قابلاستفاده باشد، با انتزاع ذخیرهسازی طراحی شده است تا ساخت اتصالات قابل افزونه آسان باشد. به همین دلیل، پرستو دارای اتصالات زیادی است، از جمله به منابع غیررابطهای مانند سیستم فایل توزیعشده Hadoop (HDFS)، Amazon S3، Cassandra، MongoDB و HBase و همچنین منابع رابطهای مانند MySQL، PostgreSQ ، Amazon Redshift، Microsoft SQL Server و Teradata. دادهها در محل ذخیرهسازی خود جستجو میشوند و نیازی به انتقال آنها به یک سیستم تحلیلی جداگانه نیست.Presto و Hadoop چه تفاوتهایی دارند؟
پرستو یک موتور جستجوی SQL توزیعشده و متنباز است که برای جستجوهای سریع و تعاملی بر روی دادهها در HDFS و سایر منابع طراحی شده است. بر خلاف Hadoop/HDFS، پرستو دارای سیستم ذخیرهسازی مستقل نیست؛ بنابراین، مکمل Hadoop است و سازمانها هر دو را برای حل چالشهای وسیعتر تجاری به کار میبرند. پرستو میتواند با هر پیادهسازی از Hadoop نصب شود و در توزیع Amazon EMR Hadoop بستهبندی شده است. کاربران Presto پرستو در مقیاس بسیار بزرگ در بسیاری از سازمانهای معروف در حال استفاده است. شما میتوانید از آن در Facebook، Airbnb، Netflix، Atlassian، Nasdaq و غیره استفاده کنید. بیش از هزار کارمند پرستو را در Facebook پیاده سازی می کنند. آن ها روزانه بیش از 30000 جستجو انجام میدهند و یک پتابایت داده را پردازش میکنند. بهطور متوسط، Netflix روزانه حدود 3500 جستجو در خوشههای پرستو خود انجام میدهد .Airbnb ابزار اجرای جستجوی مبتنی بر وب به نام Airpal را ساخته که روی پرستو کار میکند. جامعه بزرگ کاربران پرستو را میتوان در این فروم و در صفحه پرستو در Facebook یافت. پیادهسازی Presto در فضای ابر پرستو یک بار کاری ایدئال در ابر است، زیرا ابر عملکرد، مقیاسپذیری، قابلیت اطمینان، دسترسپذیری و صرفهجویی اقتصادی خوبی را فراهم میکند. یک خوشه پرستو در عرض چند دقیقه راهاندازی میشود و نیازی به نگرانی درباره تأمین نود، راهاندازی خوشه، پیکربندی پرستو یا تنظیم خوشه نیست.اشتراک این مقاله
پستهای مرتبط
سایر دسته ها
استراتژی جدول سایه (Shadow Table Strategy) چیست؟
سایر دسته ها
قدرت اکوسیستمهای API-محور برای تحقق پایداری چگونه مورد استفاده قرار میگیرد؟
دیدگاهها (0)
برای ثبت دیدگاه لطفاً وارد شوید.
ورودهنوز دیدگاهی ثبت نشده است. اولین نفر باشید!