Dictionaries KDB+ (Q ভাষা) তে একটি শক্তিশালী ডেটা স্ট্রাকচার, যা কী-ভ্যালু পেয়ার (key-value pairs) ধারণ করে। এটি একটি অত্যন্ত কার্যকরী ডেটা টাইপ, বিশেষত যখন আপনাকে ডেটাকে একটি নির্দিষ্ট কী দ্বারা সংরক্ষণ এবং অ্যাক্সেস করতে হয়। KDB+ এ ডিকশনারি ব্যবহার করে ডেটার মানগুলির দ্রুত অ্যাক্সেস এবং হ্যান্ডলিং করা যায়।
এখানে Dictionaries এর ডিক্লারেশন এবং ডেটা ম্যাপিং এর বিস্তারিত আলোচনা করা হলো।
১. Dictionaries এর ডিক্লারেশন
KDB+ এ ডিকশনারি ডিক্লেয়ার করার জন্য ! অপারেটর ব্যবহৃত হয়। এখানে কী (key) এবং ভ্যালু (value) আলাদা আলাদা তালিকায় থাকা উচিত।
উদাহরণ:
dict: `apple`banana`cherry ! 100 200 300এখানে:
apple,banana,cherryহল কী (keys), যেগুলি সিম্বল টাইপে (symbols) এবং- 100, 200, 300 হল তাদের মান (values), যেগুলি ইনটিজার (integer) টাইপের।
এই ডিকশনারিতে apple কীটির মান হবে ১০০, banana কীটির মান হবে ২০০ এবং cherry কীটির মান হবে ৩০০।
একটি ভিন্ন ডেটা টাইপের মান:
dict2: `name`age! ("Alice"; 30)এখানে name এর মান হবে স্ট্রিং "Alice" এবং age এর মান হবে ইনটিজার 30।
২. Data Mapping (ডেটা ম্যাপিং)
ডেটা ম্যাপিং বলতে বোঝানো হয় কিভাবে একটি ডেটার সেটকে একটি কী-ভ্যালু পেয়ার হিসেবে ম্যাপ করা যায়। KDB+ তে Dictionaries ডেটা ম্যাপিং এর জন্য অত্যন্ত উপযোগী।
উদাহরণ ১: একাধিক কী-ভ্যালু পেয়ার
fruitPrices: `apple`banana`cherry ! 100 200 300এখানে, আপনি fruitPrices ডিকশনারির মাধ্যমে বিভিন্ন ফলের দাম স্টোর করেছেন। এখন, আপনি এই ডিকশনারির মাধ্যমে যেকোনো ফলের দাম খুব দ্রুত অ্যাক্সেস করতে পারেন।
ডেটা অ্যাক্সেস:
fruitPrices`apple / আউটপুট হবে 100
fruitPrices`banana / আউটপুট হবে 200এখানে fruitPrices ডিকশনারি থেকে apple এবং banana এর মান অ্যাক্সেস করা হয়েছে।
উদাহরণ ২: ভিন্ন ডেটা টাইপের ডেটা ম্যাপিং
আপনি বিভিন্ন ডেটা টাইপের মানও ডিকশনারির মধ্যে রাখতে পারেন। যেমন:
employeeInfo: `name`age`salary ! ("John"; 28; 50000)এখানে, employeeInfo ডিকশনারি তৈরির মাধ্যমে একজন কর্মীর নাম, বয়স এবং বেতন সংরক্ষণ করা হয়েছে।
ডেটা অ্যাক্সেস:
employeeInfo`name / আউটপুট হবে "John"
employeeInfo`age / আউটপুট হবে 28
employeeInfo`salary / আউটপুট হবে 50000৩. Dictionaries এ ডেটা আপডেট করা
KDB+ তে ডিকশনারির মান আপডেট করতে আপনি সরাসরি কী-ভ্যালু পেয়ার সেট করতে পারেন।
উদাহরণ: একটি কী-ভ্যালু আপডেট করা
fruitPrices`apple: 150 / "apple" এর দাম 150 করাএখানে, apple এর দাম ১০০ থেকে ১৫০ হয়ে যাবে। অন্য যে কোনো কী-ভ্যালু পেয়ারও আপডেট করা যায় একইভাবে।
উদাহরণ ২: নতুন কী-ভ্যালু যোগ করা
fruitPrices`orange: 250 / নতুন কী-ভ্যালু যোগ করাএটি fruitPrices ডিকশনারিতে orange কী-এর জন্য একটি নতুন মান (২৫০) যোগ করবে।
৪. Dictionaries এ Loop বা Iteration (পুনরাবৃত্তি)
ডিকশনারির মধ্যে এক্সপ্রেশন বা লুপ চালাতে হলে, আপনি each অপারেটর ব্যবহার করতে পারেন।
উদাহরণ: ডিকশনারির মানগুলির উপর পুনরাবৃত্তি করা
prices: fruitPrices each fruitPrices / ডিকশনারির প্রতিটি মানের উপর কাজ করাএখানে, fruitPrices each fruitPrices ডিকশনারির প্রতিটি মানের উপর ফাংশন বা অপারেশন প্রয়োগ করবে।
৫. Dictionaries এর সাথে ফাংশন ব্যবহার
ফাংশনের মাধ্যমে ডিকশনারি তৈরি করা এবং তার সাথে কাজ করা যেতে পারে।
উদাহরণ: ডিকশনারি এবং ফাংশন ব্যবহার
getPrice: {fruitPrices[x]} / একটি ফাংশন যা ডিকশনারি থেকে মূল্য ফেরত দিবে
getPrice `apple / আউটপুট হবে 150এখানে, getPrice ফাংশনটি একটি কী হিসাবে apple ইনপুট নেবে এবং fruitPrices ডিকশনারি থেকে তার মান (দাম) রিটার্ন করবে।
সারসংক্ষেপ
- Dictionaries KDB+ তে কী-ভ্যালু পেয়ার (key-value pairs) ধারণ করে এবং ডেটা সঞ্চয় এবং অ্যাক্সেসের জন্য খুবই কার্যকরী।
- Data Mapping হল কী-ভ্যালু পেয়ার ব্যবহার করে ডেটা সংরক্ষণ এবং মান অ্যাক্সেস করা।
- ডিকশনারির মাধ্যমে বিভিন্ন ডেটা টাইপের মান, ফাংশন ব্যবহার করে ডেটা অ্যাক্সেস এবং ডেটা আপডেট করা সম্ভব।
- ডিকশনারির উপর iteration করতে
eachঅপারেটর ব্যবহার করা হয়, যা ডিকশনারির মানগুলোর উপর এক্সপ্রেশন বা ফাংশন প্রয়োগ করতে সাহায্য করে।
এই ধারণাগুলি KDB+ এ ডেটা পরিচালনার জন্য খুবই শক্তিশালী এবং কার্যকরী উপায়।
Read more