DAX (Data Analysis Expressions) একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। Data Model তৈরির সময় relationships তৈরি করা অত্যন্ত গুরুত্বপূর্ণ, কারণ সঠিকভাবে সম্পর্ক তৈরি না করলে, ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন সঠিকভাবে কাজ নাও করতে পারে।
Relationships হল দুটি টেবিলের মধ্যে সংযোগ, যার মাধ্যমে আপনি একটি টেবিলের তথ্য ব্যবহার করে অন্য টেবিলের ডেটা বিশ্লেষণ করতে পারেন। ড্যাক্সে সম্পর্ক তৈরি করা ডেটা মডেলের মধ্যে টেবিলগুলির মধ্যে সঠিকভাবে তথ্য সংযোগ স্থাপন করতে সহায়ক। এই প্রবন্ধে, আমরা relationships তৈরি করার প্রক্রিয়া এবং DAX functions এর মাধ্যমে কিভাবে সম্পর্ক ব্যবহার করা যায় তা বিস্তারিতভাবে আলোচনা করব।
১. Relationships এর মৌলিক ধারণা
Relationships ডেটার টেবিলগুলির মধ্যে সংযোগ স্থাপন করে, যাতে একটি টেবিলের তথ্য অন্য একটি টেবিলের সাথে সম্পর্কিত হতে পারে। সঠিকভাবে সম্পর্ক তৈরি করা ডেটা বিশ্লেষণের জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি একে অপরের সাথে সম্পর্কিত ডেটা সহজে একত্রিত করতে সহায়তা করে।
Types of Relationships:
- One-to-Many (1:*):
- এটি সবচেয়ে সাধারণ সম্পর্ক ধরনের, যেখানে একটি টেবিলের একটি ইউনিক মান অন্য টেবিলের একাধিক রেকর্ডের সাথে সম্পর্কিত থাকে।
- উদাহরণ: Customer টেবিলের একটি CustomerID একাধিক Sales রেকর্ডের সাথে সম্পর্কিত হতে পারে।
- Many-to-One (*:1):
- এটি One-to-Many সম্পর্কের বিপরীত, যেখানে একাধিক রেকর্ড একটি নির্দিষ্ট রেকর্ডের সাথে সম্পর্কিত থাকে।
- উদাহরণ: Sales টেবিলের একাধিক রেকর্ড একটি Region টেবিলের একটি RegionID এর সাথে সম্পর্কিত হতে পারে।
- Many-to-Many (:):
- এটি তখন ব্যবহৃত হয় যখন দুটি টেবিলের মধ্যে একাধিক রেকর্ডের সম্পর্ক থাকতে পারে।
- উদাহরণ: একটি Students টেবিলের একাধিক ছাত্র এবং একটি Courses টেবিলের একাধিক কোর্সের মধ্যে সম্পর্ক থাকতে পারে।
২. Power BI-তে Relationships তৈরি করা
Power BI-এ relationships তৈরি করার জন্য, সাধারণত Model View ব্যবহার করা হয়। আপনি যদি Power BI ব্যবহার করে থাকেন, তবে নিচের ধাপগুলি অনুসরণ করে সম্পর্ক তৈরি করতে পারেন:
- Model View-এ যান:
- Power BI-তে Model View এ চলে যান, যেখানে আপনার সমস্ত টেবিলের ছবি থাকবে।
- টেবিল নির্বাচন করুন:
- দুটি টেবিল নির্বাচন করুন, যেগুলির মধ্যে আপনি সম্পর্ক তৈরি করতে চান।
- ড্র্যাগ এবং ড্রপ:
- এক টেবিল থেকে সম্পর্কিত কলামটি অন্য টেবিলের সাথে drag and drop করুন। Power BI আপনার জন্য সম্পর্ক তৈরি করবে।
- Relationship Properties সেট করুন:
- সম্পর্কের ধরন (One-to-Many বা Many-to-One) এবং Cardinality (Unique বা Non-Unique) সেট করুন।
- Cross-filter direction নির্ধারণ করুন:
- সম্পর্কের filter direction নির্বাচন করুন, যাতে সম্পর্কিত টেবিলগুলির মধ্যে সঠিকভাবে ফিল্টার প্রভাব কাজ করে।
৩. DAX Functions দিয়ে Relationships ব্যবহার করা
একবার যদি আপনি relationships তৈরি করেন, তখন আপনি DAX functions ব্যবহার করে সেগুলির মধ্যে সম্পর্কিত ডেটা বিশ্লেষণ করতে পারেন। RELATED, RELATEDTABLE, এবং USERELATIONSHIP ফাংশনগুলি ডেটা মডেলের মধ্যে সম্পর্কিত টেবিলগুলির মধ্যে ডেটা অ্যাক্সেস করতে ব্যবহৃত হয়।
RELATED ফাংশন
RELATED ফাংশনটি ব্যবহার করা হয় যখন আপনি একটি টেবিলের কলাম থেকে অন্য টেবিলের সম্পর্কিত কলাম ব্যবহার করতে চান। এটি সাধারণত one-to-many সম্পর্কের ক্ষেত্রে ব্যবহৃত হয়।
Syntax:
RELATED(<column>)
ব্যবহার:
ধরা যাক, আপনার Sales টেবিল রয়েছে এবং আপনি Products টেবিলের ProductName কলাম থেকে সম্পর্কিত মান বের করতে চান। তাহলে আপনি RELATED ফাংশনটি ব্যবহার করবেন:
Product Name = RELATED(Products[ProductName])
এটি Sales টেবিলের প্রতিটি রেকর্ডের জন্য Products টেবিলের সম্পর্কিত ProductName কলামের মান ফিরিয়ে দেবে।
RELATEDTABLE ফাংশন
RELATEDTABLE ফাংশনটি ব্যবহার করা হয় যখন আপনি একটি টেবিলের সম্পর্কিত টেবিলের সমস্ত সারি ফেরত চান। এটি সাধারণত many-to-one সম্পর্কের জন্য ব্যবহৃত হয়।
Syntax:
RELATEDTABLE(<table>)
ব্যবহার:
ধরা যাক, আপনি যদি Products টেবিলের জন্য Sales টেবিলের সমস্ত বিক্রয় তথ্য দেখতে চান, তবে আপনি RELATEDTABLE ব্যবহার করতে পারেন:
Total Sales for Product = SUMX(RELATEDTABLE(Sales), Sales[Amount])
এটি Products টেবিলের প্রতিটি পণ্যের জন্য Sales টেবিলের সম্পর্কিত সমস্ত বিক্রয় পরিমাণ যোগ করবে।
USERELATIONSHIP ফাংশন
USERELATIONSHIP ফাংশনটি ব্যবহৃত হয় যখন আপনি inactive relationship চালু করতে চান। এটি সাধারণত inactive relationship পরিচালনা করতে ব্যবহৃত হয়।
Syntax:
USERELATIONSHIP(<column1>, <column2>)
ব্যবহার:
ধরা যাক, আপনার Sales এবং Orders টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে, কিন্তু Sales[OrderDate] সম্পর্কটি inactive। আপনি যদি USERELATIONSHIP ফাংশন ব্যবহার করতে চান, তাহলে এই ফাংশনটি ব্যবহার করতে পারেন:
Total Sales Last Year = CALCULATE(SUM(Sales[Amount]), USERELATIONSHIP(Sales[OrderDate], Orders[OrderDate]))
এটি Sales টেবিলের Amount এর যোগফল বের করবে, তবে Orders টেবিলের OrderDate কলামের সাথে inactive relationship সক্রিয় করবে।
৪. Best Practices for Relationships in Power BI
- Ensure Proper Data Types:
- সম্পর্ক তৈরি করার আগে নিশ্চিত করুন যে আপনি সঠিক ডেটা টাইপ (যেমন integer, text, date) ব্যবহার করছেন।
- Use a Single Relationship:
- টেবিলের মধ্যে একাধিক সম্পর্ক তৈরি করার পরিবর্তে একক সম্পর্ক ব্যবহার করার চেষ্টা করুন, কারণ একাধিক সম্পর্ক পারফরম্যান্স এবং ক্যালকুলেশন প্রভাবিত করতে পারে।
- Mark as Date Table:
- যদি আপনার Date Table থাকে, তবে সেটি Mark as Date Table হিসেবে চিহ্নিত করুন, যাতে Time Intelligence ফাংশনগুলি সঠিকভাবে কাজ করতে পারে।
- Use Bi-directional Relationships Sparingly:
- bi-directional relationships ব্যবহারে সাবধানতা অবলম্বন করুন, কারণ এটি সম্পর্কিত টেবিলের মধ্যে অপ্রত্যাশিত filtering প্রভাব ফেলতে পারে।
- Manage Cross-filter Direction:
- সম্পর্কের cross-filter direction ঠিকভাবে সেট করুন, যাতে ডেটার মধ্যে সঠিক filter propagation ঘটে।
সারাংশ
Relationships ডেটা মডেলে খুবই গুরুত্বপূর্ণ, কারণ এটি ডেটা বিশ্লেষণ এবং DAX ফাংশনগুলির সাহায্যে কাস্টম ক্যালকুলেশন তৈরি করার জন্য টেবিলগুলির মধ্যে সঠিকভাবে তথ্য সংযোগ করে। Power BI এবং Excel-এ relationships তৈরি করার সময় সঠিক cardinality, cross-filter direction, এবং date table এর ব্যবহার নিশ্চিত করতে হবে। DAX এর মাধ্যমে RELATED, RELATEDTABLE, এবং USERELATIONSHIP ফাংশন ব্যবহার করে আপনি টেবিলগুলির মধ্যে সম্পর্কিত ডেটা বিশ্লেষণ করতে পারেন এবং আপনার কাস্টম ক্যালকুলেশনগুলি আরও শক্তিশালী এবং কার্যকরী করতে পারেন।
Read more