ArangoDB یک پایگاهداده چند مدل است توسعهیافته توسط ArangoDB GmbH ، این به آن پایگاهداده جهانی گفته میشود از سیستم پایگاهداده از سه مدل داده پشتیبانی میکند (کلید / مقدار، اسناد، گرافیک) با یک هسته پایگاهداده و یک زبان جستجوگر واحد AQL (ArangoDB Query Language). زبان پرسش اعلانی است و ترکیبی از الگوهای مختلف دسترسی به دادهها را در یک جستجوی واحد امکانپذیر میکند.
ArangoDB یک سیستم پایگاهداده NoSQL است اما AQL از بسیاری جهات به SQL شباهت دارد. روشهای ذخیره داده مطابق با الزامات ACID (اتمی ، سازگاری ، جداسازی، قابلیت اطمینان) هستند، از تراکنشها پشتیبانی میکنند و مقیاسپذیری افقی و عمودی را فراهم میکنند.
در مقایسه با سایر دیتابیسهای، یکی از NoSql مزایای بسیار مهم ArangoDB همین مورد است.. ArangoDB از تراکنشهای قابل تعریف توسط کاربر پشتیبانی میکند. تراکنشهای در ArangoDB Atomic, Isolated, Consistent و Durable هستند.. بهاینترتیب موارد زیر تضمین میشوند:
- مؤلفه Atomicity باعث میشود که تراکنشها یا به طور کامل انجام شوند یا هیچ تأثیری نداشته باشد.
- مؤلفه Consistency تضمین میکند که هیچ constraint در حین یا بعد از هرگونه تراکنش نقض نشود. در نتیجه یک تراکنش هرگز پایگاهداده را خراب نمیکند (یکپارچگی حفظ میشود).
- مؤلفه Isolation تا پایان تراکنش، تغییرات تراکنش را از سایر تراکنشها مخفی میکند.
- مؤلفه Durability اطمینان میدهد که عملیات حاصل از تراکنشهای انجام شده دائمی خواهند بود.
از جمله ویژگیهای کلیدی ArangoDB میتوان موارد زیر را یافت:
توانایی انجام این کار بدون تعریف طرح ذخیره اطلاعات (بدون طرحواره) – ساختار دادهها بهصورت اسنادی است که در آن فراداده و اطلاعات مربوط به ساختار از دادههای کاربر جدا میشود.
- پشتیبانی از استفاده از ArangoDB بهعنوان سرور برای برنامههای وب در JavaScript با قابلیت دسترسی به پایگاهداده از طریق REST / Web API.
- استفاده از JavaScript برای برنامههای مبتنی بر مرورگر که به پایگاهداده و برای درایورهایی که از سمت DBMS اجرا میشوند دسترسی دارند.
- معماری چندرشتهای که بار را در تمام هستههای پردازنده توزیع میکند.
- یک مدل ذخیرهسازی داده انعطافپذیر که در آن شما میتوانید جفت – کلید، اسناد و پارامترهایی را تعیین کنید که روابط بین سوابق را تعیین میکند (ابزارها برای جلوگیری از رئوس نمودار ارائه میشوند).
- مدلهای مختلف ارائه داده (اسناد، نمودارها و زنجیرههای مقدار کلیدی) را میتوان در یک پرسش مخلوط کرد که تجمیع دادههای ناهمگن را ساده میکند.
- پشتیبانی از join
- توانایی انتخاب نوع نمایه متناسب با وظایف حل شده (بهعنوانمثال، میتوانید از فهرست برای جستجوی متن کامل استفاده کنید).
- قابلیت اطمینان قابل تنظیم – برنامه خود میتواند تعیین کند که چه چیزی برای آن مهمتر است: قابلیت اطمینان بالاتر یا عملکرد بالاتر؛
- میتوان از ذخیرهسازی کارآمد، استفاده کامل از قابلیتهای تجهیزات مدرن (بهعنوانمثال درایوهای SSD) و حافظه نهان بزرگ استفاده کرد.
پشتیبانی از تکثیر و تقسیمبندی
- توانایی ایجاد تنظیمات master-slave و توزیع مجموعهدادهها بر روی سرورهای مختلف بسته به ویژگی خاص.
- برای ایجاد سرویسهای خرد، چارچوب Foxx JavaScript ارائه شده است که با دسترسی مستقیم به دادهها در داخل سرور DBMS اجرا میشود.
مقیاسپذیری ArangoDB در عملکرد
ArangoDB به شما امکان میدهد با مقیاسپذیری عمودی و افقی بهسرعت با شرایط موردنیاز برای بهبود عملکرد و ذخیرهسازی دادههای مورد نظرتان سازگار شوید. همچنین از مقیاسپذیری مستقل مدلهای مختلف داده پشتیبانی میکند و به شما امکان میدهد تا منابع سختافزاری دیتابیس خود را بهسرعت کاهش دهید و در هزینههای عملیاتی صرفهجویی کنید.
مزایا و ویژگیها
مهمترین مزایا و ویژگیهای ArangoDB عبارتند از:
- مدیریت چندین مدل داده با یک زبان اصلی و پرس و جو (AQL)؛
- HTTP API برای مدیریت پایگاه داده؛
- معماری چندگانه (اینستنس یکتا، کلاستر و سرویس های متفاوت)
- ادغام با چارچوب JavaScript Foxx
- Sharding
- قابل استفاده در فضای ابری Azure Cloud;
- تلفیق: استفاده از حداقل کامپوننتها که منجر به کاهش پیچیدگی میشود. این به این معنی است که هزینه کل مالکیت کاهش مییابد، انعطاف پذیری افزایش و نیازهای فنی با هم تلفیق و یکی میشوند.
- مقیاس پذیری: به راحتی میتوانید کارایی و ذخیره سازی را با مقیاس پذیری افزایش دهید، ArangoDB هم به صورت عمودی و هم به صورت افقی قابل مقیاس پذیری است، در واقع اگر عملکرد ما نیاز به کاهش داشته باشد، میتوانیم به راحتی سیستم back-end را scale down کنیم، که این کار منجر به صرفه جویی در سخت افزار و نیازهای عملیاتی میشود.
- قابلیت استفاده به عنوان search engine
- کاهش پیچیدگی عملیاتی با استفاده از Polyglot Persistence
- اصطلاح Polyglot Persistence یک نوع معماری نرم افزاری است که این مفهوم را بیان میکند که برای هر کار، دیتا مدل مناسب همان کار انتخاب شود، یعنی برای یک اپلیکیشن میشود از چندین دیتابیس مختلف استفاده کرد. برای مثال میشود session های کاربرها را در دیتابیس از نوع key-value ذخیره کرد و تراکنشها را درoracle و کامنتهای کاربران را درmongodb . از آنجایی که بانک اطلاعاتی ArangoDB چند مدلی است این امکان را به ما می دهد که مفهوم Polyglot را بدون پیچیدگی پیاده کنیم و سازگاری داده ها را بدون خطا روی یک سیستم پیاده کنیم.
- سازگاری دادهها: مدلهای مختلف داده را با پشتیبانی از ACID مدیریت میکند.
- تحمل خطا: مولتی مدل بودن، معماری ماژولار، اجرای مدلهای دادهای متفاوت و استفاده مناسب از کلاسترها منجر به افزایش تحمل خطا در این دیتابیس میشود.
این پایگاه داده در سال 2012 ایجاد شد اما Community آن هنوز خیلی گسترده نیست، همچنین برای استفاده از آن به دلیل پیچیدگیهای نرم افزاری ممکن است به یک کارشناس پایگاه داده نیاز داشته باشد.
نصب ArangoDB به دو صورت اتوماتیک و دستی انجام میشود و بعد از نصب در آدرس http://127.0.0.1:8529/ و با نام کاربری root در دسترس است. طی بررسی صورت گرفته، عمده مشتریان این بانک اطلاعاتی در حوزه مالی و بانکی و هواپیمایی فعال بودند. و روی سیستم عاملها و کلاینتهای مختلفی قابل نصب و در دسترس میباشد.