Graph Traversal Queries ArangoDB-তে গ্রাফ ডেটার মধ্যে সম্পর্ক বুঝতে এবং প্রাসঙ্গিক তথ্য অনুসন্ধানের জন্য ব্যবহৃত হয়। ArangoDB তে গ্রাফ ডেটাবেসে Vertex (নোড) এবং Edge (লিঙ্ক) ব্যবহার করে ডেটা মডেল করা হয়। AQL (ArangoDB Query Language) এর মাধ্যমে গ্রাফ ট্রাভার্সাল করা যায়।
Graph Traversal এর মূল ধারণা
Traversal মানে হলো একটি Graph এর নোড বা ভের্টেক্স থেকে একটি নির্দিষ্ট পথ অনুসরণ করে ডেটা বের করা। এটি সাধারণত বিভিন্ন লেভেল বা দূরত্বের সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়।
প্রধান উপাদান:
- Vertex: নোড বা ডেটার একক।
- Edge: নোডগুলোর মধ্যে সংযোগ।
- Direction: Traversal-এর সময় সংযোগের দিক (Inbound/Outbound/Both)।
Graph Traversal Queries এর গঠন
FOR vertex, edge, path IN min..max
OUTBOUND start_vertex edge_collection
RETURN vertex
উপাদানের ব্যাখ্যা:
min..max: ট্রাভার্সাল গভীরতার সীমা।OUTBOUND: সংযোগের দিক নির্দেশ করে। (Inbound/Outbound/Both)start_vertex: ট্রাভার্সাল শুরু করার নোড।edge_collection: সংযোগগুলো সংরক্ষিত যেখানে।RETURN: ফলাফল হিসেবে কোন উপাদান চাই তা নির্ধারণ করে।
Graph Traversal এর উদাহরণ
1. সরাসরি সংযুক্ত Vertex খোঁজা
নিচের উদাহরণে friends একটি Edge Collection, যা সংযোগ সংরক্ষণ করে।
FOR vertex IN 1..1
OUTBOUND "users/user1" friends
RETURN vertex
এটি user1 এর direct friends খুঁজে বের করবে।
2. নির্দিষ্ট লেভেলের Traversal
FOR vertex IN 2..3
OUTBOUND "users/user1" friends
RETURN vertex
এটি user1 থেকে দ্বিতীয় এবং তৃতীয় লেভেলের সংযুক্ত vertex রিটার্ন করবে।
3. Path সহ ফলাফল
FOR vertex, edge, path IN 1..2
OUTBOUND "users/user1" friends
RETURN { vertex, edge, path }
এটি Vertex, Edge, এবং Path এর সম্পূর্ণ তথ্য প্রদান করবে।
4. Inbound Traversal (Reverse Direction)
FOR vertex IN 1..1
INBOUND "users/user1" friends
RETURN vertex
এটি user1 এর সাথে incoming connections খুঁজে বের করবে।
5. Both Directions Traversal
FOR vertex IN 1..1
ANY "users/user1" friends
RETURN vertex
এটি user1 এর incoming এবং outgoing connections উভয়ই রিটার্ন করবে।
Filters এবং Conditions প্রয়োগ
Traversed ডেটাতে নির্দিষ্ট শর্ত প্রয়োগ করার জন্য FILTER ব্যবহার করা হয়।
Example: নির্দিষ্ট শর্তে Traversal
FOR vertex IN 1..2
OUTBOUND "users/user1" friends
FILTER vertex.age > 25
RETURN vertex
এটি user1 এর ১ থেকে ২ লেভেলের বন্ধুদের মধ্যে যাদের বয়স ২৫ এর বেশি তাদের রিটার্ন করবে।
Graph Statistics এবং Aggregation
Vertex Count
FOR vertex IN 1..1
OUTBOUND "users/user1" friends
COLLECT WITH COUNT INTO total
RETURN total
এটি user1 এর মোট সরাসরি সংযুক্ত Vertex সংখ্যা রিটার্ন করবে।
Edge Attributes
FOR vertex, edge IN 1..1
OUTBOUND "users/user1" friends
RETURN edge.relationship
এটি সংযোগের Edge Attributes (যেমন: সম্পর্কের ধরণ) রিটার্ন করবে।
Graph Traversal Visualization
ArangoDB এর Web Interface ব্যবহার করে ট্রাভার্সালের ফলাফল সহজে ভিজুয়ালাইজ করা যায়। Traversal কোয়েরি চালানোর পর, Web Interface এ গ্রাফিকাল আউটপুট দেখা যাবে।
সারাংশ
Graph Traversal Queries ArangoDB তে গ্রাফ ডেটার মধ্যকার সম্পর্ক বিশ্লেষণ করতে এবং জটিল গ্রাফ অপারেশন সম্পাদন করতে সাহায্য করে। AQL এর সহজ এবং শক্তিশালী গঠন এটি কার্যকরভাবে পরিচালনা করতে সহায়তা করে।