DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করতে। Row Context এবং Filter Context হল দুটি অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট যা DAX expressions এর মধ্যে কার্যকরীভাবে কাজ করার জন্য প্রয়োজনীয়। Row Context এবং Filter Context ডেটার ক্যালকুলেশন এবং বিশ্লেষণ প্রক্রিয়ার গুরুত্বপূর্ণ অংশ। এই দুটি কনসেপ্ট একে অপরের সাথে সম্পর্কিত, তবে তাদের কার্যকারিতা এবং প্রভাব ভিন্ন।
এই প্রবন্ধে আমরা Row Context এবং Filter Context এর মধ্যে পার্থক্য এবং তাদের ব্যবহারের সঠিক পদ্ধতি নিয়ে আলোচনা করব।
১. Row Context
Row Context হল একটি DAX calculation context যেখানে প্রতিটি সারির জন্য আলাদা গণনা করা হয়। Row Context তখন তৈরি হয় যখন আপনি calculated column তৈরি করেন বা iterators (যেমন SUMX, AVERAGEX, ইত্যাদি) ব্যবহার করেন। এর মধ্যে, DAX প্রতিটি row বা record অনুযায়ী গণনা করে এবং প্রতিটি সারির জন্য আলাদা calculation সম্পন্ন হয়।
Row Context এর উদাহরণ:
ধরা যাক, আপনার Sales টেবিল রয়েছে এবং আপনি একটি নতুন calculated column তৈরি করতে চান, যা Amount এবং Discount এর পার্থক্য বের করবে:
FinalPrice = Sales[Amount] - Sales[Discount]
এখানে, Row Context তৈরি হয় কারণ DAX প্রতিটি Sales টেবিলের সারির জন্য Amount এবং Discount কলামের মানের পার্থক্য গণনা করছে। প্রতিটি সারি বা রো-এ আলাদা ক্যালকুলেশন হবে এবং তাদের জন্য একটি FinalPrice তৈরি হবে।
Row Context-এ ব্যবহৃত DAX Functions:
- SUMX
- AVERAGEX
- COUNTX
- MINX
- MAXX
এই ফাংশনগুলি iterators হিসেবে কাজ করে এবং row-by-row calculation সম্পাদন করে।
২. Filter Context
Filter Context হল DAX এর একটি গুরুত্বপূর্ণ কনসেপ্ট যা একটি ক্যালকুলেশনে কোন ডেটা অন্তর্ভুক্ত হবে এবং কোন ডেটা বাদ যাবে, তা নির্ধারণ করে। এটি সাধারণত CALCULATE, FILTER, ALL, এবং অন্যান্য filter functions দ্বারা নিয়ন্ত্রিত হয়। Filter Context বিভিন্ন filters যেমন Slicers, Columns, বা Visual Filters দ্বারা পরিচালিত হয় এবং এটি ডেটা ক্যালকুলেশনের জন্য context তৈরি করে।
Filter Context এর উদাহরণ:
ধরা যাক, আপনি Sales টেবিলের Amount এর মোট যোগফল বের করতে চান, কিন্তু শুধুমাত্র Region "East"-এ:
Total Sales in East = CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East")
এখানে:
- CALCULATE ফাংশনটি SUM(Sales[Amount]) ক্যালকুলেশন করবে, কিন্তু Sales[Region] = "East" শর্তটি filter context তৈরি করবে।
- এই ফিল্টারটি শুধুমাত্র Region "East"-এর জন্য Amount এর যোগফল বের করবে।
Filter Context-এ ব্যবহৃত DAX Functions:
- CALCULATE
- FILTER
- ALL
- ALLSELECTED
- USERELATIONSHIP
এই ফাংশনগুলি filter context তৈরি করে এবং ডেটার উপর শর্ত প্রয়োগ করে।
৩. Row Context এবং Filter Context এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Row Context | Filter Context |
|---|---|---|
| সংজ্ঞা | প্রতিটি সারির জন্য আলাদা ক্যালকুলেশন করা হয়। | নির্দিষ্ট শর্ত বা ফিল্টারের মাধ্যমে ডেটার সেট নির্বাচন করা হয়। |
| কিভাবে কাজ করে | এটি iterators এবং calculated columns এর মাধ্যমে কাজ করে। | এটি CALCULATE, FILTER এবং অন্যান্য filter functions এর মাধ্যমে কাজ করে। |
| ডেটার প্রভাব | সারির প্রতিটি মান আলাদাভাবে গণনা করা হয়। | ডেটার কোন অংশ ব্যবহার করা হবে তা filter এর মাধ্যমে নির্ধারিত হয়। |
| উদাহরণ | SUMX, AVERAGEX ফাংশনগুলি row context তৈরি করে। | CALCULATE, FILTER ফাংশনগুলি filter context তৈরি করে। |
| প্রধান ব্যবহার | calculated columns এবং iterative calculations। | measure calculation এবং filtering ডেটার উপরে কাজ করার জন্য। |
| Context Type | Row-based calculation | Filter-based aggregation |
৪. Row Context এবং Filter Context একসাথে ব্যবহার
Row Context এবং Filter Context একসাথে ব্যবহৃত হয় যখন আপনি একটি measure বা calculated column তৈরি করেন, যেখানে row context ব্যবহার করে প্রতিটি সারি গণনা করা হয় এবং filter context প্রয়োগ করে ফিল্টার করা হয়।
Example:
ধরা যাক, আপনি Sales টেবিলের Amount এর মোট যোগফল বের করতে চান, কিন্তু Region "East"-এ এবং Product "A"-এ বিক্রয়ের জন্য:
Total Sales East Product A = CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East", Sales[Product] = "A")
এখানে:
- Row Context তৈরি হচ্ছে SUM ফাংশনের মাধ্যমে, যা Sales[Amount] এর যোগফল গণনা করবে।
- Filter Context তৈরি হচ্ছে Sales[Region] = "East" এবং Sales[Product] = "A" শর্তগুলি প্রয়োগ করার মাধ্যমে।
এটি শুধুমাত্র সেই Sales রেকর্ডগুলির জন্য Amount এর যোগফল বের করবে যেখানে Region "East" এবং Product "A" রয়েছে।
৫. Row Context এবং Filter Context এর মধ্যে সম্পর্ক
Row Context এবং Filter Context একে অপরের সাথে সম্পর্কিত হলেও, তাদের ব্যবহারের উদ্দেশ্য আলাদা। Row Context মূলত iterators এবং calculated columns এর জন্য ব্যবহৃত হয়, যেখানে ডেটার প্রতিটি সারির জন্য আলাদা ক্যালকুলেশন করা হয়। অন্যদিকে, Filter Context একটি টেবিল বা কলামের ফিল্টার প্রভাব এবং সিলেকশন নিয়ন্ত্রণ করে, যা ডেটার নির্দিষ্ট অংশ ক্যালকুলেশন করতে ব্যবহৃত হয়।
Filter Context সাধারণত measures এবং CALCULATE ফাংশনের মাধ্যমে ডেটা ফিল্টারিং এবং কাস্টম ক্যালকুলেশন করার জন্য ব্যবহৃত হয়, যেখানে Row Context সাধারণত calculated columns এবং iterators এর জন্য ব্যবহৃত হয়।
সারাংশ
Row Context এবং Filter Context ড্যাক্সের দুইটি অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট। Row Context এর মাধ্যমে প্রতিটি সারির জন্য আলাদা ক্যালকুলেশন করা হয়, এবং Filter Context এর মাধ্যমে আপনি ডেটা ফিল্টার করে নির্দিষ্ট অংশের ক্যালকুলেশন করতে পারেন। এই দুটি কনসেপ্ট একে অপরের সাথে যুক্ত হয়ে ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন করার প্রক্রিয়াকে শক্তিশালী করে তোলে। সঠিকভাবে Row Context এবং Filter Context ব্যবহার করলে আপনি ডেটার আরও গভীর বিশ্লেষণ এবং কার্যকরী রিপোর্ট তৈরি করতে পারবেন।
Read more