بلاگ

گراف کاوی شبکه های اجتماعی با دیتابیس گرافی Neo4j

مقدمه

دیتابیس گرافی Neo4j مهلم از اویلر و تئوری گراف است که از مدل داده ای گره ها، یال ها تبعیت می کند. این دیتابیس قابلیت مناسب برای طراحی یک سیستم جست و جو را دارا می باشد که به عنوان نمونه می توان گراف جست و جوی فیس بوک مبتنی بر Neo4j را مثال زد. این دیتابیس در اصل بر اساس جاوا است اما دارای API های گوناگون برای زبان های برنامه نویسی مطرح مانند جاوا، سی‌شارپ، پایتون، جاوااسکریپت، روبی، پی‌اچ‌پی، آر، … نیز می باشد. Neo4j برای کاربردهایی که گراف را بصورت دوره ای بروزرسانی می کنند اما بار خواندن آنها بسیار بالاست مناسب است.

به لطف این دیتابیس گرافی در مقایسه با دیتابیس های رابطه ای دیگر نیازی به نوشتن join های پیچیده نیست و  با پیمایش و حرکت در گراف میتوان انواع پرس و جوهای های متنوع را انجام داد، اما از جمله نقاط ضعف این دیتابیس عدم پشتیبانی از تکنیک Sharding (بخش بندی داده) است، چرا که مساله ریاضی تقسیم بهینه گراف بزرگ در بین مجموعه ای از سرویس دهنده ها از جمله مسائل NP Complete (پرهزینه) است. اما در نسخه Enterprise این دیتابیس، به منظور برقراری High Availability، از Causal Clustering پشتیبانی می کند که Read-Write را در Core Server ها و multiple read only را در replica servers ها ممکن می سازد.

در مجموع می توان مزایا و معایب این دیتابیس را در قالب نکات ذیل برشمرد:

مزایا

  • رتبه اول دیتابیس های گرافی دنیا بر اساس وب سایت معتبر db-engines.com
  • یادگیری آسان و سهولت در استفاده
  • کاهش استفاده از حافظه
  • بکاپ‌گیری حرفه‌ای
  • قابلیت Schema انعطاف‌پذیر
  • زبان پرس و جوی Cypher
  • 10 تا 100 برابر کدنویسی کمتر نسبت به SQL
  • سرعت بالا
  • درایور برای زبان‌های جاوا، سی‌شارپ، پایتون، جاوااسکریپت، روبی، پی‌اچ‌پی، آر، …
  • پشتیبانی از فریمورک‌های اِسپرینگ، جَنگو، لاراول و …

معایب

  • عدم پشتیبانی از تکنیک Sharding (بخش بندی داده)

در ادامه با هم یک نمونه کوئری را بررسی می کنیم که پیاده سازی آن با SQL بسیار پیچیده بوده و مقرون به صرفه نخواهد بود در حالی که می توان به لطف دیتابیس گرافی Neo4j نمونه های پیچیده چنینی را پیاده سازی کرد.

کاربردهای صنعتی

  • سیستم های توصیه گر Near Real Time
  • تشخیص تقلب و پولشویی در صنعت بانک و بیمه
  • جستجوی گراف محور
  • پیاده سازی الگوریتم های مسیریابی شبکه های کامپیوتری

یک نمونه کوئری:

اساتیدی که در حال حاضر مشغول به پژوهش در حوزه کلان داده در دانشگاه استنفورد هستند، زیر چهل سال سن دارند، در ده سال گذشته ، در یکی از دانشگاه های اروپا تحصیل کردند و استاد راهنمایی که داشتند اصالتا هلندی بوده است و تابحال دستِ کم سه پژوهش در یکی از ژورنال های معتبر بیگ دیتا با ضریب تاثیر بالای سه، منتشر کرده اند و حداقل سه سال سابقه کار در صنعت در یکی از کمپانی های آمریکایی را دارند

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید