آپاچی Kudu یک موتور ذخیره سازی منبع باز است که تحت نظارت بنیاد نرم افزار آپاچی اداره می شود. این فناوری برای پر کردن شکاف بین سیستمهای ذخیرهسازی با دسترسی متوالی با توان عملیاتی بالا مانند HDFS و سیستمهای دسترسی تصادفی با تاخیر کم مانند HBase یا Cassandra طراحی و اجرا شده است.
آپاچی Kudu به گونه ای طراحی شده که با اکوسیستم هدوپ سازگار است و با سایر چارچوب های پردازش داده مانند Spark، Impala و MapReduce به راحتی ادغام می شود.
آپاچی Kudu از نقاط مثبت HBase و Parquet استفاده می کند. در دریافت داده ها به همان سرعت HBase است و وقتی صحبت از پرس و جوهای تحلیلی به میان می آید تقریباً به سرعت Parquet است.
این موتور ذخیره سازی برای کار با داده های ساخت یافته در نظر گرفته شده است که از دسترسی تصادفی داده ها با تاخیر کم پشتیبانی می کند.
در Kudu داده ها به صورت جدولی با شمای مشخصی ذخیره می شوند. در واقع مدل داده در Kudu، مدل رابطهای است. این فناوری به کاربران اجازه میدهد تا دادهها را به همان روشی که در یک پایگاه داده رابطهای دستکاری می کنند مانند درج، بهروزرسانی و حذف داده ها، عمل کنند. علاوه بر این جستجوی سریع داده ها را امکان پذیر می کند به همین خاطر بیشتر برای کارهای تحلیلی مورد استفاده قرار می گیرد.
به طور کلی برای اینکه داده ها همیشه در دسترس باشند، Kudu از الگوریتم Raft Consensus برای تکرار عملیات استفاده می کند. این الگوریتم تضمین می کند که هیچ داده ای به دلیل خرابی دستگاه از بین نمی رود؛ بنابراین وقتی ماشینی از کار میافتد، کپیها در عرض چند ثانیه خود را مجدداً پیکربندی میکنند تا دسترسی پذیری داده ها حفظ شود.
داده ها در Kudu به صورت ستونی (Columnar) ذخیره می شوند. ذخیره سازی ستونی امکان رمزگذاری و فشرده سازی هر یک از ستون ها را به صورت کارآمد فراهم می کند. علاوه بر این عمل جستجو بر اساس مقادیر یک ستون می تواند با سرعت بسیار بالایی انجام شود و همچنین مدل ذخیره سازی ستونی به طور چشمگیری زمان مراجعه به دیسک را برای پرس و جوهای تحلیلی کاهش می دهد.
به طور کلی Kudu برای انجام عملیات سریع در خواندن/نوشتن، دسترسی انبوه و تصادفی ایجاد شده است و سازگاری آن با موتورهای استاندارد SQL، استفاده از آن را به همراه بقیه اکوسیستم هدوپ آسان می کند.
و در آخر...
به یاد داشته باشید که Kudu قرار نیست جایگزین فناوری هایی مانند HDFS ،HBase یا موارد دیگر شود. هر یک از اینها موارد استفاده منحصر به فرد خود را دارند. با این حال انتخاب ابزار مناسب بر اساس نیازتان بر عهده شماست.
منابع:
https://kudu.apache.org/overview.html https://databricks.com/glossary/apache-kudu https://lewisdgavin.medium.com/apache-kudu-in-5-minutes-91e9371a4f8f https://www.linkedin.com/pulse/apache-kudu-storage-big-data-analytics-part1-balaji-rajagopalan/