Row Context এবং Filter Context গাইড ও নোট

Big Data and Analytics - ড্যাক্স দিয়ে ডেটা মডেলিং (Data Modeling with DAX) - DAX Functions এবং Expressions
264

DAX (Data Analysis Expressions) হলো একটি ভাষা যা Power BI, Excel PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। DAX ফাংশনগুলি ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরির জন্য ব্যবহৃত হয়। এর মধ্যে Row Context এবং Filter Context হল দুটি গুরুত্বপূর্ণ কনসেপ্ট যা DAX-এর কার্যকারিতা এবং পারফরম্যান্সকে গভীরভাবে প্রভাবিত করে। এই কনসেপ্টগুলো ডেটার প্রক্রিয়াকরণের সময়, বিশেষ করে calculated columns এবং measures তৈরি করার সময় গুরুত্বপূর্ণ ভূমিকা পালন করে।

এই প্রবন্ধে আমরা Row Context এবং Filter Context কীভাবে কাজ করে এবং কিভাবে আপনি এগুলি ব্যবহার করে জটিল DAX ফাংশনগুলি তৈরি করতে পারেন, তা আলোচনা করব।


১. Row Context কী?

Row Context হল DAX এর একটি গুরুত্বপূর্ণ কনসেপ্ট যা নির্ধারণ করে যখন আপনি একটি calculated column বা iterator function (যেমন SUMX, AVERAGEX, ইত্যাদি) ব্যবহার করেন, তখন ডেটার প্রতিটি সারি একে অপরের সাথে সম্পর্কিত হয়ে একটি নির্দিষ্ট ক্যালকুলেশন সম্পন্ন হয়।

  • Row Context তখন তৈরি হয় যখন DAX কোড একটি টেবিলের প্রতিটি সারির উপর কার্যকর হয় এবং প্রতিটি রো বা সারির জন্য আলাদা গণনা করা হয়।

Row Context এর উদাহরণ:

ধরা যাক, আপনার Sales টেবিল রয়েছে এবং আপনি SalesAmount এবং Discount কলামের জন্য একটি calculated column তৈরি করতে চান যা মোট মূল্য বের করবে:

Total Price = Sales[SalesAmount] - Sales[Discount]

এখানে Row Context তৈরি হয়, কারণ DAX প্রতিটি Sales টেবিলের সারি অনুযায়ী এই গাণিতিক ক্যালকুলেশন করে। প্রতিটি সারির জন্য SalesAmount এবং Discount এর মান আলাদা থাকবে এবং তাদের মধ্যে পার্থক্য দেখাবে।

২. Row Context এবং Iterator Functions

Iterator Functions (যেমন SUMX, AVERAGEX, COUNTX) একাধিক সারির উপর কাজ করে এবং প্রতিটি সারির উপর একটি ক্যালকুলেশন প্রয়োগ করে। এগুলি Row Context তৈরি করতে সহায়ক এবং সাধারণত measures বা calculated columns এর মধ্যে ব্যবহৃত হয়।

Iterator Functions এর উদাহরণ:

ধরা যাক, আপনি যদি Sales টেবিলের SalesAmount এবং Quantity এর গুণফল বের করতে চান এবং তারপরে সেগুলির যোগফল চান, তাহলে SUMX ব্যবহার করবেন:

Total Sales = SUMX(Sales, Sales[SalesAmount] * Sales[Quantity])

এখানে, SUMX ফাংশনটি Sales টেবিলের প্রতিটি সারির জন্য SalesAmount এবং Quantity গুণ করবে এবং তারপর তাদের যোগফল প্রদান করবে। এই ক্ষেত্রে, Row Context তৈরি হয়েছে যা প্রতিটি সারির জন্য গণনা করতে সহায়ক।


৩. Filter Context কী?

Filter Context হল DAX এর আরেকটি গুরুত্বপূর্ণ কনসেপ্ট যা calculated measures এবং aggregations এ ব্যবহৃত হয়। যখন আপনি কোনো measure তৈরি করেন, তখন বিভিন্ন ফিল্টার প্রয়োগ করা হয় যা ফলাফলকে পরিবর্তন করে। Filter Context নির্ধারণ করে, কোন ডেটা ফিল্টার করা হবে এবং কোন ডেটা অন্তর্ভুক্ত হবে।

Filter Context এর উদাহরণ:

ধরা যাক, আপনি Sales টেবিলের Amount এর মোট যোগফল বের করতে চান, যেখানে Region হল "East":

Total Sales East = CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East")

এখানে, Sales[Region] = "East" একটি filter প্রয়োগ করছে যা Filter Context তৈরি করে। এই ফিল্টারটি Sales টেবিলের সেই সারিগুলিকে বেছে নেবে যেখানে Region হল "East", এবং তারপরে SUM(Sales[Amount]) ক্যালকুলেশন করবে।

৪. Row Context এবং Filter Context এর পার্থক্য

ContextRow ContextFilter Context
সংজ্ঞাপ্রতিটি সারির জন্য এক্সপ্রেশন বা ক্যালকুলেশন প্রয়োগ করা হয়।টেবিলের মধ্যে ডেটা ফিল্টার করা হয় এবং তার উপর নির্দিষ্ট ক্যালকুলেশন করা হয়।
কিভাবে কাজ করেDAX একটি টেবিলের প্রতিটি সারির উপর কাজ করে এবং প্রতিটি সারির জন্য আলাদা ক্যালকুলেশন করা হয়।CALCULATE বা FILTER ফাংশনের মাধ্যমে একটি নির্দিষ্ট ফিল্টার প্রয়োগ করা হয়।
উদাহরণCalculated columns তৈরি করা যেখানে প্রতিটি সারির উপর ক্যালকুলেশন করা হয়।Measures তৈরি করা যেখানে ফিল্টার কনটেক্সটের ভিত্তিতে গণনা করা হয়।

৫. Row Context এবং Filter Context একসাথে ব্যবহার

Row Context এবং Filter Context একসাথে ব্যবহৃত হয় যখন আপনি কোনো measure বা calculated column তৈরি করেন, এবং এর মাধ্যমে আপনাকে dynamic filtering বা calculation করতে হয়। এই দুটি কনটেক্সট একে অপরের সাথে যুক্ত হয়ে ডেটার উপর কার্যকরী ক্যালকুলেশন তৈরি করতে সহায়ক।

Example:

ধরা যাক, আপনি Sales টেবিল থেকে Amount এর মোট যোগফল বের করতে চান, তবে শুধুমাত্র Region "East"-এ:

Total Sales East = 
    CALCULATE(
        SUM(Sales[Amount]), 
        Sales[Region] = "East"
    )

এখানে:

  • Row Context তৈরি হচ্ছে SUM ফাংশনের মাধ্যমে যা Sales[Amount] এর মানের উপর কাজ করছে।
  • Filter Context তৈরি হচ্ছে Sales[Region] = "East" ফিল্টারের মাধ্যমে, যা শুধুমাত্র "East" অঞ্চলের ডেটাকে প্রভাবিত করছে।

৬. EARLIER ফাংশন

EARLIER ফাংশনটি একাধিক row context এর মধ্যে মান ফিরিয়ে আনতে ব্যবহৃত হয়। এটি সাধারণত calculated columns এর মধ্যে ব্যবহৃত হয় যেখানে একাধিক স্তরের row context উপস্থিত থাকে।

Example:

ধরা যাক, আপনি যদি Sales টেবিলের প্রতি পণ্যের জন্য SalesAmount এর সাথে Discount এর পার্থক্য বের করতে চান:

Discount Difference = 
    Sales[Amount] - EARLIER(Sales[Discount], 1)

এখানে, EARLIER ফাংশনটি আগের Discount মানটি ফিরিয়ে দিচ্ছে, যা বর্তমানে Sales[Amount] এর সাথে পার্থক্য বের করতে ব্যবহৃত হচ্ছে।


সারাংশ

Row Context এবং Filter Context ড্যাক্সের দুটি মৌলিক কনসেপ্ট যা calculated columns, measures, এবং iterators ফাংশন ব্যবহারের ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে। Row Context নির্ধারণ করে কিভাবে প্রতিটি সারির উপর এক্সপ্রেশন প্রয়োগ করা হবে, এবং Filter Context নির্ধারণ করে কিভাবে ডেটার উপর ফিল্টার প্রয়োগ হবে এবং ক্যালকুলেশন করা হবে। সঠিকভাবে এই দুটি কনসেপ্টের ব্যবহার ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরির জন্য অত্যন্ত কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...