محاسبات در روابط (Calculations in Relationships) در Tableau

محاسبات در روابط (Relationships) در Tableau: کلید انعطاف‌پذیری مدل داده‌ای

Tableau به عنوان یکی از قدرتمندترین ابزارهای هوش تجاری و مصورسازی داده‌ها، همواره در حال تکامل است تا فرآیند کار با داده‌های پیچیده را ساده‌تر کند. معرفی روابط (Relationships) به عنوان جایگزینی انعطاف‌پذیرتر برای اتصالات (Joins) سنتی در مدل داده‌ای، یک گام بزرگ در این مسیر بود. با این حال، یکی از قابلیت‌های پنهان و بسیار قدرتمند این ویژگی جدید، امکان استفاده از محاسبات سفارشی (Custom Calculations) در تعریف خودِ روابط است. این قابلیت به تحلیل‌گران اجازه می‌دهد تا مدل‌های داده‌ای بسیار پیچیده و دقیق‌تری بسازند، حتی زمانی که فیلدهای کلیدی برای اتصال جداول مستقیماً با هم مطابقت ندارند.

این مقاله جامع، به بررسی عمیق مفهوم محاسبات در روابط Tableau می‌پردازد و نشان می‌دهد که چگونه این ابزار، محدودیت‌های مدل‌سازی داده‌ای سنتی را از بین می‌برد و دریچه‌ای نو به سوی تحلیل داده‌های چندمنبعی و ناهماهنگ می‌گشاید.

درک مبانی: روابط در Tableau چیست؟

پیش از پرداختن به محاسبات، باید درک درستی از روابط در Tableau داشته باشیم. در گذشته، برای اتصال چند جدول، تنها راه استفاده از Joins (اتصالات) بود. Joinها داده‌های دو جدول را بر اساس یک شرط مطابقت (Match) داده و به صورت فیزیکی در یک جدول واحد ادغام می‌کردند. این امر اغلب منجر به بروز پدیده‌هایی مانند Duplication (تکرار داده‌ها)، به‌خصوص در سناریوهای چند-واقعیتی (Multi-Fact)، می‌شد و محاسبات تجمیعی (Aggregations) را دشوار می‌کرد.

تفاوت کلیدی با Joins

روابط (Relationships)، که اغلب به آن‌ها “اتصالات هوشمند” یا “Logical Table” گفته می‌شود، با Joins تفاوت اساسی دارند:

  • عدم ادغام فیزیکی: روابط، داده‌ها را به صورت فیزیکی ادغام نمی‌کنند. در عوض، آن‌ها یک “قول” یا “تعهد” برای مطابقت دادن داده‌ها در سطح دید (View Level) ایجاد می‌کنند.
  • تجمیع هوشمند: تجمیع‌ها (مانند SUM یا AVG) قبل از اتصال انجام می‌شوند. این مکانیسم از تکرار داده‌ها و در نتیجه، از محاسبات نادرست جلوگیری می‌کند.
  • حفظ جزئیات (Preservation of Detail): روابط اطمینان می‌دهند که هر جدول، سطح جزئیات اصلی خود را حفظ می‌کند. تنها زمانی که شما یک فیلد از یک جدول را به فضای کاری (Canvas) می‌آورید، Tableau شروع به مطابقت دادن آن داده‌ها با جداول دیگر می‌کند.

 

 ضرورت استفاده از محاسبات در روابط

در سناریوهای واقعی کار با داده، به ندرت پیش می‌آید که فیلدهای کلیدی اتصال (Joining Keys) در دو جدول به صورت ۱۰۰٪ با یکدیگر مطابقت داشته باشند. این عدم تطابق می‌تواند دلایل مختلفی داشته باشد:

  1. فرمت‌های ناهماهنگ: برای مثال، در یک جدول، شناسه مشتری (Customer ID) به صورت عدد ذخیره شده و در جدول دیگر، به صورت متنی به همراه پیشوند (CUST-123).
  2. کلیدهای ترکیبی (Composite Keys): زمانی که کلید اتصال از ترکیب چند فیلد در یک جدول و یک فیلد واحد در جدول دیگر تشکیل شده باشد.
  3. تطابق جزئی: نیاز به تطابق بر اساس بخشی از یک رشته (Substring Match).
  4. تطابق تاریخ و زمان: نیاز به اتصال بر اساس یک بازه زمانی یا تبدیل یک فیلد تاریخ و زمان به یک تاریخ ساده برای مطابقت.
  5. اتصالات نابرابر (Inequality Joins): نیاز به اتصال جداول بر اساس شرایطی مانند “بزرگتر از” (>)، “کوچکتر از” (<) یا “بین” (Between) به جای تنها برابری (=).

محاسبات در روابط دقیقاً برای حل این مشکلات طراحی شده‌اند. این ابزار به ما اجازه می‌دهد تا یک یا هر دو فیلد کلیدی را در زمان تعریف رابطه، با استفاده از توابع و فرمول‌های Tableau، تغییر شکل (Transform) دهیم تا به صورت منطقی با هم منطبق شوند. این فرآیند بدون تغییر فیزیکی در داده‌های منبع انجام می‌شود.

 

 نحوه ایجاد محاسبات در روابط

فرآیند ایجاد یک محاسبه در Relationship در Tableau ساده اما بسیار قدرتمند است. شما این کار را در صفحه Data Source و هنگام تعریف رابطه بین دو جدول انجام می‌دهید:

 

گام ۱: انتخاب جداول و شروع رابطه

ابتدا، جداول مورد نظر خود را به صفحه مدل داده‌ای (Data Model Canvas) بکشید تا یک رابطه جدید بین آن‌ها شکل بگیرد (نمایش یک خط بین دو جدول).

گام ۲: باز کردن پنجره تعریف رابطه

روی خطی که جداول را به هم متصل می‌کند، کلیک کنید تا پنجره “Edit Relationship” (ویرایش رابطه) باز شود. در این پنجره، شما “جفت فیلدهای منطبق” (Matching Field Pairs) را تعریف می‌کنید.

گام ۳: استفاده از محاسبه سفارشی (Custom Calculation)

به جای انتخاب یک فیلد موجود از منوی کشویی، گزینه “Create Relationship Calculation” (ایجاد محاسبه رابطه) را در یکی از سمت‌های رابطه انتخاب کنید.

گام ۴: تعریف فرمول محاسبه

در این مرحله، شما می‌توانید از توابع داخلی Tableau برای تغییر شکل فیلد خود استفاده کنید. مهم این است که نتیجه نهایی این محاسبه، با فیلد متناظر در جدول دیگر (که می‌تواند فیلد اصلی یا محاسبه‌شده باشد) از نظر نوع داده و محتوا کاملاً مطابقت داشته باشد.

مثال‌های پرکاربرد:

  • تبدیل نوع داده: اگر شناسه مشتری در یک جدول عددی و در دیگری متنی است:
    STR([Customer ID (Numeric)])
    

    (این کار مقدار عددی را به یک رشته متنی تبدیل می‌کند.)

  • ترکیب فیلدها (Concatenation): اگر کلید اتصال در یک جدول، ترکیب کشور و شهر باشد:
    [Country] + "-" + [City]
    
  • برش رشته (Trimming/Parsing): اگر نیاز به حذف یک پیشوند از شناسه وجود داشته باشد:
    MID([Product Code], 6)
    

    (اگر “PROD-” چهار کاراکتر باشد، این تابع از کاراکتر ششم به بعد را برمی‌گرداند.)

  • تبدیل تاریخ: برای مطابقت تاریخ دقیق با تاریخ ماه:
    DATETRUNC('month', [Order Date])
    

    (این کار، تاریخ دقیق را به اولین روز از ماه سفارش تبدیل می‌کند.)

 

گام ۵: تعریف نوع عملگر (Operator)

از نسخه 2020.3 به بعد، Tableau به شما اجازه می‌دهد تا عملگرهای نابرابری (مانند <، >، !=) را نیز در روابط خود استفاده کنید. این قابلیت به ویژه برای “Non-Equi-Joins” یا اتصالات بازه‌ای (Range Joins) حیاتی است.

مثال اتصال بازه‌ای: فرض کنید یک جدول برای سطح تخفیف دارید که شامل فیلدهای Min_Amount و Max_Amount است و می‌خواهید جدول فروش را بر اساس مبلغ فروش (Sales Amount) به این جدول متصل کنید.

  • سمت جدول فروش: [Sales Amount]
  • سمت جدول تخفیف: [Min_Amount]
  • عملگر: >=
  • اضافه کردن یک بند دیگر (Clause):
    • سمت جدول فروش: [Sales Amount]
    • سمت جدول تخفیف: [Max_Amount]
    • عملگر: <

این رابطه تضمین می‌کند که هر رکورد فروش تنها با آن رکورد تخفیفی مطابقت داده شود که مبلغ فروش بین (در واقع >= و <) حداقل و حداکثر مبلغ آن قرار گیرد.

 مزایای کلیدی محاسبات در روابط

استفاده از محاسبات در تعریف روابط Tableau مزایای عملی و تحلیلی قابل توجهی به همراه دارد:

 

۱. سادگی در مدل‌سازی داده‌های پیچیده

قبل از این ویژگی، اگر فیلدهای کلیدی مطابقت نداشتند، تحلیل‌گر ناچار بود:

  • از ابزارهای ETL مانند Tableau Prep یا ابزارهای خارج از Tableau برای تمیزکاری و نرمال‌سازی داده‌ها استفاده کند.
  • از یک Join ساده استفاده کند و سپس محاسبات پیچیده LOD (Level of Detail) را برای رفع تکرار داده‌های ناشی از Join به کار ببرد.

محاسبات در روابط، این فرآیند را در داخل محیط Tableau Desktop ممکن می‌سازد و به طور چشمگیری زمان و پیچیدگی مدل‌سازی را کاهش می‌دهد.

 

۲. عملکرد بهتر و جلوگیری از انفجار داده

با استفاده از یک رابطه هوشمند (به جای Join فیزیکی)، Tableau فقط زمانی داده‌ها را مطابقت می‌دهد که برای مصورسازی ضروری باشد. این رویکرد:

  • از مشکل تکرار داده‌ها (Duplication) جلوگیری می‌کند.
  • از انفجار داده (Data Explosion) که در Joins بیرونی (Outer Joins) سنتی رخ می‌داد، ممانعت می‌نماید.
  • به طور کلی، عملکرد کوئری (Query Performance) را بهبود می‌بخشد، زیرا Tableau فقط فیلدهایی را که در دید استفاده شده‌اند، در کوئری لحاظ می‌کند.

 

۳. انعطاف‌پذیری در اتصالات غیرمعمول

قابلیت استفاده از عملگرهای نابرابری (Inequality Operators) و همچنین توابع محاسباتی، امکان ایجاد سناریوهایی را فراهم می‌کند که در Joinهای سنتی تقریباً غیرممکن یا بسیار پیچیده بودند:

  • تحلیل بازه‌های زمانی متداخل (Overlapping Time Periods): برای مثال، اتصال رویدادهای خدماتی که در یک دوره زمانی خاص رخ داده‌اند.
  • تعیین سطوح رتبه‌بندی یا دسته‌بندی: اتصال فروش به یک جدول رتبه‌بندی بر اساس مبلغ فروش با استفاده از عملگرهای < و >.

 

۴. حفظ اصالت داده‌ها (Data Integrity)

از آنجایی که رابطه یک جدول منطقی است و داده‌های منبع را به صورت فیزیکی تغییر نمی‌دهد، اصالت داده‌های اصلی حفظ می‌شود. هر گونه تغییر در محاسبه رابطه، تأثیری بر خود منبع داده ندارد.

 

 مثال‌های پیشرفته از محاسبات در روابط

برای تکمیل این مقاله جامع، چندین سناریوی پیشرفته را بررسی می‌کنیم که قدرت واقعی محاسبات در روابط را نشان می‌دهند:

مثال ۱: تمیزکاری داده‌های ناهنجار با REGEXP

فرض کنید در جدول ۱، کد محصول به صورت P-12345 و در جدول ۲ به صورت 12345_XYZ ذخیره شده است. هدف، اتصال آن‌ها بر اساس عدد میانی (12345) است. می‌توان از توابع عبارات با قاعده (REGEXP) استفاده کرد:

  • محاسبه برای جدول ۱ (برای حذف P-):
    REPLACE([Product Code 1], "P-", "")
    
  • محاسبه برای جدول ۲ (برای حذف _XYZ):
    SPLIT([Product Code 2], "_", 1)
    

    با این دو محاسبه، هر دو فیلد به عدد میانی (12345) تبدیل شده و قابلیت اتصال پیدا می‌کنند.

 

مثال ۲: اتصال بر اساس بازه‌های زمانی (بین دو تاریخ)

این سناریو برای پروژه‌های منابع انسانی یا مدیریت پروژه که نیاز به اتصال یک فعالیت (با یک تاریخ شروع) به یک پروژه (با بازه شروع و پایان) وجود دارد، بسیار مهم است.

فرض کنید جدول فعالیت‌ها (Activities) دارای فیلد Activity_Date و جدول پروژه‌ها (Projects) دارای فیلدهای Project_Start و Project_End باشد.

محاسبات رابطه:

  1. بند اول (Condition 1 – شروع):
    • سمت فعالیت‌ها: [Activity_Date]
    • سمت پروژه‌ها: [Project_Start]
    • عملگر: >=
  2. بند دوم (Condition 2 – پایان):
    • سمت فعالیت‌ها: [Activity_Date]
    • سمت پروژه‌ها: [Project_End]
    • عملگر: <=

این رابطه، هر فعالیت را فقط به آن پروژه‌ای متصل می‌کند که تاریخ فعالیت، در بازه زمانی آن پروژه قرار دارد.

 جمع‌بندی: محاسبات در روابط، تحول در مدل‌سازی داده Tableau

محاسبات در روابط (Calculations in Relationships) یکی از مهم‌ترین پیشرفت‌ها در تکامل مدل داده‌ای Tableau است. این قابلیت فراتر از یک ویژگی ساده است و یک تغییر پارادایم در نحوه برخورد تحلیل‌گران با مدل‌سازی داده‌های ناهمگون ایجاد می‌کند.

با استفاده از این ابزار، شما دیگر محدود به اتصالات سنتی بر اساس برابری فیلدهای موجود نیستید. شما می‌توانید منطق اتصال را در همان زمان تعریف رابطه، با استفاده از توابع قدرتمند Tableau، کدنویسی کنید. این موضوع به خصوص در پروژه‌هایی که داده‌ها از سیستم‌های مختلف و با استانداردهای ناهماهنگ جمع‌آوری شده‌اند، ارزش بالایی دارد. در نهایت، با بهره‌گیری از روابط و محاسبات سفارشی، می‌توان مدل‌های داده‌ای انعطاف‌پذیر، دقیق و با عملکرد بهینه‌تر ایجاد کرد که پایه و اساس هر تحلیل معتبر و قابل اعتماد در Tableau هستند.

بهینه‌سازی مدل داده‌ای شما با استفاده از محاسبات در روابط، نه تنها صحت گزارش‌های شما را تضمین می‌کند، بلکه توانایی شما را در تحلیل سناریوهای پیچیده و چندوجهی به طور چشمگیری افزایش می‌دهد.

 

 

برای خرید لایسنس نرم افزار Tableau ، می‌توانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.

فرم درخواست لایسنس Tableau

 

tableau desktop download

 

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *