استفاده از بانکهای اطلاعاتی مبتنی بر گراف در سیستم های توصیه گر
۰
میانگین امتیاز
امتیاز کاربران : امتیاز دهید !
یکی از چهار گروه اصلی بانکهای اطلاعاتی NoSQL بانکهای اطلاعاتی مبتنی بر گراف هستند . ساختاری که اطلاعات در آن به صورت گره و یال ذخیره می شوند . معمولاً مثالی که برای کاربردهای این نوع از پایگاه های اطلاعاتی بیان میشود شبکه های اجتماعی مانند فیس بوک و توئیتر است که در آن هر فرد یک گره در نظر گرفته می شود و رابطه دوستی بین افراد یالهای این گراف را تشکیل می دهند. پرس و جو های این بانک اطلاعاتی هم حول مباحثی مانند یافتن نزدیک ترین دوستان، نزدیک ترین فاصله بین دو شخص، دوستان مشترک و مسایلی از این دست است .
برای سایت خبری Republishan دنبال سیستمی برای برچسب زنی اخبار و یافتن اخبار مشابه براساس برچسب های یک خبر بودیم که به ذهنم رسید از این نوع بانک های اطلاعاتی استفاده کنیم . در این کاربرد، هر خبر و هر برچسب یک گره در نظرگرفته می شود و یالها رابطه ایست که بین خبر و برچسب وجود دارد .
ایده این کار را از کتاب NoSQL Distilled آقای مارتین فاولر گرفتم که اصطلاحی را به کار برده است به عنوان Polyglot Persistence یا سیستم های ذخیره سازی چندزبانه و منظور از آن هم استفاده از بانکهای اطلاعاتی مختلف در یک سازمان یا وب سایت برای مدیریت جنبه های مختلف و نیازمندیهای متفاوتیست که امروزه با آن مواجهیم . در آن کتاب در توضیح این عبارت، مثالی زده شده است که برای هر قسمت آن از یک پایگاه داده استفاده شده و برای بخش سیستم های پیشنهاد دهنده ، بانکهای مبتنی بر گراف توصیه شده است . ما هم در اینجا قرار است به ازای هر خبری که کاربر می خواند، پیشنهاد اخبار جدید را به او بدهیم …
از بانک اطلاعاتی Neo4j در کنار کاساندرا که بانک اطلاعاتی اصلی ماست برای این منظور استفاده کردیم و البته هنوز آنرا تست نهایی نکرده ایم اما بررسیهای بنده در زمینه بانکهای اطلاعاتی مبتنی بر گراف که یکی از کاربردهای اصلی آنها سیستم های پیشنهادیار است مرا به نتیجه کار دلگرم کرده است …
پی نوشت : بعد از استفاده عملی از این بانک اطلاعاتی ، بخاطر حجم عظیم داده ای که روزانه خوانده شده و نیاز به برچسب زدن داشت و از طرفی این واقعیت که پیکربندی این بانک اطلاعاتی را به صورت حرفه ای بلد نبودیم، سرعت کار بسیار پایین آمد و مجبور شدیم آنرا کنار بگذاریم و برای اخبار مرتبط به سمت سلر و بعدا الاستیک سرچ برویم .
(این مطلب برگرفته از سایت شخصی بنده است )
برای انتخاب دیتابیس مناسب در حوزه پردازش گراف ، می توانید از این نمودار هم استفاده کنید (هر چند منبع این شکل به سال ۲۰۱۳ بر می گردد و ممکن است تغییرات زیادی در این حوزه رخ داده باشد .)
متاسفانه فعلا واسه این پایگاه داده و بعضی از پایگاه دادههای NoSQL دیگه منابع آموزشی و زیادی و حتی جامعه کاربری زیادی وجود نداره.
البته اخیرا من رو یه پروژهای دارم کار میکنم (با اسفاده از Neo4j) و یه جایی به مشکل برخورد و مستقیم به اکانت Neo4j تو توییتر ریپلای زدم و سوال پرسیدم که در مدتی کوتاهی دو نفر جواب دادن.ولی در کل افرادی که با این پایگاه دادههای کار میکنن خیلی کمه فعلا.
مهندسی داده :
با نظر شما موافقم هر چند منابع لاتین به حد کافی برای شروع کار موجوده و کلا برای کار توی حوزه های نوین متکی به منابع و انجمن های فارسی نمی توان بود.
موفق باشید
بله بله.من از همون اول که شروع به برنامه نویسی کردم چندان سراغ کتابهای فارسی نرفتم(بعضا ترجمه نادرست و بعضا صحفحه بندی و شکل ظاهری شون و…) ولی خب فعلا درباره Neo4j چهار یا پنج کتاب کلا هست.که بعضا به نظرم کامل و جامع نیستن.
دوست عزیز اگر تجربیاتی با neo4j داری چند سوال در مورد طراحی و ارتباط چنین دیتابیس هایی با کاساندرا رو داشتم.
nasserghiasi@gmail.com
telegram: telegram.me/nasserghiasi