AQL (Arango Query Language) ArangoDB এর নিজস্ব একটি শক্তিশালী কোয়েরি ভাষা, যা ডেটা পরিচালনা এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি SQL-এর মতো সিম্পল ও কার্যকর, এবং ArangoDB এর মাল্টি-মডেল ডেটাবেসের জন্য বিশেষভাবে তৈরি।
AQL এর মূল বৈশিষ্ট্য
SQL-এর মতো স্ট্রাকচার
- AQL অনেকটাই SQL-এর মতো দেখতে এবং ব্যবহার করতে সহজ।
মাল্টি-মডেল সমর্থন
- Document, Key-Value, এবং Graph মডেলের জন্য ব্যবহার করা যায়।
JSON ভিত্তিক আউটপুট
- AQL কোয়েরি থেকে JSON ফরম্যাটে আউটপুট পাওয়া যায়, যা API এবং অ্যাপ্লিকেশন ডেভেলপমেন্টে সহজে ব্যবহারযোগ্য।
ডেটা ম্যানিপুলেশন ও বিশ্লেষণ
- ফিল্টারিং, সোর্টিং, অ্যানালাইসিস, এবং ট্রান্সফর্মেশনের জন্য উন্নত কোয়েরি অপারেশন।
গ্রাফ ডেটা সমর্থন
- গ্রাফ ট্রাভার্সাল এবং জটিল সম্পর্ক বিশ্লেষণের জন্য আদর্শ।
AQL এর ব্যবহার
১. ডেটা নির্বাচন (SELECT Data)
FOR doc IN myCollection
RETURN doc
এই কোয়েরিটি myCollection এর সব ডকুমেন্ট ফেরত দেয়।
২. ফিল্টারিং (Filtering)
FOR doc IN myCollection
FILTER doc.age > 25
RETURN doc
এটি myCollection থেকে শুধুমাত্র তাদের ডকুমেন্ট ফেরত দেয়, যাদের age ২৫ এর বেশি।
৩. সোর্টিং (Sorting)
FOR doc IN myCollection
SORT doc.name ASC
RETURN doc
এই কোয়েরি name অনুযায়ী ডকুমেন্টগুলোকে বর্ণানুক্রমিকভাবে সাজায়।
৪. নির্দিষ্ট ফিল্ড নির্বাচন (Field Selection)
FOR doc IN myCollection
RETURN { name: doc.name, age: doc.age }
এই কোয়েরি name এবং age ফিল্ডগুলো সহ একটি JSON অবজেক্ট ফেরত দেয়।
৫. গ্রাফ ট্রাভার্সাল (Graph Traversal)
FOR vertex, edge IN 1..2 OUTBOUND 'vertices/A' GRAPH 'myGraph'
RETURN vertex
এটি myGraph এ vertices/A থেকে দুই স্তরের মধ্যে সম্পর্কিত নোডগুলো ফেরত দেয়।
৬. অ্যাগ্রিগেশন (Aggregation)
FOR doc IN myCollection
COLLECT status = doc.status WITH COUNT INTO count
RETURN { status, count }
এই কোয়েরি status অনুসারে গ্রুপ করে এবং প্রতিটি গ্রুপের ডকুমেন্ট সংখ্যা গণনা করে।
৭. আপডেট ও মুছে ফেলা (Update and Delete)
FOR doc IN myCollection
FILTER doc.age < 18
REMOVE doc IN myCollection
এটি myCollection থেকে তাদের ডকুমেন্ট মুছে দেয়, যাদের age ১৮ এর কম।
AQL ব্যবহার ক্ষেত্র
- ডকুমেন্ট ডেটা মডেল থেকে ডেটা নির্বাচন এবং বিশ্লেষণ।
- গ্রাফ ডেটাবেসে সম্পর্ক অনুসন্ধান এবং ট্রাভার্সাল।
- জটিল কোয়েরি ও সাবকোয়েরি পরিচালনা।
- JSON ফরম্যাটে ডেটা ম্যানিপুলেশন।
সারাংশ
AQL একটি শক্তিশালী কোয়েরি ভাষা যা ArangoDB এর মাল্টি-মডেল আর্কিটেকচারে ডেটা ম্যানেজমেন্ট সহজ করে। এটি SQL-এর মত ব্যবহারযোগ্য এবং JSON ভিত্তিক আউটপুট প্রদানের কারণে ডেভেলপারদের কাছে অত্যন্ত জনপ্রিয়।