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 Columns | Measures |
|---|---|---|
| Calculation Type | Row-by-row calculation | Aggregate calculation based on filter context |
| Storage | Stored as part of the table | Not stored, calculated dynamically during report visualizations |
| Context | Does not depend on filter context | Depends on filter context and context transitions |
| Use Case | Used for creating new columns for data manipulation | Used for aggregating, calculating summary statistics |
| Calculation Frequency | Calculated during data refresh or when the model is updated | Calculated when used in reports, dashboards, or visualizations |
| Example | FinalPrice = 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 অনুযায়ী পরিমাপ বা গণনা করে। প্রতিটি ফাংশন তার নিজস্ব ব্যবহারের ক্ষেত্রে এবং উদ্দেশ্য অনুযায়ী গুরুত্বপূর্ণ। সঠিকভাবে ব্যবহার করলে এগুলি ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরির প্রক্রিয়াকে আরো কার্যকরী এবং দ্রুত করে তোলে।
Read more