Q ভাষা হল KDB+ ডাটাবেসের জন্য একটি স্ক্রিপ্টিং ভাষা, যা বিশেষভাবে টাইম-সিরিজ ডেটা প্রক্রিয়াকরণের জন্য ডিজাইন করা হয়েছে। এটি খুবই শক্তিশালী, সংক্ষিপ্ত এবং উচ্চ কার্যক্ষম, যা ডেটা বিশ্লেষণ, কুইরি এবং ম্যানিপুলেশন সহজ করে তোলে। Q ভাষার মূল বৈশিষ্ট্য হল এর অতি সংক্ষিপ্ত সিনট্যাক্স এবং ইন-মেমরি ডেটাবেসের মাধ্যমে দ্রুত ডেটা এক্সেস।
এখানে Q ভাষার কিছু মৌলিক ধারণা আলোচনা করা হল:
১. ডেটা টাইপস (Data Types)
Q ভাষায় ডেটার বিভিন্ন ধরণ ব্যবহার করা হয়। নিচে কিছু প্রধান ডেটা টাইপের উদাহরণ দেওয়া হলো:
Int: পূর্ণসংখ্যা
a: 5Float: দশমিক সংখ্যা
b: 3.14Boolean: সত্য অথবা মিথ্যা
c: 1b / 1 হল সত্য (True), 0 হল মিথ্যা (False)String: স্ট্রিং
d: "Hello, Q"List: একাধিক ডেটা ধারণকারী তালিকা
e: 1 2 3 4 f: "apple" "banana" "cherry"Table: একাধিক কলাম ধারণকারী ডেটা টেবিল
t: (`date`price) ! (2024.11.16 2024.11.17; 100.5 101.2)
২. অপারেটরস (Operators)
Q ভাষায় বিভিন্ন ধরনের অপারেটর ব্যবহার করা হয়:
এস্যাইনমেন্ট অপারেটর (
:): একটি মান একটি ভেরিয়েবলে সংরক্ষণ করতে ব্যবহৃত হয়।x: 10 / x তে 10 সংরক্ষণঅ্যাডিশন, সাবট্রাকশন, মাল্টিপ্লিকেশন, ডিভিশন: গাণিতিক অপারেশন
5 + 3 / 8 10 - 4 / 6 2 * 3 / 6 8 % 2 / 4কন্ডিশনাল অপারেটর (
if,else):if 5 > 3 then "True" else "False"
৩. ফাংশন (Functions)
Q ভাষায় ফাংশন তৈরি করা এবং ব্যবহার করা যায়। একটি সাধারণ ফাংশনের উদাহরণ:
add: {x + y} / একটি ফাংশন যা দুটি মান যোগ করে
add 5 3 / ফলাফল: 8Q ভাষায় ফাংশন তৈরি করার সময় {} ব্রেস ব্যবহার করা হয়।
৪. লিস্ট এবং তালিকা (Lists and Arrays)
Q ভাষায় ডেটা সন্নিবেশ করতে লিস্ট এবং অ্যারে ব্যবহার করা হয়। একটি লিস্টে বিভিন্ন ধরনের ডেটা রাখা যায়।
লিস্ট:
list: 1 2 3 4 5মাল্টিডাইমেনশনাল অ্যারে:
matrix: (1 2 3; 4 5 6; 7 8 9)
লিস্টের উপর বিভিন্ন অপারেশন করা যেতে পারে, যেমন যোগ, বিয়োগ ইত্যাদি।
৫. টেবিল (Tables)
Q ভাষায় টেবিল একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা স্ট্রাকচার। একটি টেবিল কলাম এবং রো দ্বারা গঠিত হয় এবং এটি টাইম-সিরিজ ডেটা ম্যানিপুলেশন জন্য ব্যবহৃত হয়। একটি টেবিল তৈরি করা:
t: (`date`price) ! (2024.11.16 2024.11.17; 100.5 101.2)এখানে date এবং price দুটি কলাম, এবং তাদের মান ২০২৪.১১.১৬ এবং ২০২৪.১১.১৭ তারিখের সাথে সম্পর্কিত।
৬. কুইরি (Querying)
Q ভাষায় ডেটা কুইরি করতে খুব সহজ এবং শক্তিশালী সিনট্যাক্স রয়েছে। টেবিল থেকে ডেটা নির্বাচন করতে:
select from t where price > 100এটি t টেবিল থেকে এমন রো নির্বাচন করবে যার মধ্যে price ১০০ এর বেশি।
৭. ম্যাপিং এবং ফিল্টারিং (Mapping and Filtering)
Q ভাষায় লিস্টের উপরে ম্যাপিং এবং ফিল্টারিং করা সহজ:
ম্যাপিং:
mapResult: each (+ 1) list / 1 বাড়িয়ে দেয় প্রতিটি উপাদানেফিল্টারিং:
filterResult: list where list > 2 / ৩ এর বড় মানগুলোর লিস্ট
৮. জয়েন (Join)
Q ভাষায় টেবিলের মধ্যে ডেটা একত্রিত করা যায়, যেমন SQL এর JOIN অপারেশন:
t1: (`date`price) ! (2024.11.16 2024.11.17; 100.5 101.2)
t2: (`date`volume) ! (2024.11.16 2024.11.17; 200 300)
joinResult: lj `date xkey t1, t2 / টেবিল দুইটি JOIN করল date অনুযায়ীএখানে lj মানে "left join", এবং xkey টেবিলগুলোর মধ্যে যোগসূত্র তৈরি করে।
সারসংক্ষেপ
Q ভাষা একটি উচ্চ কর্মক্ষম এবং সংক্ষিপ্ত স্ক্রিপ্টিং ভাষা যা KDB+ ডাটাবেসের সাথে ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণ সহজ করে তোলে। এর মৌলিক ধারণাগুলির মধ্যে ডেটা টাইপ, অপারেটর, ফাংশন, টেবিল, কুইরি, এবং জয়েন অন্তর্ভুক্ত। Q ভাষা দক্ষতার সাথে টাইম-সিরিজ ডেটা ম্যানিপুলেশন এবং বিশ্লেষণ করতে সক্ষম এবং এটি KDB+ এর প্রধান সুবিধা।
Read more