Amazon Neptune یک service پایگاه داده graph سریع، قابل اعتماد و به طور کامل مدیریت شده است که ساخت و اجرای اپلیکیشن هایی که با مجموعه داده های با به هم پیوستگی بالا کار می کنند، را آسان می کند. هسته Amazon Neptune یک موتور پایگاه داده graph مبتنی بر هدف و با عملکرد بالاست که برای ذخیره سازی میلیون ها روابط و درخواست graph با کسری از ثانیه تأخیر، بهینه سازی شده است.
Amazon Neptune از مدل های graph معروف، Property Graph و W3C’s RDF و زبان های مربوط به آن ها، Apache TinkerPop Gremlin و SPARQL پشتیبانی می کند و به شما امکان می دهد به سادگی query هایی بسازید که به طور اثربخش مجموعه داده های بهم مرتبط را هدایت و کنترل کند.
Neptune موارد استفاده از graph، مانند recommendation engines، تشخیص کلاهبرداری، graph های knowledge، drug discovery و امنیت شبکه را تقویت می کند.
مزایا Amazon Neptune
– پشتیبانی از open graph APIs
– عملکرد و مقیاس پذیری بالا
– در دسترس بودن و دوام بالا
– امنیت بالا
– به طور کامل مدیریت شده
چه زمانی از پایگاه های داده graph استفاده کنید
پایگاه های داده graph، مانند Amazon Neptune، پایگاه هایی مبتنی بر هدف برای ذخیره سازی و هدایت روابط هستند.
آن ها هنگام نیاز به ایجاد روابط بین داده ها و تعیین سریع این روابط، برای استفاده در مواردی مانند شبکه های اجتماعی، recommendation engines و تشخیص کلاهبرداری نسبت به پایگاه داده های relational مزیت دارند.
چند چالش برای ساخت انواع اپلیکیشن ها با استفاده از یک پایگاه داده relational وجود دارد. شما به چندین جدول با چندین foreign keys نیاز دارید.
درخواست SQL برای هدایت این داده نیازمند درخواست های تودرتو و پیچیده است که به سرعت سنگین و دست و پا گیر می شوند. در نتیجه، با افزایش اندازه داده ها در طول زمان، درخواست ها به خوبی اجرا نمی شوند.
Neo4j چیست؟
Neo4j یک سیستم مدیریت پایگاه داده graph است که توسط Neo4j Inc. ساخته شده است. این سیستم که توسط توسعه دهندگان آن به عنوان پایگاه داده تراکنشی سازگار با ACID به همراه ذخیره سازی و پردازش native graph توصیف می شود، براساس رده بندی DB-Engines محبوب ترین پایگاه داده graph است.
Neo4j در Java اجرا می شود و از نرم افزارهایی که به زبان های دیگر نوشته شده اند، در دسترس است.
Neo4j یک پایگاه داده graph، opensource و NoSQL است که backend تراکنشی سازگار با ACID برای اپلیکیشن شما ارائه می دهد. ساخت اولیه در سال 2003 آغاز شد، ولی از سال 2007 به طور عمومی در دسترس بوده است. کد منبع که در Java و Scala نوشته شده است، به طور رایگان بر روی GitHub یا به عنوان دانلود اپلیکیشن دسکتاپ user-friendly قرار داده شده است.
Neo4j دو نسخه پایگاه داده Community و Enterprise را دارد. نسخه Enterprise شامل تمامی موارد ارائه شده در نسخه Community است بعلاوه موارد اضافی، مانند پشتیبانی ها، خوشه بندی و توانایی مقابله با شکست.
ویژگی های Neo4j
در این بخش برخی از ویژگی های خاص Neo4j که آن را میان برنامه نویسان، معماران و DBA ها محبوب کرده، نام برده می شوند:
– Cypher، یک زبان درخواست اظهاری مانند SQL، که برای graph ها بهینه شده است. در حال حاضر با دیگر پایگاه داده مانند SAP HAHA Graph و Redis graph مورد استفاده قرار می گیرند.
– Traversal های با زمان ثابت در graph های بزرگ با عمق و وسعت به خاطر نمایش اثربخش node ها و روابط. این ویژگی امکان افزایش مقیاس تا میلیون ها node بر روی hardware های محدود را فراهم می کند.
– ویژگی انعطاف پذیری graph که می تواند در طول زمان سازگار شود و امکان تحقق و افزودن روابط جدید به shortcut و سرعت بخشیدن به داده های domain هنگامی که کسب و کار نیاز به تغیرات دارد، را فراهم کند.
– محرک هایی برای زبان های برنامه نویسی محبوب، شامل Java، JavaScript، .NET، Python و موارد دیگر.
تفاوت های Neptune و Neo4j
برنامه نویسان Amazon Neptune را به عنوان “یک پایگاه داده graph قابل اعتماد و سریع که برای cloud ساخته شده” توصیف می کنند. این پایگاه داده ساخت و اجرای اپلیکیشن هایی که با مجموعه داده های بهم پیوسته کار می کند را ساده می کند.
عنصر اصلی Amazon Neptune یک موتور پایگاه داده graph مبتنی بر هدف و با عملکرد بالاست که برای ذخیره سازی میلیون ها روابط و درخواست graph با کمترین تأخیر، بهینه سازی شده است.
از سوی دیگر، Neo4j به طور دقیق به عنوان “پایگاه داده graph پیشرو در جهان” توصیف شده است. Neo4j داده ها را در node هایی ذخیره می کند که با روابط مستقیم typed شده بهم متصل هستند، که با نام Property Graph شناخته می شود.
این پایگاه داده یک graph store با عملکرد بالاست که تمامی ویژگی های موردانتظار یک پایگاه داده پخته و قوی، مانند یک زبان جستجوی دوستانه و تبادلات ACID، را دارد.
Amazon Neptune می تواند به عنوان ابزاری در دسته “پایگاه داده Graph به عنوان یک service” طبقه بندی شود، حال آنکه Neo4j در گروه “پایگاه داده Graph” قرار می گیرند.
ویژگی های Neo4j
ویژگی های این پایگاه داده به قرار زیر است:
– حسی و شهودی، استفاده از یک مدل graph برای نمایش داده ها
– قابل اعتماد با تبادلات کامل ACID
– با استفاده از موتور ذخیره سازی native و مبتنی بر disk سفارشی
دلیل انتخاب Amazon Neptune توسط برنامه نویسان
– قابلیت استفاده ساده
– پشتیبانی از APARQL
– پشتیبانی از RDF
– عملکرد بالا
– تطابق با ACID
دلیل انتخاب Neo4j توسط برنامه نویسان
– زبان درخواست Cypher-graph
– Graphdb خوب
– Open source بودن
– Rest api
– Native API با عملکرد بالا
معایب Neo4j
– نسبتاً کند
– نمی تواند یک vertex را به عنوان JSON ذخیره کند
ابزارهای ادغام شده با Amazon Neptune
Amazon S3 – Amazon CloudWatch – AWS IAM – AWS Key Management Service
ابزارهای ادغام شده با Neo4j
GrapheneDB – Linkurious – Graph Story – Structr – Cartography – Google Anthos
جایگزین های Neptune و Neo4j
– GraphQL: یک زبان درخواست داده است که از سال 2012 در فیسبوک برای درخواست و تحویل داده به اپلیکیشن های موبایل و وب مورد استفاده قرار می گیرد.
– GrapheneDB: با پشتیبانی های خودکار، نظارت 24 ساعت هفته و بهترین پشتیبانی که برای AWS، Azure و Heroku در دسترس است.
– Graph Story یک دسترسی کاملاً مدیریت شده، امن و مقرون به صرفه به پایگاه داده graph به عنوان service ارائه می دهد و امکان استفاده آسان آن از طریق API سفارشی را فراهم می کند.