Calculated Columns এবং Measures গাইড ও নোট

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

DAX (Data Analysis Expressions) হল একটি ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। DAX-এ দুটি প্রধান ধরনের ক্যালকুলেশন রয়েছে: Calculated Columns এবং Measures। এই দুটি ক্যালকুলেশন ডেটার উপর বিভিন্ন ধরনের গণনা, বিশ্লেষণ এবং ফলাফল তৈরি করতে ব্যবহৃত হয়।

এই প্রবন্ধে, আমরা Calculated Columns এবং Measures এর মধ্যে পার্থক্য এবং কীভাবে তাদের ব্যবহৃত হয় তা বিস্তারিতভাবে আলোচনা করব।


১. Calculated Columns

Calculated Columns হল DAX-এ তৈরি করা নতুন কলাম, যা বিদ্যমান টেবিলের উপর ভিত্তি করে তৈরি করা হয়। এই কলামগুলি ডেটাবেসের জন্য নতুন তথ্য বা মান সংযোজন করে এবং এগুলিকে একটি column হিসেবে সেভ করা হয়। এগুলি সাধারণত row-by-row ক্যালকুলেশন তৈরি করার জন্য ব্যবহৃত হয় এবং প্রতিটি সারির জন্য আলাদা মান তৈরি করা হয়।

Syntax:

<Column Name> = <expression>

ব্যবহার:

  • Calculated Column টেবিলের অংশ হিসেবে static values প্রদান করে, অর্থাৎ এটি স্ট্যাটিক ডেটা যা একবার গণনা করা হলে কখনই পরিবর্তিত হয় না।
  • এটি row context-এ কাজ করে, যা প্রতি সারির জন্য নির্দিষ্ট মান হিসাব করে।

উদাহরণ:

ধরা যাক, আপনার Sales টেবিল আছে যেখানে Quantity এবং UnitPrice কলাম রয়েছে এবং আপনি একটি নতুন Total Sales কলাম তৈরি করতে চান যা Quantity এবং UnitPrice গুণফল করবে:

Total Sales = Sales[Quantity] * Sales[UnitPrice]

এটি Sales টেবিলের জন্য একটি নতুন Total Sales কলাম তৈরি করবে, যা প্রতিটি সারির জন্য Quantity এবং UnitPrice এর গুণফল দেখাবে।

Real-World Use Case:

  • Calculated Columns সাধারণত flagging, categorizing, এবং row-based operations (যেমন: মোট বিক্রয় বা মুনাফা গণনা) করার জন্য ব্যবহৃত হয়।
  • উদাহরণ: যদি আপনি চান যে একটি কলাম দেখাবে Sales Amount এর উপর ভিত্তি করে High/Low Sales:
Sales Category = IF(Sales[Amount] > 1000, "High", "Low")

২. Measures

Measures হল DAX-এ তৈরি করা কাস্টম ক্যালকুলেশন যা aggregate values (যেমন SUM, AVERAGE, COUNT) বের করতে ব্যবহৃত হয়। Measures সাধারণত dynamic এবং interactive, অর্থাৎ তারা filter context অনুসারে পরিবর্তিত হয়। এগুলি aggregate functions-এর মতো কাজ করে এবং ভিজ্যুয়ালাইজেশনে ব্যবহার করা হয়।

Syntax:

<Measure Name> = <expression>

ব্যবহার:

  • Measures সাধারণত aggregate ক্যালকুলেশন তৈরি করার জন্য ব্যবহৃত হয়। এটি dynamic হয় এবং filter context বা user interaction অনুযায়ী পরিবর্তিত হয়।
  • Measures প্রতিটি রেকর্ডের জন্য গণনা না করে বরং summary calculations (যেমন, total, average) তৈরি করে।

উদাহরণ:

ধরা যাক, আপনি Sales টেবিলের জন্য একটি Total Sales মেজার তৈরি করতে চান, যা SalesAmount এর মোট যোগফল প্রদান করবে:

Total Sales = SUM(Sales[Amount])

এটি Sales টেবিলের সমস্ত Sales[Amount] এর যোগফল দেবে।

Real-World Use Case:

  • Measures সাধারণত dynamic summaries, aggregations, এবং dynamic filtering এর জন্য ব্যবহৃত হয়।
  • উদাহরণ: আপনি যদি Year-to-Date (YTD) বিক্রয় বের করতে চান:
YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])

এটি Sales[Amount] এর YTD বিক্রয় পরিমাণ বের করবে, যেখানে Sales[Date] কলামটি সময়ের তথ্য ধারণ করে।


Calculated Columns vs. Measures: পার্থক্য

CharacteristicCalculated ColumnsMeasures
ContextRow Context - প্রতিটি সারি অনুযায়ী গণনা হয়Filter Context - ফিল্টার অনুযায়ী গণনা হয়
Storageটেবিলের অংশ হিসেবে সংরক্ষিত হয়শুধুমাত্র ক্যালকুলেশন হিসেবে উপস্থিত হয়
Use Caseরো-ভিত্তিক ক্যালকুলেশন (যেমন: Total Sales per row)অ্যাগ্রিগেট ক্যালকুলেশন (যেমন: Total Sales overall)
Performanceঅনেক সময় বেশি পারফরম্যান্স ব্যবহার হতে পারে (বিশাল ডেটাসেটে)সাধারণত কম পারফরম্যান্স ব্যবহৃত হয়, কিন্তু বেশি ফ্লেক্সিবল
Calculationএকবার হিসাব করা হলে পরিবর্তিত হয় নাফিল্টার কনটেক্সট পরিবর্তনের সাথে পরিবর্তিত হয়

৩. When to Use Calculated Columns vs. Measures

Calculated Columns:

  • আপনি যদি প্রতিটি সারির জন্য কোনো ক্যালকুলেশন করতে চান (যেমন, Total Sales বা Profit Margin প্রজেক্ট করার জন্য)।
  • যদি আপনার একটি নির্দিষ্ট মানের ভিত্তিতে ডেটা শ্রেণিবদ্ধ করতে চান (যেমন, "High" বা "Low" ক্যাটেগরি)।
  • যখন আপনি স্ট্যাটিক ডেটার উপর ভিত্তি করে একটি কলাম তৈরি করতে চান যা ফিল্টারের প্রভাবিত হয় না।

Measures:

  • আপনি যদি summary calculations বা aggregated data তৈরি করতে চান (যেমন, Total Sales, Average Sales, Count of Products ইত্যাদি)।
  • যদি আপনার ক্যালকুলেশন filter context অনুযায়ী পরিবর্তিত হয় এবং dynamic হতে পারে।
  • যখন আপনি কোনো কাস্টম ক্যালকুলেশন করতে চান যা শুধুমাত্র reporting বা dashboard-এ ব্যবহৃত হবে এবং column-based data নয়।

সারাংশ

Calculated Columns এবং Measures হল DAX-এ দুটি গুরুত্বপূর্ণ ক্যালকুলেশন টুল, যা ব্যবহারকারীদের ডেটার উপর ভিন্ন ভিন্ন বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করতে সহায়ক। Calculated Columns সাধারণত row context-এ কাজ করে এবং static values প্রদান করে, যেখানে Measures সাধারণত filter context-এ কাজ করে এবং dynamic summaries বা aggregations তৈরি করে। DAX-এ এই দুটি ক্যালকুলেশন ব্যবহারের সময়, ডেটার প্রকার এবং প্রয়োজন অনুসারে সঠিক পদ্ধতি বেছে নেওয়া গুরুত্বপূর্ণ।

Content added By

Calculated Column কী এবং কিভাবে তৈরি করতে হয়?

267

DAX (Data Analysis Expressions) একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করতে। Calculated Column হল DAX-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা টেবিলের মধ্যে একটি নতুন কলাম যোগ করার জন্য ব্যবহৃত হয়। এটি একটি নতুন কলাম তৈরি করে যা একটি DAX formula বা এক্সপ্রেশন অনুযায়ী row context ভিত্তিতে ডেটা হিসাব করে এবং ডেটা টেবিলে একটি নতুন কলামের মান প্রদর্শন করে।

Calculated Column কী?

Calculated Column হল একটি নতুন কলাম যা একটি DAX formula ব্যবহার করে একটি টেবিলের প্রতি সারি বা রো-ভিত্তিক ডেটা হিসাব করে। এটি একটি static মান (ফিক্সড ভ্যালু) তৈরি করে যা টেবিলের ভিতরে ডেটা প্রদর্শন করে, এবং এই মানটি স্বয়ংক্রিয়ভাবে প্রতিটি রো এর জন্য নির্ধারিত হয়।

  • Calculated Column সাধারণত row context ভিত্তিক হয়ে কাজ করে, অর্থাৎ, এটি টেবিলের প্রতিটি রো বা সারির উপর কাজ করে।
  • এটি আপনার Power BI মডেল বা Excel PowerPivot মডেলে static calculations তৈরি করার জন্য ব্যবহার করা হয়।
  • একটি Calculated Column তৈরি করার পরে, এটি static data হিসেবে টেবিলের মধ্যে স্টোর হয় এবং তা অটোমেটিক্যালি আপডেট হয় না, তবে আপনি যখন নতুন ডেটা লোড করবেন তখন এটি আবার ক্যালকুলেট হবে।

Calculated Column তৈরি করার প্রক্রিয়া

Calculated Column তৈরি করার জন্য, আপনাকে Power BI অথবা Excel PowerPivot-এ DAX ফর্মুলা ব্যবহার করতে হবে। নিচে এর একটি উদাহরণ এবং তৈরি করার ধাপ দেয়া হলো।

১. Power BI-এ Calculated Column তৈরি করা

Step 1: Power BI এ Data Model খুলুন

  • Power BI Desktop খুলুন এবং একটি ডেটা মডেল লোড করুন।

Step 2: নতুন Calculated Column তৈরি করুন

  • Data ভিউতে যান এবং টেবিল নির্বাচন করুন যেখানে আপনি নতুন কলাম তৈরি করতে চান।
  • Modeling ট্যাবে যান এবং New Column ক্লিক করুন।

Step 3: DAX ফর্মুলা লিখুন

  • নতুন Calculated Column তৈরি করতে DAX formula bar এ একটি DAX ফর্মুলা লিখুন।

Example: ধরা যাক, আপনি Sales টেবিলের একটি নতুন কলাম তৈরি করতে চান, যা Amount এবং Discount এর পার্থক্য প্রদর্শন করবে:

Final Sales = Sales[Amount] - Sales[Discount]

এটি Sales টেবিলের একটি নতুন কলাম তৈরি করবে যার নাম হবে Final Sales, এবং এটি প্রতিটি রো বা সারির জন্য Amount এবং Discount কলামের মানের পার্থক্য বের করবে।

Step 4: Calculated Column ব্যবহার করুন

  • আপনি যখন Calculated Column তৈরি করবেন, তখন তা টেবিলের সাথে যুক্ত হবে এবং আপনি report, visualization, বা অন্যান্য ক্যালকুলেশনে এটি ব্যবহার করতে পারবেন।

২. Excel PowerPivot-এ Calculated Column তৈরি করা

Step 1: PowerPivot খুলুন

  • Excel-এ PowerPivot ব্যবহার করতে, PowerPivot ট্যাব থেকে Manage ক্লিক করুন।
  • আপনার ডেটা মডেল বা টেবিল নির্বাচন করুন যেখানে আপনি নতুন কলাম যোগ করতে চান।

Step 2: নতুন Calculated Column তৈরি করুন

  • PowerPivot উইন্ডোতে, নতুন কলাম তৈরি করতে Add Column ক্লিক করুন।

Step 3: DAX ফর্মুলা লিখুন

  • Calculated Column তৈরি করতে Formula bar-এ একটি DAX ফর্মুলা লিখুন।

Example: ধরা যাক, আপনি Sales টেবিলের একটি নতুন কলাম তৈরি করতে চান যা Amount এবং Tax এর যোগফল প্রদর্শন করবে:

Total Sales = Sales[Amount] + Sales[Tax]

এটি Sales টেবিলের জন্য একটি নতুন কলাম তৈরি করবে যার নাম হবে Total Sales এবং এটি Amount এবং Tax কলামের যোগফল প্রদান করবে।


Calculated Column এবং Measure এর মধ্যে পার্থক্য

FeatureCalculated ColumnMeasure
Calculation ContextRow context (row-by-row calculation)Aggregate context (entire table or filtered set)
StorageStored in the data model as a new columnNot stored in the data model; calculated at query time
RefreshStatic values that are calculated when data is refreshedDynamic values calculated based on filters and context
Use CasesUse when you need new columns with fixed valuesUse when you need to perform aggregation or dynamic calculations
PerformanceCan affect performance with large datasetsMore efficient for aggregating data at query time

উদাহরণ 1: Sales Calculation with Tax

ধরা যাক, আপনি একটি Sales টেবিলের জন্য Total Sales with Tax তৈরি করতে চান, যেখানে Amount এবং Tax কলাম থাকবে। আপনি Calculated Column ব্যবহার করতে পারেন:

Total Sales with Tax = Sales[Amount] + Sales[Tax]

এটি প্রতিটি সারি (রো) এর জন্য Amount এবং Tax এর যোগফল হিসাব করবে এবং Total Sales with Tax নামে একটি নতুন কলাম তৈরি করবে।


উদাহরণ 2: Product Category Identification

ধরা যাক, আপনার Sales টেবিলের মধ্যে পণ্য বিক্রয়ের তথ্য রয়েছে এবং আপনি চান যে যদি বিক্রয় 1000 এর বেশি হয়, তবে এটি "High Value Product" হিসেবে চিহ্নিত হোক, অন্যথায় "Low Value Product"।

Product Category = IF(Sales[Amount] > 1000, "High Value Product", "Low Value Product")

এটি Sales টেবিলের একটি নতুন কলাম তৈরি করবে যার নাম হবে Product Category, এবং এটি বিক্রয় পরিমাণ অনুযায়ী পণ্যটি High Value Product বা Low Value Product হিসাবে চিহ্নিত করবে।


Calculated Column তৈরি করার ক্ষেত্রে কিছু টিপস

  1. Complex Calculations: যদি আপনার ক্যালকুলেশন জটিল হয়, তাহলে প্রয়োজনে Variables ব্যবহার করুন, যা আপনার ক্যালকুলেশনকে আরও পরিষ্কার এবং অপটিমাইজড করতে সাহায্য করবে।
  2. Performance: বড় ডেটাসেটে Calculated Columns ব্যবহারের ক্ষেত্রে সতর্ক থাকুন, কারণ এটি ডেটা মডেলে অতিরিক্ত স্পেস নেয় এবং এটি পারফরম্যান্সে প্রভাব ফেলতে পারে।
  3. Date Table: টাইম সিরিজ ডেটা বিশ্লেষণ করতে হলে, নিশ্চিত করুন যে আপনার ডেটা মডেলে একটি সঠিক Date Table রয়েছে।

সারাংশ

Calculated Column হল DAX-এ একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা টেবিলের ভিতরে নতুন কলাম যোগ করার জন্য ব্যবহৃত হয়। এটি row context এর ভিত্তিতে কাজ করে এবং প্রতিটি সারির জন্য কাস্টম ক্যালকুলেশন তৈরি করে। Power BI বা Excel PowerPivot-এ Calculated Column তৈরি করতে DAX ফর্মুলা ব্যবহার করা হয়, যা ডেটার উপর বিভিন্ন ধরনের static calculation তৈরি করতে সহায়ক। Calculated Columns আপনার ডেটা মডেলকে আরও শক্তিশালী এবং উপকারী করে তোলে, বিশেষত যখন আপনি ডেটা বিশ্লেষণ বা রিপোর্ট তৈরি করতে চান।

Content added By

Measures কী এবং এর প্রয়োজনীয়তা

278

DAX (Data Analysis Expressions) হলো একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। DAX ব্যবহার করে ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন করা সম্ভব। এর মধ্যে Measures একটি অত্যন্ত গুরুত্বপূর্ণ ধারণা যা ব্যবহারকারীদের সঠিক বিশ্লেষণ এবং রিপোর্ট তৈরি করতে সহায়ক হয়।

এই প্রবন্ধে, আমরা Measures এর সংজ্ঞা, প্রয়োজনীয়তা এবং এটি কীভাবে DAX-এ ব্যবহৃত হয় তা বিস্তারিতভাবে আলোচনা করব।


Measures কী?

Measures হল DAX ফাংশনের মাধ্যমে তৈরি করা কাস্টম ক্যালকুলেশন যা সাধারণত একটি summary statistic তৈরি করতে ব্যবহৃত হয়, যেমন total sales, average profit, count of customers, ইত্যাদি। এটি একটি dynamic calculation যা ডেটার উপর নির্ভর করে context অনুযায়ী গণনা বা মান পরিবর্তন করে।

Measures এর প্রকৃতি:

  • Measures শুধুমাত্র aggregated values (যেমন: SUM, AVERAGE, COUNT) তৈরি করতে ব্যবহৃত হয়।
  • এটি dynamic এবং context-sensitive হয়, অর্থাৎ যখন filter context বা row context পরিবর্তিত হয়, তখন Measure এর মানও পরিবর্তিত হয়।
  • Measures সাধারণত Power BI বা Excel PivotTablesdynamic reports তৈরি করতে ব্যবহৃত হয়।

Measures এর প্রয়োজনীয়তা

Measures ব্যবহারের অনেক উপকারিতা রয়েছে, যা ডেটা বিশ্লেষণ এবং রিপোর্টিং প্রক্রিয়াকে অনেক সহজ এবং কার্যকরী করে তোলে। এখানে Measures ব্যবহারের কিছু গুরুত্বপূর্ণ কারণ দেওয়া হলো:

১. Dynamic Calculation (ডাইনামিক ক্যালকুলেশন)

Measures ডেটা বিশ্লেষণের সময় dynamic calculation তৈরি করতে সহায়ক। এটি filter context এবং row context অনুযায়ী ডেটা হিসাব করতে পারে, ফলে ব্যবহারকারী যখন filters বা slicers পরিবর্তন করেন, তখন Measures নিজে থেকেই তার ফলাফল আপডেট করে।

উদাহরণ:

ধরা যাক, আপনি Sales টেবিলের Total Sales বের করতে চান। আপনি Measure তৈরি করতে পারেন:

Total Sales = SUM(Sales[Amount])

এটি Total Sales বের করবে এবং যখন ব্যবহারকারী Region বা Product সিলেক্ট করবেন, তখন Measure স্বয়ংক্রিয়ভাবে সংশ্লিষ্ট ফিল্টার অনুযায়ী ফলাফল আপডেট করবে।

২. Performance Efficiency (পারফরম্যান্স দক্ষতা)

Measures ডাইনামিকভাবে calculation তৈরি করে এবং কোনো calculated column তৈরি না করে সরাসরি ডেটা মডেলের উপর কাজ করে, যা পারফরম্যান্সের জন্য অত্যন্ত উপকারী। Calculated columns ডেটা মডেলে physical data হিসেবে সঞ্চিত হয়, যা বড় ডেটাসেটে পারফরম্যান্স হ্রাস করতে পারে।

উদাহরণ:

যদি আপনি Total Sales বা Average Sales এর মতো aggregated মান নির্ধারণ করতে চান, তবে Measures ব্যবহারে ডেটা সঞ্চয় এবং পারফরম্যান্স উন্নত হবে।

৩. Aggregated Data (সমষ্টিগত ডেটা)

Measures ফাংশনগুলি ব্যবহারকারীদের aggregated data তৈরিতে সহায়ক হয়, যেমন মোট বিক্রয়, গড় মুনাফা, সর্বোচ্চ বিক্রয়, ইত্যাদি। এটি DAX functions দ্বারা dynamic calculations তৈরি করে যেগুলি pivot tables বা visualizations এ প্রদর্শিত হয়।

উদাহরণ:

ধরা যাক, আপনি Sales টেবিল থেকে Average Sales বের করতে চান:

Average Sales = AVERAGE(Sales[Amount])

এটি Sales টেবিলের গড় বিক্রয় পরিমাণ বের করবে, যা পরিবর্তিত filter context অনুযায়ী আপডেট হবে।

৪. Reuse and Scalability (পুনঃব্যবহারযোগ্যতা এবং স্কেলেবিলিটি)

একটি Measure একবার তৈরি করার পর সেটি পুরো মডেলে বা রিপোর্টে ব্যবহার করা যায়। এটি পুনঃব্যবহারযোগ্য এবং স্কেলেবল। Measure ব্যবহার করে আপনি Power BI বা Excel ড্যাশবোর্ডের বিভিন্ন ভিজ্যুয়াল বা টেবিলে একই ক্যালকুলেশন প্রয়োগ করতে পারেন।

উদাহরণ:

ধরা যাক, আপনি Total Sales তৈরি করেছেন, এটি রিপোর্টের বিভিন্ন ভিজ্যুয়াল বা টেবিলের মধ্যে একই ফলাফল প্রদান করবে, যা কার্যকারিতা বৃদ্ধি করে।

৫. No Data Duplication (ডেটা অনুলিপি না হওয়া)

Measures-এর মাধ্যমে কাস্টম ক্যালকুলেশন করার ফলে calculated columns এর মতো ডেটা পুনরায় সংরক্ষণ বা কপি করার প্রয়োজন পড়ে না। ফলে storage space সংরক্ষিত হয় এবং ডেটা বিশ্লেষণ দ্রুততর হয়।


Measures vs Calculated Columns

Measures এবং Calculated Columns উভয়ই DAX-এ ব্যবহৃত হয় তবে তাদের মধ্যে কিছু মূল পার্থক্য রয়েছে:

বৈশিষ্ট্যMeasuresCalculated Columns
Calculation ContextDynamic, depends on filter and row context.Static, calculated once per row.
Data StorageDoes not store data, calculated at runtime.Stores calculated results as part of the table.
PerformanceMore efficient, especially for large datasets.May reduce performance for large datasets.
UsageBest for aggregation and dynamic calculations.Best for row-level calculations.

Measures সাধারণত aggregations এবং summary statistics তৈরি করতে ব্যবহৃত হয়, যেমন SUM, AVERAGE, MAX ইত্যাদি। অন্যদিকে, Calculated Columns এক্সপ্রেশন অনুযায়ী প্রতিটি সারির জন্য মান তৈরি করতে ব্যবহৃত হয়।


Measures এর প্রকার

Measures এর মধ্যে কিছু সাধারণ প্রকার রয়েছে:

  • Basic Aggregation Measures: যেমন SUM, AVERAGE, COUNT ইত্যাদি।
  • Time Intelligence Measures: যেমন YTD (Year-to-Date), QTD (Quarter-to-Date), MTD (Month-to-Date) ইত্যাদি।
  • Conditional Measures: যেখানে শর্তের উপর ভিত্তি করে গণনা করা হয়, যেমন IF, SWITCH, IFERROR ইত্যাদি।

উদাহরণ:

YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])

এটি Year-to-Date (YTD) বিক্রয় পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য রাখবে।


সারাংশ

Measures হল DAX-এর একটি গুরুত্বপূর্ণ অংশ যা dynamic calculations এবং aggregation তৈরি করতে ব্যবহৃত হয়। এটি filter context এবং row context অনুযায়ী ফলাফল পরিবর্তন করতে সক্ষম এবং performance optimization সহায়ক। Measures কাস্টম ক্যালকুলেশন, রিপোর্টিং এবং বিশ্লেষণকে আরও দ্রুত, স্কেলেবল এবং কার্যকরী করে তোলে। ডেটা বিশ্লেষণে Measures ব্যবহার করে আপনি একাধিক ভিজ্যুয়াল এবং ক্যালকুলেশন পুনঃব্যবহারযোগ্য এবং আরও দ্রুত করতে সক্ষম হন।

Content added By

Calculated Columns এবং Measures এর পার্থক্য

296

DAX (Data Analysis Expressions) হল একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরির জন্য। DAX-এ দুটি গুরুত্বপূর্ণ উপাদান Calculated Columns এবং Measures যা ডেটা মডেল এবং রিপোর্ট তৈরি করতে ব্যবহৃত হয়, তবে এগুলির মধ্যে পার্থক্য এবং ব্যবহার ক্ষেত্রে গুরুত্বপূর্ণ পার্থক্য রয়েছে।

এই প্রবন্ধে আমরা Calculated Columns এবং Measures এর মধ্যে পার্থক্য এবং ব্যবহার সম্পর্কিত কিছু গুরুত্বপূর্ণ ধারণা আলোচনা করব।


১. Calculated Columns

Calculated Columns হল DAX-এর এমন একটি ফিচার যা একটি টেবিলের মধ্যে নতুন কলাম তৈরি করে এবং এই কলামটির মান row-by-row calculation ভিত্তিতে তৈরি হয়। এটি ডেটা মডেলে permanent কলাম হিসেবে যোগ করা হয় এবং একবার তৈরি হওয়ার পর এই কলামটি টেবিলের অংশ হয়ে যায়।

Calculated Columns এর বৈশিষ্ট্য:

  • Row-by-Row Calculation: প্রতিটি সারি আলাদাভাবে গণনা করা হয়। এক কলামে (বা এক্সপ্রেশনে) বিভিন্ন সারি বা ডেটার জন্য আলাদা মান বের করা হয়।
  • Permanent in the Table: এটি টেবিলের অংশ হয়ে যায়, অর্থাৎ আপনি যখন কোনো টেবিলের কলামটি দেখে যাবেন, তখন এটি সেই টেবিলের অংশ হিসেবে দেখা যাবে।
  • Data Refresh: ডেটা মডেল রিফ্রেশ করার সময় calculated columns পুনঃগণনা করা হয়।

Calculated Columns এর উদাহরণ:

ধরা যাক, Sales টেবিলে SalesAmount এবং Discount কলাম রয়েছে, এবং আপনি একটি নতুন কলাম তৈরি করতে চান, যা FinalPrice হবে:

FinalPrice = Sales[SalesAmount] - Sales[Discount]

এই ফর্মুলাটি প্রতিটি সারির জন্য SalesAmount এবং Discount এর পার্থক্য হিসাব করবে এবং একটি নতুন কলাম FinalPrice তৈরি করবে।


২. Measures

Measures হল DAX-এর আরেকটি গুরুত্বপূর্ণ ফিচার যা টেবিলের বা ডেটার উপর aggregation বা calculation করে, কিন্তু এটি dynamic calculation হিসাবে কাজ করে এবং filter context অনুযায়ী এটি পরিবর্তিত হয়। Measures এক্সপ্রেশন শুধুমাত্র তখন হিসাব করা হয় যখন আপনি টেবিল বা রিপোর্টে তা দেখানোর জন্য এটি ব্যবহার করেন।

Measures এর বৈশিষ্ট্য:

  • Dynamic Calculation: Measures ডেটার ওপর নির্দিষ্ট filter context অনুযায়ী ফলাফল দেয়। এটি real-time ক্যালকুলেশন করে এবং এটি সবসময় প্রক্রিয়া হয়।
  • Not Stored in the Table: Measures কোনো টেবিলের অংশ হিসেবে সংরক্ষিত হয় না; এটি শুধুমাত্র ডেটা মডেলের মধ্যে হিসাব করা হয় এবং তা কেবল তখনই কাজ করে যখন আপনি এটি দেখানোর জন্য ব্যবহার করেন।
  • Aggregate Calculation: সাধারণত SUM, AVERAGE, COUNT, MAX, MIN ইত্যাদি ফাংশন দিয়ে Measures তৈরি করা হয়, যা ডেটাকে aggregate করে দেখানোর জন্য ব্যবহৃত হয়।

Measures এর উদাহরণ:

ধরা যাক, আপনি যদি Sales টেবিলের মোট বিক্রয় পরিমাণ (বিক্রয় সংখ্যা) বের করতে চান, তাহলে একটি Measure ব্যবহার করতে হবে:

Total Sales = SUM(Sales[SalesAmount])

এই Measureটি SalesAmount কলামের মোট যোগফল দেবে, কিন্তু এটি শুধুমাত্র তখন গণনা করবে যখন আপনি রিপোর্ট বা ড্যাশবোর্ডে এটি প্রদর্শন করবেন। Measures কোনো নির্দিষ্ট কলাম বা সারিতে স্থায়ীভাবে সংরক্ষিত হয় না।


৩. Calculated Columns এবং Measures এর মধ্যে পার্থক্য

বৈশিষ্ট্যCalculated ColumnsMeasures
Calculation TypeRow-by-row calculationAggregate calculation based on filter context
StorageStored as part of the tableNot stored, calculated dynamically during report visualizations
ContextDoes not depend on filter contextDepends on filter context and context transitions
Use CaseUsed for creating new columns for data manipulationUsed for aggregating, calculating summary statistics
Calculation FrequencyCalculated during data refresh or when the model is updatedCalculated when used in reports, dashboards, or visualizations
ExampleFinalPrice = Sales[SalesAmount] - Sales[Discount]Total Sales = SUM(Sales[SalesAmount])

৪. When to Use Calculated Columns and When to Use Measures

When to Use Calculated Columns:

  • যখন আপনি এমন একটি new column তৈরি করতে চান যা row-by-row calculation করে।
  • যখন আপনি টেবিলের মধ্যে static calculation করতে চান যা real-time পরিবর্তন না হয়।
  • যখন আপনাকে ডেটাতে complex calculations বা conditional logic প্রয়োগ করতে হবে এবং সেই কলামের মান পরবর্তী বিশ্লেষণের জন্য প্রয়োজন হবে।

When to Use Measures:

  • যখন আপনাকে aggregate calculations (যেমন, SUM, AVERAGE, MAX) করতে হবে।
  • যখন আপনি চান যে calculation বা aggregation রিপোর্টের সময় filter context অনুযায়ী পরিবর্তিত হোক।
  • যখন আপনি dynamic calculations তৈরি করতে চান যা টেবিল বা ভিজ্যুয়ালাইজেশনের মধ্যে পরিবর্তিত হবে।

৫. Best Practices for Using Calculated Columns and Measures

  • Use Measures for Aggregations: Aggregations করতে হলে Measures ব্যবহার করুন, কারণ এগুলি dynamic এবং filter context অনুযায়ী কাজ করে। এটি ডেটার সঠিক বিশ্লেষণ এবং গণনা করার জন্য সবচেয়ে কার্যকরী।
  • Minimize Calculated Columns: Calculated Columns শুধুমাত্র সেই ক্ষেত্রে ব্যবহার করুন যখন আপনাকে টেবিলের মধ্যে একটি static value রাখতে হবে যা পরবর্তী বিশ্লেষণের জন্য ব্যবহার হবে।
  • Efficient Measures: Measures এর জন্য filter expressions যতটা সম্ভব সরল এবং নির্দিষ্ট করুন। কমপ্লেক্স বা একাধিক ফিল্টার প্রয়োগ করার সময় পারফরম্যান্স খেয়াল রাখুন।
  • Use Variables in Calculations: Measures বা Calculated Columns এর মধ্যে variables ব্যবহার করলে তা calculation এবং কোডের পুনঃব্যবহার কমাবে, যা কোডের পারফরম্যান্স এবং পাঠযোগ্যতা বাড়াবে।

সারাংশ

Calculated Columns এবং Measures দুটি গুরুত্বপূর্ণ উপাদান যা DAX-এ ডেটার বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরিতে ব্যবহৃত হয়। Calculated Columns হল row-by-row calculations যা টেবিলের মধ্যে নতুন কলাম তৈরি করে, এবং Measures হল dynamic aggregation calculations যা filter context অনুযায়ী পরিমাপ বা গণনা করে। প্রতিটি ফাংশন তার নিজস্ব ব্যবহারের ক্ষেত্রে এবং উদ্দেশ্য অনুযায়ী গুরুত্বপূর্ণ। সঠিকভাবে ব্যবহার করলে এগুলি ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরির প্রক্রিয়াকে আরো কার্যকরী এবং দ্রুত করে তোলে।

Content added By

Measures এর মাধ্যমে ডাইনামিক ডেটা গণনা

257

DAX (Data Analysis Expressions) হলো একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। Measures হল DAX-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডাইনামিক ডেটা গণনা করতে ব্যবহৃত হয়। Measures হল কাস্টম ক্যালকুলেশন যা dynamic aggregation এবং context-specific calculations করতে সাহায্য করে, এবং এটি filter context অনুযায়ী ফলাফল পরিবর্তন করে।

এই প্রবন্ধে, আমরা Measures এবং এর মাধ্যমে dynamic data calculation কিভাবে করা যায় তা বিস্তারিতভাবে আলোচনা করব। Measures কিভাবে DAX expressions ব্যবহার করে এক্সপ্রেশন বা ফাংশনগুলির উপর নির্ভরশীল ক্যালকুলেশন তৈরি করতে সহায়ক হয়, তা দেখানো হবে।


১. Measures এর মৌলিক ধারণা

Measures হল DAX ফাংশনের মাধ্যমে তৈরি হওয়া কাস্টম ক্যালকুলেশন বা এক্সপ্রেশন যা একটি ডাইনামিক আউটপুট প্রদান করে, যা filter context অনুযায়ী পরিবর্তিত হয়। Measures সাধারণত aggregations (যেমন SUM, AVERAGE, COUNT, ইত্যাদি) বা কাস্টম এক্সপ্রেশন হিসাবে ব্যবহৃত হয় এবং ডেটাকে dynamic ভাবে গণনা করতে সক্ষম।

Measures-এর সুবিধা:

  • Dynamic Calculation: Measures এর ফলাফল পরিবর্তিত হয় filter context বা user interaction এর ওপর ভিত্তি করে। যেমন slicers, filters, এবং drill-through থেকে যে ডেটা নির্বাচিত হয় তার উপর ভিত্তি করে ফলাফল পরিবর্তিত হয়।
  • Memory Efficient: Measures কোডের মাধ্যমে ডেটা গণনা করে এবং এটি ডেটাবেসে stored হয় না, তাই এটি calculation memory কম খরচে পরিচালনা করে।
  • Context-Sensitive: Measures ফিল্টার এবং visual context অনুযায়ী ফলাফল পরিবর্তন করে।

২. Measure তৈরি করা

একটি Measure তৈরি করতে হলে, DAX ফাংশনের একটি এক্সপ্রেশন ব্যবহার করা হয়। DAX এক্সপ্রেশন সাধারণত aggregate functions, logical functions, বা mathematical expressions এর মাধ্যমে তৈরি হয়।

Example 1: Total Sales Measure

ধরা যাক, আপনি Sales টেবিলের মোট বিক্রয় পরিমাণ নির্ধারণ করতে চান, যেখানে Amount কলামটি বিক্রয়ের পরিমাণ ধারণ করে। আপনি একটি Measure তৈরি করতে পারেন:

Total Sales = SUM(Sales[Amount])

এখানে, SUM ফাংশনটি Sales[Amount] কলামের সমস্ত মান যোগ করবে এবং একটি measure তৈরি করবে যা Total Sales হিসেবে প্রদর্শিত হবে।

Example 2: Average Sales Measure

যদি আপনি Sales টেবিলের গড় বিক্রয় পরিমাণ বের করতে চান, তবে আপনি AVERAGE ফাংশন ব্যবহার করতে পারেন:

Average Sales = AVERAGE(Sales[Amount])

এখানে, AVERAGE ফাংশনটি Sales[Amount] কলামের গড় মান নির্ধারণ করবে এবং সেই মানকে Average Sales হিসেবে প্রদর্শন করবে।


৩. Measures এর মাধ্যমে Dynamic Calculation

Measures ব্যবহার করে ডাইনামিক ডেটা গণনা করা সম্ভব, যা filter context অনুযায়ী পরিবর্তিত হয়। এটি আপনাকে রিপোর্ট বা ড্যাশবোর্ডে ইন্টারেকটিভ ক্যালকুলেশন করতে সহায়ক হয়।

Example: Sales in Selected Year

ধরা যাক, আপনি Sales টেবিল থেকে একটি measure তৈরি করতে চান যা নির্দিষ্ট একটি বছরে বিক্রয়ের পরিমাণ প্রদর্শন করবে। এখানে Year কলামটি তারিখের তথ্য ধারণ করছে এবং ব্যবহারকারী Year Slicer এর মাধ্যমে বছর নির্বাচন করতে পারবেন।

Sales in Selected Year = 
CALCULATE(SUM(Sales[Amount]), Sales[Year] = SELECTEDVALUE(Year[Year]))

এখানে:

  • CALCULATE ফাংশনটি SUM ফাংশনটি পরিবর্তন করবে এবং Sales[Year] কলামের মধ্যে নির্বাচিত Year অনুযায়ী Amount এর যোগফল প্রদর্শন করবে।
  • SELECTEDVALUE(Year[Year]) ফাংশনটি Year Slicer থেকে নির্বাচিত বছরটির মান ফিরিয়ে দেবে।

Real-World Application:

এই ধরনের dynamic measures ব্যবসায়িক বিশ্লেষণের জন্য খুবই উপকারী, যেখানে ব্যবহারকারী বছরের মধ্যে তুলনা বা অন্য যেকোনো শর্তের ভিত্তিতে ডেটা বিশ্লেষণ করতে পারে।


৪. Dynamic Filters with Measures

Measures ব্যবহার করে আপনি dynamic filters প্রয়োগ করতে পারেন যা ব্যবহারকারীর নির্বাচনের উপর ভিত্তি করে পরিবর্তিত হয়। এটি filter context এর উপর নির্ভরশীল হয় এবং ইন্টার‌্যাকটিভ রিপোর্টে কাস্টম ক্যালকুলেশন তৈরি করতে সহায়ক।

Example: Total Sales for a Specific Region

ধরা যাক, আপনি Sales টেবিল থেকে Region অনুযায়ী বিক্রয় পরিমাণ বের করতে চান। এখানে Region একটি সিলেক্টেবল ফিল্টার (slicer) হবে:

Total Sales by Region = 
CALCULATE(SUM(Sales[Amount]), Sales[Region] = SELECTEDVALUE(Region[Region]))

এখানে:

  • CALCULATE ফাংশনটি Sales[Amount] এর মোট যোগফল বের করবে, তবে শুধুমাত্র সিলেক্ট করা Region অনুযায়ী ফলাফল প্রদর্শন করবে।
  • SELECTEDVALUE ফাংশনটি সিলেক্ট করা Region ফিরিয়ে দেবে এবং সেই অনুযায়ী ফলাফল প্রদান করবে।

Real-World Application:

এ ধরনের কাস্টম ক্যালকুলেশন ব্যবহারকারীদের বিভিন্ন region, category, বা time period এর ওপর ভিত্তি করে বিক্রয়ের পরিমাণ বা অন্য মেট্রিক্স ট্র্যাক করতে সহায়ক হয়।


৫. Use of Measures for Conditional Aggregations

Measures ব্যবহার করে আপনি কন্ডিশনাল ক্যালকুলেশন তৈরি করতে পারেন, যেমন একটি শর্তে বিক্রয়ের পরিমাণ, লাভ বা অন্য যেকোনো মেট্রিক্স নির্ধারণ করা।

Example: Sales Greater than 1000

ধরা যাক, আপনি Sales টেবিল থেকে একটি measure তৈরি করতে চান, যা শুধু সেই বিক্রয়ের পরিমাণ গণনা করবে যেগুলির Amount 1000 এর বেশি।

Sales Greater than 1000 = 
CALCULATE(SUM(Sales[Amount]), Sales[Amount] > 1000)

এখানে, CALCULATE ফাংশনটি Sales[Amount] এর মোট যোগফল বের করবে, তবে শুধুমাত্র সেই রেকর্ডগুলির জন্য যেগুলির Amount 1000 এর বেশি।

Real-World Application:

এটি এমন একটি পরিস্থিতিতে ব্যবহৃত হতে পারে যেখানে আপনি শুধুমাত্র উচ্চ বিক্রয়ের (high-value sales) পরিমাণ গণনা করতে চান, যেমন একটি প্রোডাক্ট ক্যাটেগরির জন্য বা একটি নির্দিষ্ট মার্কেটের জন্য।


৬. Time Intelligence Measures

Time Intelligence ফাংশনগুলি DAX এর গুরুত্বপূর্ণ বৈশিষ্ট্য, যা সময় ভিত্তিক ক্যালকুলেশন করতে সহায়ক। যেমন Year-to-Date (YTD), Month-to-Date (MTD), Quarter-to-Date (QTD) ইত্যাদি।

Example: Year-to-Date (YTD) Sales

ধরা যাক, আপনি Sales টেবিলের জন্য Year-to-Date Sales ক্যালকুলেশন তৈরি করতে চান:

YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])

এটি Sales[Amount] এর Year-to-Date মোট পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য ধারণ করছে।

Real-World Application:

YTD Sales ক্যালকুলেশন ব্যবসায়িক পরিকল্পনাকারীদের জন্য গুরুত্বপূর্ণ, যাতে তারা বছরের শুরু থেকে বর্তমান সময় পর্যন্ত বিক্রয় প্রবণতা বিশ্লেষণ করতে পারে।


সারাংশ

DAX Measures হল এক্সপ্রেশন যা dynamic data calculations তৈরি করতে ব্যবহৃত হয়, এবং এটি filter contextrow context অনুযায়ী পরিবর্তিত হতে পারে। Measures ব্যবহার করে আপনি aggregations, conditional calculations, time intelligence এবং dynamic filtering করতে পারেন, যা Power BI বা Excel এ বিশ্লেষণ এবং রিপোর্ট তৈরির জন্য খুবই কার্যকরী। DAX Measures এর মাধ্যমে আপনি অত্যন্ত দক্ষ এবং ইন্টারেকটিভ রিপোর্ট তৈরি করতে পারবেন যা ব্যবসায়িক সিদ্ধান্ত গ্রহণে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...