فروش لایسنس Power BI

با ما داده های خود را درک کنید تا برای آینده کسب و کارتان بهتر تصمیم گیری کنید.

Power BI Streaming Dataflow

ایجاد یک راهکار جریان داده Dataflow در Power BI

ایجاد یک راهکار جریان داده Dataflow در Power BI

مایکروسافت اخیراً پیش‌نمایش عمومی Power BI Streaming Dataflow را منتشر کرد که امکان ساخت یک راهکار گزارش‌دهی جریان داده در لحظه را با استفاده از Azure Event Hubs و Azure IoT به عنوان منابع پیام در لحظه و Power BI Dataflows به عنوان موتور ذخیره‌سازی و پردازش فراهم می‌کند. با Streaming Dataflows می‌توانیم داده‌های در لحظه را ضبط کرده و Power BI Desktop را متصل کنیم (و به سرویس Power BI مستقر کنیم) تا آن داده‌ها را تجسم کنیم. با ویژگی Auto Page Refresh موجود در Power BI Desktop و سرویس، می‌توانیم داده‌های در لحظه را هنگام پردازش توسط Streaming Dataflow مشاهده کنیم.

دو روش ذخیره‌سازی در Streaming Dataflow وجود دارد: گرم و سرد.

ذخیره‌سازی گرم به طور پیش‌فرض روی 7 روز نگهداری تنظیم شده است و آخرین داده‌های پردازش شده توسط Streaming Dataflow را حفظ می‌کند، می‌توانیم این را به حداقل 24 ساعت تغییر دهیم. پس از گذشت این آستانه، داده‌ها از ذخیره‌سازی گرم حذف می‌شوند. توجه داشته باشید که Streaming Dataflow برای این فرآیند باید فعال باشد، اگر غیرفعال باشد، داده‌ها تا زمان فعال شدن در ذخیره‌سازی گرم باقی می‌مانند.

تمام داده‌ها در فضای ذخیره‌سازی سرد (Cold storage) ذخیره می‌شوند. ما می‌توانیم به هر دو نوع فضای ذخیره‌سازی با Power BI Desktop/Service دسترسی داشته باشیم، فضای ذخیره‌سازی سرد فقط قابلیت وارد کردن (import) دارد در حالی که فضای ذخیره‌سازی گرم (Hot storage) با استفاده از DirectQuery (برای زمان واقعی) و وارد کردن (import) قابل دسترسی است.

در این پست وبلاگ، ما یک راهکار استریمینگ سرتاسری (end-to-end streaming) خواهیم ساخت که از یک برنامه C# برای تولید و ارسال پیام‌های JSON “بازدید وب” به یک Azure Event Hub استفاده می‌کند. سپس یک Streaming Dataflow متصل به این Azure Event Hub ایجاد می‌کنیم و منطق پردازش را تعریف می‌کنیم. سپس Power BI Desktop را به Streaming Dataflow متصل می‌کنیم تا داده‌ها را تجسم کنیم و در نهایت آنها را در Power BI Service منتشر کنیم.

تصویر زیر نمونه‌ای از گزارشی است که ایجاد خواهیم کرد.

Power BI Streaming Dataflow

معماری پایه راهکار

نمودار زیر یک معماری پایه برای ارائه یک راهکار گزارش‌دهی رویداد در لحظه را نشان می‌دهد.

  • یک دستگاه منبع، یک پیام رویداد مبتنی بر JSON تولید کرده و به Azure Event Hub ارسال می‌کند.
  • Power BI Streaming Dataflow به Azure Event Hub متصل می‌شود تا پیام‌ها را هنگام دریافت توسط Event Hub دریافت کند.
  • Power BI Data Model/Report در DirectQuery به Streaming Dataflow متصل می‌شود تا پیام‌ها را تجسم کند.

Power BI Streaming Dataflow

تمام کد برای ایجاد راه‌حل در GitHub اینجا موجود است.

پیش‌نیازها

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

  • توانایی اجرای برنامه C# (ویژوال استودیو)
  • دسترسی به ایجاد Azure Event Hub
  • Power BI Premium، Premium Per User یا Embedded A3 tier.

منابع ایجاد Azure Event Hub

ما با ایجاد یک Azure Event Hub جدید شروع خواهیم کرد زیرا به رشته اتصال و اعتبارنامه‌های Event Hub جدید برای برنامه تولید پیام C# JSON نیاز داریم.

  • وارد https://portal.azure.com شوید
  • “Event Hubs” را جستجو کنید و سرویس Event Hubs را انتخاب کنید
  • روی Create کلیک کنید و اطلاعات زیر را وارد کنید.
    • اشتراک مناسب را انتخاب کنید
    • یک گروه منبع(Resource Group) انتخاب یا ایجاد کنید
    • نام یک فضای نام را وارد کنید
    • یک مکان مناسب انتخاب کنید
    • برای سطح قیمت‌گذاری، پایه را انتخاب کنید
    • واحدهای توان عملیاتی را روی مقدار پیش‌فرض ۱ نگه دارید
  • روی Review و Create کلیک کنید

Power BI Streaming Dataflow

پس از ایجاد فضای نام Event Hub، اکنون باید یک Event Hub ایجاد کنیم.

  • به فضای نام Event Hub تازه ایجاد شده بروید.
  • در قسمت Overview روی + Event Hub کلیک کنید.
  • نامی برای Event Hub مانند dhevpowerbi وارد کنید.
  • تعداد پارتیشن‌ها را روی مقدار پیش‌فرض ۲ نگه دارید.
  • روی Create کلیک کنید.

Power BI Streaming Dataflowفروش لایسنس پاور بی آی

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

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

پس از ایجاد و فعال شدن Event Hub، باید سیاست‌های ارسال و گوش دادن را ایجاد کنیم تا به برنامه C# اجازه ارسال پیام‌های JSON و به Power BI Streaming Dataflow اجازه دریافت پیام‌ها را بدهیم.

  • مرور فضای نام Event Hub
  • در قسمت تنظیمات، روی Shared Access Policies کلیک کنید.
  • این یک سیاست موجود به نام RootManageSharedAccessKey خواهد بود، با این حال، یک سیاست جدید ایجاد خواهیم کرد.
  • روی + Add کلیک کنید و نام مناسبی مانند SendEventsPolicy وارد کنید.
  • ارسال را فعال کنید و سپس Save کنید.
  • روی + Add کلیک کنید و نام مناسبی مانند ListenEventsPolicy وارد کنید.
  • Listen را فعال کنید و سپس Save کنید.

Power BI Streaming Dataflow

به مقادیر فیلد Connection string-primary key توجه داشته باشید، زیرا این فیلد در برنامه C# و Streaming Dataflows به عنوان رشته اتصال استفاده خواهد شد.

لطفاً توجه داشته باشید که می‌توانید Event Hub را فعال/غیرفعال کنید. در صورت غیرفعال کردن Event Hub، هیچ هزینه‌ای متحمل نخواهید شد.

Power BI Streaming Dataflow

اکنون که Event Hub ایجاد و فعال شده است، آماده دریافت پیام‌ها از برنامه C# است.

 

ایجاد Source JSON Event Generator

ما از یک برنامه C# برای ایجاد مجموعه‌ای از پیام‌های JSON و ارسال به سرویس Event Hubs استفاده خواهیم کرد. برنامه C# داده‌های JSON مصنوعی بازدید وب را تولید می‌کند که شامل مجموعه‌ای از فیلدها برای ردیابی جلسه کاربر، نوع بازدید وب (visitwebsite یا browseproduct)، تاریخ و زمان بازدید وب و محصولی که کاربر مرور کرده است در صورتی که نوع رویداد browseproduct باشد، می‌باشد.

ویژگی‌های برنامه C# به شرح زیر است:

  • ۲ کادر متنی رشته اتصال و نام مرکز رویداد برای اضافه کردن رشته اتصال و نام مرکز رویداد
  • یک انتخابگر تاریخ برای انتخاب تاریخ “شروع” که می‌خواهیم رویدادهای ما از آن تولید شوند
  • تعداد روزهایی که می‌خواهیم رویدادها را برای آنها تولید کنیم
  • حداقل و حداکثر تعداد جلسات برای تولید هر روز. سپس این یک تعداد جلسه تصادفی در هر روز در محدوده ایجاد می‌کند.

قطعه کدی که برای ساخت پیام JSON و ارسال آن به Event Hub استفاده می‌شود، به شرح زیر است:

//create the message structure

WebVisitMessage webvisitmessage = new WebVisitMessage

{

SessionID = SessionID,

EventType = “visitwebsite”,

EventDateTime = dateincrement,

URL = URL,

Device = device

};

//serialize the JSON

string outputwebvisitmessage = JsonConvert.SerializeObject(webvisitmessage);

//send to the Azure Event Hub

await using (var producerClient = new EventHubProducerClient(connectionString, eventHubNameWebVisits))

{

using EventDataBatch eventBatch = await producerClient.CreateBatchAsync();

eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes(outputwebvisitmessage)));

await producerClient.SendAsync(eventBatch);

}

با اجرای برنامه و وارد کردن اطلاعات مربوطه، موارد زیر قابل مشاهده است:
Power BI Streaming Dataflow
سپس می‌توانیم Azure Event Hub را بررسی کنیم تا ببینیم آیا پیام‌ها دریافت می‌شوند یا خیر:
Power BI Streaming Dataflow
زمانی که با موفقیت دریافت پیام‌ها را مشاهده کردیم، می‌توانیم جریان داده‌ی استریمینگ پاور بی آی (Power BI Streaming Dataflow) را ایجاد کنیم.

ایجاد Streaming Dataflow پاور بی آی

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

ایجاد فضای کاری پریمیوم و جریان داده استریمینگ جدید

  • وارد https://app.powerbi.com شوید
  • یک فضای کاری جدید به نام جریان داده استریمینگ ایجاد کنید
  • مطمئن شوید که فضای کاری به یک مجوز پریمیوم اختصاص داده شده است. در این مثال، فضای کاری جدید به حالت مجوز – پریمیوم برای هر کاربر – اختصاص داده شده است. پس از ایجاد، وارد فضای کاری شوید و روی + New > Streaming Dataflow کلیک کنید
  • به جریان داده استریمینگ جدید نامی مانند WebVisitsRealtime بدهید
  • روی Create کلیک کنید

Power BI Streaming Dataflow

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

منطق جریان داده‌ی استریمینگ را تعریف کنید

اکنون منطق پردازشی ایجاد خواهیم کرد که به مرکز رویداد متصل می‌شود، انواع پیام‌ها را به 2 جریان تقسیم می‌کند، سپس 2 جریان را به هم متصل می‌کند تا یک خروجی واحد ایجاد شود.

  • روی نوار منو در بالا روی Event Hub کلیک کنید و ورودی دستی را انتخاب کنید
    • نام مرکز رویداد: dhevpowerbi (یا نام رویدادی که مشخص می‌کنید)
    • نقطه پایانی مرکز رویداد (فضای نام): sb://dhevpowerbistreaming.servicebus.windows.net/
    • نام کلید دسترسی مشترک مرکز رویداد: ListenEventsPolicy
    • کلید دسترسی مشترک مرکز رویداد: مقداری از فیلد کلید اصلی سیاست ListenEventsPolicy.
  • پس از ایجاد، روی دکمه‌ی «شناسایی خودکار فیلدها» کلیک کنید.
  • مولد پیام C# را اجرا کنید و رویدادهای بازدید از وب را ایجاد کنید.
  • اکنون باید فیلدهای موجود و پیش‌نمایشی از داده‌ها را ببینیم.
  • با نگه داشتن ماوس روی فیلد EventDateTime و کلیک روی علامت سه نقطه، می‌توانیم نوع داده را به Datetime تغییر دهیم.

Power BI Streaming Dataflow

اکنون منطق پردازش را به صورت زیر تعریف می‌کنیم:

  • فیلتر
    • نوع رویداد(EventType) = visitwebite
  • فیلتر
    • نوع رویداد(EventType) = browseproduct
  • پیوستن
    • چپ: SessionID
    • راست: SessionID
    • نوع پیوست: Inner
    • تمام رویدادهای ظرف 30 ثانیه گذشته را به هم پیوند دهید
  • جدول خروجی
    • نام: WebVisitsStreamingData
  • پس از ایجاد تمام منطق پردازش، روی Save کلیک کنید.

Power BI Streaming Dataflow

می‌توانیم به فضای کاری برگردیم و Streaming Dataflow را آغاز کنیم. پس از شروع Streaming Dataflow، برنامه C# را اجرا کنید تا پیام‌های JSON تولید شوند که اکنون پردازش خواهند شد.

Power BI Streaming Dataflow

اتصال Power BI Desktop به Streaming Dataflow

اکنون که Streaming Dataflow آغاز شده و پیام‌ها را دریافت می‌کند، می‌توانیم Power BI Desktop را باز کنیم و برای ایجاد گزارش به Streaming Dataflow متصل شویم.

  • Power BI Desktop را باز کنید
  • روی Get Data کلیک کنید و به Power Platform Dataflows (beta) متصل شوید
  • Workspaces > نام فضای کاری (Streaming Dataflows) > WebVisitsRealtime > hot table را باز کنید
  • Transform Data را کلیک کنید

Power BI Streaming Dataflow

  • ستون‌های زیر را حذف کنید:
    • left_EventType
    • right_eventType
    • left_EventDateTime
    • left_Device
    • left_ProductID
    • right_SessionID
  • تغییر نام ستون‌ها به صورت زیر:
    • left_SessionID: Session ID
    • left_URL: Main URL
    • right_EventDateTime: Event Date Time
    • right_URL: Product URL
    • right_Device: Device Type
    • right_ProductID: Product ID
  • نام کوئری را Web Visits Realtime بگذارید.
  • پنجره Power Query باید موارد زیر را نشان دهد.

Power BI Streaming Dataflow

Dataflow

  • روی Close & Apply کلیک کنید و وقتی از شما خواسته شد حالت ذخیره‌سازی را تنظیم کنید، DirectQuery را انتخاب کنید.

وقتی پنجره Power Query بسته شد، موارد زیر را در بوم گزارش انجام دهید.

  • فیلد Product ID را انتخاب کنید و Summarization را روی Don’t Summarize تنظیم کنید.
  • یک معیار جدید به نام Web Visit Count با کد DAX تعریف شده به صورت زیر ایجاد کنید:

Web Visit Count = COUNTROWS('Web Visits Realtime')

اکنون می‌توانیم برای نمایش داده‌های جریانی، مصورسازی‌هایی ایجاد کنیم.

  • یک مصور Card visual کنید و از معیار تعداد بازدید وب استفاده کنید.
  • یک نمودار دونات با موارد زیر اضافه کنید:
    • معیار تعداد بازدید وب در قسمت Values
    • نوع دستگاه در قسمت Legend
  • یک نمودار میله‌ای خوشه‌ای با موارد زیر اضافه کنید:
    • معیار تعداد بازدید وب در Values
    • شناسه محصول در Axis
  • یک نمودار خطی با موارد زیر اضافه کنید:
    • مقیاس تعداد بازدید وب در Values
    • تاریخ رویداد زمان روی محور
        • مطمئن شوید که قالب > محور X > نوع روی پیوسته تنظیم شده است

Power BI Streaming Dataflow

پس از ساخت این گزارش، می‌توانیم ویژگی به‌روزرسانی خودکار صفحه (Auto Page Refresh) را فعال کنیم تا داده‌های بلادرنگ (real-time) در حال پردازش نمایش داده شوند.

  • در پنل قالب (Format) گزارش، گزینه به‌روزرسانی صفحه (Page Refresh) را روی روشن (On) قرار دهید.
  • به‌روزرسانی صفحه (Page Refresh) را باز کنید و موارد زیر را تنظیم کنید:
      • نوع به‌روزرسانی: به‌روزرسانی خودکار صفحه (Auto page refresh)
      • این صفحه را هر ۱ ثانیه به‌روزرسانی کنید (Refresh this page every: 1 Second)

اکنون گزارش هر ۱ ثانیه تصاویر را به‌روزرسانی می‌کند تا هرگونه داده جریانی جدید را نشان دهد.

استقرار و پیکربندی سرویس Power BI

پس از ایجاد گزارش Power BI Desktop، می‌توانیم آن را در Power BI Service منتشر کنیم تا با دیگران به اشتراک گذاشته شود.

فایل Power BI Desktop را یا در فضای کاری دارای Streaming Dataflow یا در فضای کاری دیگری که دارای مجوز Premium است، منتشر کنید.

پیکربندی به‌روزرسانی خودکار در Power BI Tenant

اگر می‌خواهیم سرعت به‌روزرسانی را افزایش دهیم، باید تنظیمات به‌روزرسانی خودکار را تغییر دهیم. در این سناریو، ما از حالت مجوز Premium Per User استفاده می‌کنیم، بنابراین در پورتال مدیریت، در تنظیمات Premium Per User می‌توانیم فاصله به‌روزرسانی را به مقدار دیگری تغییر دهیم. در این مورد، ۱ ثانیه.

Power BI Streaming Dataflow

پیکربندی به‌روزرسانی خودکار در گزارش Power BI

پس از پیکربندی تنظیمات ادمین، باید بررسی/تغییر دهیم تا مطمئن شویم که گزارش روی فاصله به‌روزرسانی مورد نظر ما تنظیم شده است.

  • گزارش را در سرویس باز کنید و روی ویرایش کلیک کنید.
  • در پنل قالب‌بندی، مطمئن شوید که به‌روزرسانی صفحه فعال است.
  • باز کردن به‌روزرسانی صفحه و اطمینان از موارد زیر:
      • نوع به‌روزرسانی: به‌روزرسانی خودکار صفحه
      • این صفحه را هر ۱ ثانیه به‌روزرسانی کنید.

Power BI Streaming Dataflow

با کلیک روی نمایش جزئیات، می‌توانیم آماری در مورد فاصله به‌روزرسانی مشاهده کنیم تا مطمئن شویم که با تنظیمات ما مطابقت دارد. در این تصویر می‌توانیم ببینیم که فاصله مدیریت به درستی تنظیمات پیکربندی مدیریت ما را روی ۱ ثانیه نشان می‌دهد.

خاموش کردن منابع

برای خاموش کردن Streaming Dataflow، هنگام نگه داشتن ماوس روی نام Dataflow در فضای کاری Power BI، روی آیکون Stop Dataflow کلیک کنید. برای خاموش کردن Event Hub، به Event Hub در پورتال Azure بروید و روی لینک Status (که به صورت Active نمایش داده می‌شود) کلیک کنید و آن را روی Disabled تنظیم کنید.

نتیجه‌گیری

در این وبلاگ، ما یک راهکار داده‌ی استریمینگ سرتاسری با استفاده از یک برنامه‌ی C# ایجاد کرده‌ایم تا داده‌های مصنوعی بازدید وب را تولید کند، آن داده‌ها را به یک Azure Event Hub ارسال کند، یک Streaming Dataflow در Power BI ایجاد کند تا پیام‌ها را از Event Hub دریافت کند و یک گزارش Power BI برای تجسم داده‌ها ایجاد کند.

 

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

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

 

میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download

 

 

دیدگاه‌ خود را بنویسید

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

پیمایش به بالا