DAX (Data Analysis Expressions) হলো একটি এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। Relationships হল DAX এর গুরুত্বপূর্ণ ধারণা, যা ডেটা মডেলিং এবং বিশ্লেষণের জন্য অত্যন্ত গুরুত্বপূর্ণ। Active Relationships এবং Inactive Relationships দুটি ধরনের সম্পর্ক রয়েছে, যা ডেটার মধ্যে সংযোগ স্থাপন করতে ব্যবহৃত হয়। এই সম্পর্কগুলি ডেটা বিশ্লেষণের সময় কোন টেবিলের ডেটা একে অপরের সাথে সংযুক্ত হবে তা নির্ধারণ করে।
এই প্রবন্ধে আমরা Active Relationships এবং Inactive Relationships এর ধারণা, তাদের ব্যবহারের কৌশল, এবং কিভাবে DAX-এ এগুলি পরিচালনা করা যায় তা বিস্তারিতভাবে আলোচনা করব।
১. Active Relationships
Active Relationships হল সেই সম্পর্ক যা ডেটা মডেলিংয়ে সরাসরি কার্যকর এবং ডেটার সংযোগ স্থাপনে ব্যবহৃত হয়। Active Relationship-এ একটি টেবিলের একটি কলাম অন্য একটি টেবিলের কলামের সাথে যুক্ত থাকে, এবং এটি DAX এর দ্বারা সরাসরি filtering এবং aggregation প্রক্রিয়ায় ব্যবহৃত হয়।
Active Relationship এর বৈশিষ্ট্য:
- Default Relationship: একটি DAX model এ Active Relationship হল ডিফল্ট সম্পর্ক যা একটি টেবিলের কলামের মানকে অন্য টেবিলের কলামের সাথে যুক্ত করে।
- Filtering: Active Relationships এর মাধ্যমে ফিল্টার কনটেক্সট ডেটার উপর প্রয়োগ করা হয়, যার মাধ্যমে CALCULATE, FILTER এবং অন্যান্য DAX functions ডেটা প্রসেস করতে সক্ষম হয়।
- Single Active Relationship: প্রতি দুটি টেবিলের মধ্যে একটি একটিই Active Relationship থাকতে পারে। এটি সাধারণত one-to-many বা many-to-one সম্পর্ক হতে পারে।
উদাহরণ:
ধরা যাক, আপনার Sales এবং Products টেবিলের মধ্যে একটি Active Relationship রয়েছে, যেখানে Sales[ProductID] এবং Products[ProductID] কলাম দুটি সংযুক্ত রয়েছে। এই সম্পর্কের মাধ্যমে Sales টেবিলের প্রতিটি রেকর্ডের জন্য Products টেবিলের সংশ্লিষ্ট পণ্য তথ্য পাওয়া যাবে।
Total Sales by Product = CALCULATE(SUM(Sales[Amount]), Products[Category] = "Electronics")
এখানে:
- Active Relationship ব্যবহৃত হচ্ছে Sales এবং Products টেবিলের মধ্যে, যেখানে Sales[ProductID] এবং Products[ProductID] কলামগুলি সংযুক্ত।
২. Inactive Relationships
Inactive Relationships হল সেই সম্পর্ক যা DAX model এ ডিফল্টভাবে নিষ্ক্রিয় থাকে এবং তা সরাসরি ডেটা বিশ্লেষণে ব্যবহার করা হয় না। Inactive Relationships-এ দুটি টেবিলের মধ্যে সম্পর্ক থাকলেও, এটি filtering বা aggregation প্রক্রিয়ায় অংশগ্রহণ করে না, যতক্ষণ না এটি USERELATIONSHIP ফাংশনের মাধ্যমে সক্রিয় করা না হয়।
Inactive Relationship এর বৈশিষ্ট্য:
- Inactive by Default: একটি Inactive Relationship ডিফল্টভাবে নিষ্ক্রিয় থাকে এবং DAX-এর মাধ্যমে সেটি সক্রিয় করা হয় না, যতক্ষণ না ব্যবহারকারী এটি USERELATIONSHIP ফাংশনের মাধ্যমে সক্রিয় না করেন।
- Multiple Relationships: একে অপরের সাথে Inactive Relationships ব্যবহার করা যায়, যা একাধিক সম্পর্ক তৈরি করতে সহায়তা করে, তবে এগুলি সরাসরি ব্যবহৃত হয় না যতক্ষণ না USERELATIONSHIP ফাংশন ব্যবহার করা হয়।
- Complex Analysis: Inactive Relationships মূলত complex analysis এবং multiple relationships ক্ষেত্রে ব্যবহৃত হয়, যেখানে একাধিক সম্পর্কের মধ্যে ফিল্টার কনটেক্সট পরিবর্তন করতে হয়।
উদাহরণ:
ধরা যাক, আপনার Sales টেবিল এবং Products টেবিলের মধ্যে একটি Inactive Relationship রয়েছে, যেখানে Sales[ProductID] এবং Products[ProductCode] কলাম দুটি সংযুক্ত। এই সম্পর্কটি নিষ্ক্রিয় অবস্থায় রয়েছে, তবে আপনি USERELATIONSHIP ফাংশন ব্যবহার করে এটি সক্রিয় করতে পারেন।
Total Sales with Product Code = CALCULATE(SUM(Sales[Amount]), USERELATIONSHIP(Sales[ProductID], Products[ProductCode]))
এখানে:
- USERELATIONSHIP ফাংশনটি Inactive Relationship Sales[ProductID] এবং Products[ProductCode] কলামের মধ্যে সম্পর্ক সক্রিয় করবে এবং Sales টেবিলের Amount এর যোগফল বের করবে।
৩. Active Relationship এবং Inactive Relationship এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Active Relationship | Inactive Relationship |
|---|---|---|
| বর্ণনা | সরাসরি কার্যকর এবং DAX এর দ্বারা ফিল্টার কনটেক্সট নিয়ন্ত্রণ করে। | ডিফল্টভাবে নিষ্ক্রিয় থাকে এবং USERELATIONSHIP ফাংশন দ্বারা সক্রিয় করা হয়। |
| ফিল্টার প্রভাব | সরাসরি ডেটার উপর ফিল্টার প্রভাব প্রয়োগ করে। | ফিল্টার প্রভাব সরাসরি প্রয়োগ হয় না। |
| সক্রিয় সম্পর্ক | একে CALCULATE এবং অন্যান্য ফাংশনে সরাসরি ব্যবহার করা যায়। | USERELATIONSHIP ব্যবহার করে সক্রিয় করা হয়। |
| সীমাবদ্ধতা | শুধুমাত্র একটি সম্পর্ক সক্রিয় থাকতে পারে। | একাধিক সম্পর্ক থাকতে পারে, তবে একটি নিষ্ক্রিয় থাকে। |
| ব্যবহার | সাধারণত one-to-many বা many-to-one সম্পর্কের জন্য। | যখন একাধিক সম্পর্ক প্রয়োজন, তখন এটি ব্যবহৃত হয়। |
৪. Active Relationship এবং Inactive Relationship এর ব্যবহার
Active Relationships সাধারণত Power BI এবং DAX মডেলগুলিতে ব্যবহৃত হয় যেখানে একটি টেবিলের primary key বা foreign key সম্পর্ক রয়েছে। আপনি Inactive Relationships ব্যবহার করতে পারেন যখন আপনাকে একাধিক সম্পর্কের মধ্যে ফিল্টার বা ক্যালকুলেশন করতে হবে, যেমন parallel relationships বা complex data models তৈরি করার জন্য।
Active Relationship-এ উদাহরণ:
- আপনি একটি Customer টেবিল এবং Sales টেবিলের মধ্যে CustomerID সম্পর্ক ব্যবহার করতে পারেন।
- Sales টেবিলের Amount এর যোগফল বের করতে Active Relationship ব্যবহার করা হবে।
Total Sales by Customer = CALCULATE(SUM(Sales[Amount]), Customers[CustomerID] = 123)
Inactive Relationship-এ উদাহরণ:
- আপনি Sales টেবিল এবং Products টেবিলের মধ্যে একটি Inactive Relationship ব্যবহার করতে পারেন যেখানে ProductID এবং ProductCode কলামের মধ্যে সম্পর্ক আছে।
- USERELATIONSHIP ফাংশনের মাধ্যমে Inactive Relationship সক্রিয় করতে হবে।
Total Sales by Product Code = CALCULATE(SUM(Sales[Amount]), USERELATIONSHIP(Sales[ProductID], Products[ProductCode]))
সারাংশ
Active Relationships এবং Inactive Relationships ডেটা মডেলিং এবং DAX calculations এ গুরুত্বপূর্ণ ভূমিকা পালন করে। Active Relationships সরাসরি ফিল্টার কনটেক্সট নিয়ন্ত্রণ করে এবং ডেটা বিশ্লেষণ করতে ব্যবহৃত হয়, যেখানে Inactive Relationships সাধারণত USERELATIONSHIP ফাংশন দ্বারা সক্রিয় করা হয় এবং এটি complex scenarios এবং multiple relationships এর জন্য উপযুক্ত। DAX-এ সঠিকভাবে এই সম্পর্কগুলি পরিচালনা করার মাধ্যমে আপনি জটিল ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন করতে সক্ষম হবেন।
Read more