Crossfilter ব্যবহার করে ডেটা লোড এবং ফিল্টার করা সহজ এবং কার্যকর। Crossfilter বড় ডেটাসেটের ওপর দ্রুত ফিল্টারিং এবং গ্রুপিং করতে সক্ষম, যা ডেটা বিশ্লেষণে সাহায্য করে।
নিচে ধাপে ধাপে Crossfilter দিয়ে ডেটা লোড এবং ফিল্টার করার প্রক্রিয়া দেখানো হল।
১. Crossfilter সেটআপ
প্রথমে, Crossfilter লাইব্রেরি সিডিএন লিঙ্ক যোগ করতে হবে এবং তারপর ডেটাসেট লোড করতে হবে।
<script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter2/1.5.7/crossfilter.min.js"></script>
২. ডেটা লোড করা
Crossfilter crossfilter() ফাংশন ব্যবহার করে ডেটাসেট লোড করা হয়। উদাহরণস্বরূপ, নিচে একটি সাধারণ ডেটাসেট তৈরি করা হয়েছে, যেখানে কিছু ক্যাটেগরি এবং মান রয়েছে:
const data = [
{ category: "A", value: 30, date: "2023-12-01" },
{ category: "B", value: 50, date: "2023-12-02" },
{ category: "A", value: 70, date: "2023-12-03" },
{ category: "C", value: 20, date: "2023-12-01" },
{ category: "B", value: 40, date: "2023-12-02" }
];
// Crossfilter ইন্ডেক্স তৈরি
const ndx = crossfilter(data);
এখানে data নামক একটি JSON ডেটাসেট তৈরি করা হয়েছে, যেখানে প্রতিটি অবজেক্টের মধ্যে category, value, এবং date রয়েছে। crossfilter(data) ব্যবহার করে এই ডেটাসেটটি Crossfilter ইন্ডেক্সে লোড করা হয়েছে।
৩. ডাইমেনশন তৈরি করা
Crossfilter এ ডাইমেনশন তৈরি করতে, আপনি ডেটার বিভিন্ন বৈশিষ্ট্য ব্যবহার করতে পারেন, যেমন category এবং date। ডাইমেনশন হল ডেটার বিশেষ বৈশিষ্ট্য যার উপর ফিল্টার এবং গ্রুপিং করা যাবে।
// category এর উপর ডাইমেনশন তৈরি
const categoryDimension = ndx.dimension(d => d.category);
// date এর উপর ডাইমেনশন তৈরি
const dateDimension = ndx.dimension(d => d.date);
এখানে categoryDimension এবং dateDimension দুটি ডাইমেনশন তৈরি করা হয়েছে।
৪. ডেটা ফিল্টার করা
Crossfilter দিয়ে ডেটা ফিল্টার করা খুবই সহজ। ডাইমেনশন তৈরি করার পর, আপনি .filter() ফাংশন ব্যবহার করে নির্দিষ্ট মান বা শর্তের উপর ভিত্তি করে ডেটা ফিল্টার করতে পারেন।
ক্যাটেগরি অনুযায়ী ফিল্টার করা
categoryDimension.filter("A");
console.log("ফিল্টার করা ক্যাটেগরি A:", categoryDimension.top(Infinity));
এখানে, "A" ক্যাটেগরি অনুযায়ী ডেটা ফিল্টার করা হয়েছে এবং categoryDimension.top(Infinity) দিয়ে ফিল্টার করা ডেটা দেখানো হয়েছে।
তারিখ অনুযায়ী ফিল্টার করা
dateDimension.filter("2023-12-01");
console.log("ফিল্টার করা তারিখ 2023-12-01:", dateDimension.top(Infinity));
এখানে, "2023-12-01" তারিখ অনুযায়ী ডেটা ফিল্টার করা হয়েছে।
৫. ফিল্টার ক্লিয়ার করা
একটি ডাইমেনশনের সমস্ত ফিল্টার মুছে ফেলতে filterAll() ফাংশন ব্যবহার করা হয়:
categoryDimension.filterAll(); // সমস্ত ক্যাটেগরি ফিল্টার ক্লিয়ার
dateDimension.filterAll(); // সমস্ত তারিখ ফিল্টার ক্লিয়ার
এটি সমস্ত ফিল্টার মুছে ফেলে এবং সমস্ত ডেটা আবার দেখতে দেয়।
৬. গ্রুপিং এবং রিডাকশন
ডেটা ফিল্টার করার পাশাপাশি, আপনি Crossfilter ব্যবহার করে গ্রুপ এবং রিডাকশন (যেমন যোগফল) করতে পারেন।
const categoryGroup = categoryDimension.group().reduceSum(d => d.value);
console.log("ক্যাটেগরি অনুযায়ী গ্রুপিং এবং যোগফল:", categoryGroup.all());
এখানে, ক্যাটেগরি অনুযায়ী ডেটা গ্রুপ করা হয়েছে এবং value এর যোগফল বের করা হয়েছে।
৭. পূর্ণ কোড উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Crossfilter Example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter2/1.5.7/crossfilter.min.js"></script>
</head>
<body>
<h1>Crossfilter দিয়ে ডেটা লোড এবং ফিল্টার</h1>
<script>
// ডেটাসেট
const data = [
{ category: "A", value: 30, date: "2023-12-01" },
{ category: "B", value: 50, date: "2023-12-02" },
{ category: "A", value: 70, date: "2023-12-03" },
{ category: "C", value: 20, date: "2023-12-01" },
{ category: "B", value: 40, date: "2023-12-02" }
];
// Crossfilter ইন্ডেক্স তৈরি
const ndx = crossfilter(data);
// ডাইমেনশন তৈরি
const categoryDimension = ndx.dimension(d => d.category);
const dateDimension = ndx.dimension(d => d.date);
// ক্যাটেগরি ফিল্টার করুন
categoryDimension.filter("A");
console.log("ফিল্টার করা ক্যাটেগরি A:", categoryDimension.top(Infinity));
// তারিখ ফিল্টার করুন
dateDimension.filter("2023-12-01");
console.log("ফিল্টার করা তারিখ 2023-12-01:", dateDimension.top(Infinity));
// গ্রুপিং এবং যোগফল
const categoryGroup = categoryDimension.group().reduceSum(d => d.value);
console.log("ক্যাটেগরি অনুযায়ী গ্রুপিং এবং যোগফল:", categoryGroup.all());
// সমস্ত ফিল্টার ক্লিয়ার করুন
categoryDimension.filterAll();
dateDimension.filterAll();
console.log("ফিল্টার ক্লিয়ার করার পর ডেটা:", categoryDimension.top(Infinity));
</script>
</body>
</html>
সারাংশ
- ডেটা লোড: Crossfilter দিয়ে ডেটাসেট লোড করে ডাইমেনশন তৈরি করা হয়।
- ফিল্টার:
.filter()ফাংশন ব্যবহার করে নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করা হয়। - গ্রুপিং:
.group().reduceSum()ব্যবহার করে ডেটা গ্রুপ এবং রিডাকশন করা হয়। - ফিল্টার ক্লিয়ার:
filterAll()দিয়ে সমস্ত ফিল্টার মুছে ফেলা হয়।
Crossfilter ব্যবহারের মাধ্যমে ডেটা দ্রুত এবং কার্যকরভাবে হ্যান্ডেল করা যায়, বিশেষ করে বড় ডেটাসেটের ক্ষেত্রে।
Read more