برنامه نویسی

ETL و داشبورد فروش End-to-End در مجموعه داده WWI در مایکروسافت فابریک

Summarize this content to 400 words in Persian Lang

در این پست، راهنمای گام به گام نحوه ایجاد داشبورد فروش برای پایگاه داده نمونه WideWorldImporters با استفاده از فابریک مایکروسافت و PowerBI Desktop را به اشتراک می گذارم.

برای دریافت راهنمای فرآیند ETL برای دریافت مجموعه داده ها از SQLServer به Microsoft Fabric، می توانید این پست را بررسی کنید.

PS: مخزن Github برای این پروژه را در اینجا بررسی کنید.

بررسی اجمالی تقاضای کسب و کار

مشکل تجاری:

تیم فروش در WideWorldImporters در حال حاضر فاقد یک داشبورد جامع و تعاملی است که بینش هایی را در مورد جنبه های مختلف عملکرد فروش ارائه دهد. این منجر به تاخیر در تصمیم گیری و از دست رفتن فرصت ها برای بهینه سازی استراتژی های فروش می شود.

هدف:

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

ذینفعان:

مدیر فروش: نیاز به نظارت بر عملکرد کلی فروش و شناسایی زمینه های بهبود دارد.

نمایندگان فروش: نیاز به بینش دقیق در قلمروهای مربوطه و بخش های مشتریان خود دارند.

تیم بازاریابی: علاقه مند به درک رفتار مشتری و محبوبیت محصول است.

تیم لجستیک: برای بهینه سازی عملیات به داده هایی در مورد عملکرد تحویل نیاز دارد.

مدیران اجرایی: برای تصمیم گیری استراتژیک به مرورهای سطح بالا نیاز دارید.

داستان های کاربر

داستان کاربر 1: بررسی اجمالی عملکرد فروش

به عنوان یک مدیر فروش، من می خواهم معیارهای فروش کل، سود کل و حاشیه سود را مشاهده کنم تا بتوانم به سرعت عملکرد مالی کلی شرکت را ارزیابی کنم.

داستان کاربر 2: تجزیه و تحلیل فروش منطقه ای

به‌عنوان مدیر فروش منطقه‌ای، می‌خواهم عملکرد فروش را در شهرها و مناطق مختلف مقایسه کنم تا بتوانم منابع را به طور مؤثرتری تخصیص دهم و مناطقی را که عملکرد ضعیفی دارند هدف قرار دهم.

معیارهای پذیرش:

داشبورد باید نقشه یا نموداری را ارائه دهد که فروش را بر اساس منطقه و شهر نشان دهد.برای مشاهده فروش در سطح شهر، داده ها باید قابل حفاری باشند.کاربران باید بتوانند مناطق مختلف را در کنار یکدیگر مقایسه کنند.

داستان کاربر 3: تحلیل روند فروش

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

داستان کاربر 4: محصولات پرفروش

به عنوان یک تحلیلگر بازاریابی، می‌خواهم 10 محصول پرفروش سال گذشته را شناسایی کنم تا بتوانم تلاش‌های بازاریابی خود را بر ترویج این محصولات متمرکز کنم.

معیارهای پذیرش:

داشبورد باید 10 محصول برتر را بر اساس درآمد فروش فهرست کند.برای مشاهده اطلاعات دقیق تر (مثلاً فروش بر اساس منطقه یا بخش مشتری) هر محصول باید قابل کلیک باشد.لیست باید به صورت پویا بر اساس دوره زمانی انتخاب شده به روز شود.

داستان کاربر 5: عملکرد تحویل

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

معیارهای پذیرش:

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

جمع آوری و آماده سازی داده ها

پایگاه داده نمونه WWI در SQL Server بازیابی شده و به مایکروسافت فابریک وارد شده است که در راهنمای ETL مستند شده است. و برخی از کاوش های اولیه روی مجموعه داده ها با استفاده از SparkSQL انجام شده است که در اینجا نیز مستند شده است.

مجموعه داده ها به گونه ای ساختار یافته بودند که جداول اصلی در یک انبار ذخیره می شدند و یک میانبر در یک Lakehouse (در همان فضای کاری Fabric) ایجاد شد که به آن جداول اشاره می کرد. این به این دلیل است که می‌خواستم جداول در یک انبار بمانند تا بتوانم به طور بالقوه پرس‌وجوهای DDL و DML تراکنشی کامل را روی آنها اجرا کنم، اما همچنین می‌خواستم توانایی کار با جداول در یک نوت بوک Lakehouse را داشته باشم.

مجموعه داده برای تجزیه و تحلیل آماده بود، من فقط به یک نمای/جدول دیگر نیاز داشتم تا اضافه کنم.

ایجاد یک نمای/جدول fact_sales جدید

از آنجایی که جدول fact_sales مستقیماً به جدول روش‌های پرداخت پیوند نمی‌خورد (من در تحلیل قبلی خود از جداول متوجه این موضوع شدم)، می‌خواستم نمایی ایجاد کنم که کلید روش پرداخت را به هر تراکنش فروش (یعنی هر ردیف) اضافه کند. در جدول فروش (کلید روش پرداخت را می توان از جدول معاملات دریافت کرد که من آن را در مدل معنایی خود برای گزارش فروش وارد نمی کنم).

این مراحلی بود که من برداشتم:

یک پرس و جو از پایگاه داده متقاطع نوشت که با استفاده از جداول فروش و تراکنش های انبار، یک نمای در lakehouse من ایجاد می کند (نما می تواند در یک lakehouse از نقطه پایانی SQL analytics ایجاد شود)
می‌خواستم نمای جدید «FactSales» را به‌عنوان بخشی از مدل گزارش اضافه کنم، اما اخطاری دریافت کردم که داشتن یک دیدگاه در مدل معنایی من ممکن است پیامدهای عملکردی داشته باشد.

بنابراین اکنون باید به جای آن یک جدول “FactSales” ایجاد کنم. و از آنجایی که شما نمی توانید جدولی از نقطه پایانی SQL Lakehouse ایجاد کنید، می توانم آن را از یک نوت بوک با استفاده از spark یا از یک انبار با استفاده از T-SQL ایجاد کنم.

اما فعال کردن نگاشت ستون، جدول را در Warehouse فضای کاری، نقطه پایانی T-SQL و در مدل های معنایی غیرقابل استفاده می کند، زیرا همه آنها از نگاشت ستونی پشتیبانی نمی کنند.

بنابراین من جدول جدید FactSales را در انبار ایجاد کردم (تحت طرحی جدید) و میانبری برای آن از lakehouse ایجاد کردم (درست مانند سایر جداول در lakehouse).

ایجاد و تهیه مدل معنایی

من یک مدل معنایی دریاچه مستقیم سفارشی جدید (از lakehouse) با استفاده از جدول جدید FactSales و سایر جداول ابعاد مورد نیاز برای گزارش ایجاد کردم.
تلافی بین جداول در مدل معنایی تعریف شده است.
برخی معیارها را برای مدل معنایی درست در Fabric ایجاد کرد
دسته داده‌های ستون شهر را به «شهر» تغییر داد.
ستون “ماه” در جدول ابعاد تاریخ را بر اساس ستون “شماره ماه” مرتب کرد تا در تصاویر بصری به درستی مرتب شود.
دسکتاپ PowerBI را به مدل معنایی دریاچه مستقیم که قبلاً ایجاد شده بود متصل کرد

برخی اقدامات را در دسکتاپ PowerBI نیز ایجاد کرد.

ایجاد گزارش در دسکتاپ PowerBI و مستنداتی در مورد نحوه استفاده از آن برای ذینفعان

در زیر تصاویری که برای داستان های مختلف کاربران در پروژه ایجاد شده است، شامل یادداشت هایی در مورد نحوه استفاده از آنها و سایر توضیحات لازم است.

کارت KPI برای داستان کاربر 1 (برای مدیر فروش):

یک کارت KPI پویا ایجاد کرد که معیارهای فروش کل، سود کل و حاشیه سود را برای مدیر فروش نمایش می‌دهد.
می توان آن را بر اساس سال، ماه، مشتری، محصول و منطقه فروش فیلتر کرد
رنگ نشانگر بصری کارت برای هر فیلتری که حاشیه سود کمتر از 30٪ کاهش می یابد به قرمز تغییر می کند.

Map Visual for User Story 2 (برای مدیر فروش منطقه ای):

یک نقشه بصری ایجاد کرد که فروش را در شهرهای مختلف نشان می دهد
می توان آن را بین سطح شهر و کشور بالا و پایین کرد
راهنمای ابزار برای این تصویر نیز سود برای مکان معلق شده را نشان می دهد

نمودار منطقه برای داستان کاربر 3 (تحلیلگر بازرگانی):

نمودار منطقه ای ایجاد کرد که روند فروش و سود را بر اساس ماه نشان می دهد
می توان بین ماه و سال سوراخ کرد
می تواند بر اساس مشتری، محصول و منطقه فروش فیلتر شود

نمودار میله ای برای داستان کاربر 4 (تحلیلگر بازاریابی):

یک نمودار میله ای ایجاد کرد که 10 محصول پرفروش را نشان می دهد
راهنمای ابزار تصویری همچنین کل مقدار فروخته شده برای یک محصول و همچنین قیمت واحد آن را نشان می دهد
را می توان بر اساس زمان، منطقه و هر برش دهنده دیگر در گزارش فیلتر کرد

Table Visual for User Story 5 (برای مدیر لجستیک):

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

داشبورد نهایی

پایان

فراموش نکنید که در لینکدین با من در ارتباط باشید

آیا می خواهید از کار من حمایت کنید؟ اینجا را کلیک کنید

ممنون که خواندید، و در قسمت بعدی شما را خواهم گرفت.

نمودار جریان خط لوله داده فابریک مایکروسافت

در این پست، راهنمای گام به گام نحوه ایجاد داشبورد فروش برای پایگاه داده نمونه WideWorldImporters با استفاده از فابریک مایکروسافت و PowerBI Desktop را به اشتراک می گذارم.

برای دریافت راهنمای فرآیند ETL برای دریافت مجموعه داده ها از SQLServer به Microsoft Fabric، می توانید این پست را بررسی کنید.

PS: مخزن Github برای این پروژه را در اینجا بررسی کنید.

بررسی اجمالی تقاضای کسب و کار

مشکل تجاری:

تیم فروش در WideWorldImporters در حال حاضر فاقد یک داشبورد جامع و تعاملی است که بینش هایی را در مورد جنبه های مختلف عملکرد فروش ارائه دهد. این منجر به تاخیر در تصمیم گیری و از دست رفتن فرصت ها برای بهینه سازی استراتژی های فروش می شود.

هدف:

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

ذینفعان:

  • مدیر فروش: نیاز به نظارت بر عملکرد کلی فروش و شناسایی زمینه های بهبود دارد.
  • نمایندگان فروش: نیاز به بینش دقیق در قلمروهای مربوطه و بخش های مشتریان خود دارند.
  • تیم بازاریابی: علاقه مند به درک رفتار مشتری و محبوبیت محصول است.
  • تیم لجستیک: برای بهینه سازی عملیات به داده هایی در مورد عملکرد تحویل نیاز دارد.
  • مدیران اجرایی: برای تصمیم گیری استراتژیک به مرورهای سطح بالا نیاز دارید.

داستان های کاربر

داستان کاربر 1: بررسی اجمالی عملکرد فروش

به عنوان یک مدیر فروش، من می خواهم معیارهای فروش کل، سود کل و حاشیه سود را مشاهده کنم تا بتوانم به سرعت عملکرد مالی کلی شرکت را ارزیابی کنم.

داستان کاربر 2: تجزیه و تحلیل فروش منطقه ای

به‌عنوان مدیر فروش منطقه‌ای، می‌خواهم عملکرد فروش را در شهرها و مناطق مختلف مقایسه کنم تا بتوانم منابع را به طور مؤثرتری تخصیص دهم و مناطقی را که عملکرد ضعیفی دارند هدف قرار دهم.

معیارهای پذیرش:

داشبورد باید نقشه یا نموداری را ارائه دهد که فروش را بر اساس منطقه و شهر نشان دهد.
برای مشاهده فروش در سطح شهر، داده ها باید قابل حفاری باشند.
کاربران باید بتوانند مناطق مختلف را در کنار یکدیگر مقایسه کنند.

داستان کاربر 3: تحلیل روند فروش

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

داستان کاربر 4: محصولات پرفروش

به عنوان یک تحلیلگر بازاریابی، می‌خواهم 10 محصول پرفروش سال گذشته را شناسایی کنم تا بتوانم تلاش‌های بازاریابی خود را بر ترویج این محصولات متمرکز کنم.

معیارهای پذیرش:

داشبورد باید 10 محصول برتر را بر اساس درآمد فروش فهرست کند.
برای مشاهده اطلاعات دقیق تر (مثلاً فروش بر اساس منطقه یا بخش مشتری) هر محصول باید قابل کلیک باشد.
لیست باید به صورت پویا بر اساس دوره زمانی انتخاب شده به روز شود.

داستان کاربر 5: عملکرد تحویل

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

معیارهای پذیرش:

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

جمع آوری و آماده سازی داده ها

پایگاه داده نمونه WWI در SQL Server بازیابی شده و به مایکروسافت فابریک وارد شده است که در راهنمای ETL مستند شده است. و برخی از کاوش های اولیه روی مجموعه داده ها با استفاده از SparkSQL انجام شده است که در اینجا نیز مستند شده است.

مجموعه داده ها به گونه ای ساختار یافته بودند که جداول اصلی در یک انبار ذخیره می شدند و یک میانبر در یک Lakehouse (در همان فضای کاری Fabric) ایجاد شد که به آن جداول اشاره می کرد. این به این دلیل است که می‌خواستم جداول در یک انبار بمانند تا بتوانم به طور بالقوه پرس‌وجوهای DDL و DML تراکنشی کامل را روی آنها اجرا کنم، اما همچنین می‌خواستم توانایی کار با جداول در یک نوت بوک Lakehouse را داشته باشم.

مجموعه داده برای تجزیه و تحلیل آماده بود، من فقط به یک نمای/جدول دیگر نیاز داشتم تا اضافه کنم.

ایجاد یک نمای/جدول fact_sales جدید

از آنجایی که جدول fact_sales مستقیماً به جدول روش‌های پرداخت پیوند نمی‌خورد (من در تحلیل قبلی خود از جداول متوجه این موضوع شدم)، می‌خواستم نمایی ایجاد کنم که کلید روش پرداخت را به هر تراکنش فروش (یعنی هر ردیف) اضافه کند. در جدول فروش (کلید روش پرداخت را می توان از جدول معاملات دریافت کرد که من آن را در مدل معنایی خود برای گزارش فروش وارد نمی کنم).

این مراحلی بود که من برداشتم:

  • یک پرس و جو از پایگاه داده متقاطع نوشت که با استفاده از جداول فروش و تراکنش های انبار، یک نمای در lakehouse من ایجاد می کند (نما می تواند در یک lakehouse از نقطه پایانی SQL analytics ایجاد شود) کاوشگر انبار در پارچه مایکروسافت

  • می‌خواستم نمای جدید «FactSales» را به‌عنوان بخشی از مدل گزارش اضافه کنم، اما اخطاری دریافت کردم که داشتن یک دیدگاه در مدل معنایی من ممکن است پیامدهای عملکردی داشته باشد.
    پیام هشدار برای مشاهده در مدل معنایی دریاچه مستقیم

بنابراین اکنون باید به جای آن یک جدول “FactSales” ایجاد کنم. و از آنجایی که شما نمی توانید جدولی از نقطه پایانی SQL Lakehouse ایجاد کنید، می توانم آن را از یک نوت بوک با استفاده از spark یا از یک انبار با استفاده از T-SQL ایجاد کنم.

اما فعال کردن نگاشت ستون، جدول را در Warehouse فضای کاری، نقطه پایانی T-SQL و در مدل های معنایی غیرقابل استفاده می کند، زیرا همه آنها از نگاشت ستونی پشتیبانی نمی کنند.
پیغام خطای نگاشت ستون در انبار پارچه مایکروسافت

  • بنابراین من جدول جدید FactSales را در انبار ایجاد کردم (تحت طرحی جدید) و میانبری برای آن از lakehouse ایجاد کردم (درست مانند سایر جداول در lakehouse).
    کد SQL در انبار فابریک مایکروسافت

ایجاد و تهیه مدل معنایی

  • من یک مدل معنایی دریاچه مستقیم سفارشی جدید (از lakehouse) با استفاده از جدول جدید FactSales و سایر جداول ابعاد مورد نیاز برای گزارش ایجاد کردم.
    انتخاب جداول برای مدل معنایی جدید در مایکروسافت فابریک لیک هاوس

  • تلافی بین جداول در مدل معنایی تعریف شده است.
    صفحه نمایش مدل معنایی در پارچه مایکروسافت

  • برخی معیارها را برای مدل معنایی درست در Fabric ایجاد کرد
    ایجاد اقدامات در پارچه مایکروسافت

  • دسته داده‌های ستون شهر را به «شهر» تغییر داد.

  • ستون “ماه” در جدول ابعاد تاریخ را بر اساس ستون “شماره ماه” مرتب کرد تا در تصاویر بصری به درستی مرتب شود.
    ایجاد اقدامات در پارچه مایکروسافت

  • دسکتاپ PowerBI را به مدل معنایی دریاچه مستقیم که قبلاً ایجاد شده بود متصل کرد
    انتخاب یک اتصال powerBI در مایکروسافت فابریک

برخی اقدامات را در دسکتاپ PowerBI نیز ایجاد کرد.

ایجاد گزارش در دسکتاپ PowerBI و مستنداتی در مورد نحوه استفاده از آن برای ذینفعان

در زیر تصاویری که برای داستان های مختلف کاربران در پروژه ایجاد شده است، شامل یادداشت هایی در مورد نحوه استفاده از آنها و سایر توضیحات لازم است.

کارت KPI برای داستان کاربر 1 (برای مدیر فروش):

  • یک کارت KPI پویا ایجاد کرد که معیارهای فروش کل، سود کل و حاشیه سود را برای مدیر فروش نمایش می‌دهد.
  • می توان آن را بر اساس سال، ماه، مشتری، محصول و منطقه فروش فیلتر کرد
  • رنگ نشانگر بصری کارت برای هر فیلتری که حاشیه سود کمتر از 30٪ کاهش می یابد به قرمز تغییر می کند.
    تصویری کارت KPI در powerBI

Map Visual for User Story 2 (برای مدیر فروش منطقه ای):

  • یک نقشه بصری ایجاد کرد که فروش را در شهرهای مختلف نشان می دهد
  • می توان آن را بین سطح شهر و کشور بالا و پایین کرد
  • راهنمای ابزار برای این تصویر نیز سود برای مکان معلق شده را نشان می دهد
    نقشه تصویری در powerBI

نمودار منطقه برای داستان کاربر 3 (تحلیلگر بازرگانی):

  • نمودار منطقه ای ایجاد کرد که روند فروش و سود را بر اساس ماه نشان می دهد
  • می توان بین ماه و سال سوراخ کرد
  • می تواند بر اساس مشتری، محصول و منطقه فروش فیلتر شود

نمودار میله ای برای داستان کاربر 4 (تحلیلگر بازاریابی):

  • یک نمودار میله ای ایجاد کرد که 10 محصول پرفروش را نشان می دهد
  • راهنمای ابزار تصویری همچنین کل مقدار فروخته شده برای یک محصول و همچنین قیمت واحد آن را نشان می دهد
  • را می توان بر اساس زمان، منطقه و هر برش دهنده دیگر در گزارش فیلتر کرد
    سبد خرید در powerBI

Table Visual for User Story 5 (برای مدیر لجستیک):

  • جدولی ایجاد کرد که میانگین روز تحویل هر محصول را در مقایسه با روزهای تحویل مورد انتظار آن نشان می‌دهد
  • می تواند بر اساس منطقه و زمان فیلتر شود
  • یک هشدار فعال‌کننده داده در تصویری ایجاد کرد که زمانی که میانگین روزهای تحویل هر محصول بیش از یک روز شود، ایمیل ارسال می‌کند.
    Table Visual در powerBI

داشبورد نهایی

داشبورد PowerBI

پایان

فراموش نکنید که در لینکدین با من در ارتباط باشید

آیا می خواهید از کار من حمایت کنید؟ اینجا را کلیک کنید

ممنون که خواندید، و در قسمت بعدی شما را خواهم گرفت.

نوشته های مشابه

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

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

دکمه بازگشت به بالا