Power BI 實現實時更新Streaming Dataset

1、在PowerBI portal端須要準備的操做:

1. https://app.powerbi.cn 登錄,點擊左側My Workspace,你須要有一個帳號

2. 選入Datasets,點擊頁面右上角的Creat,添加Streaming dataset

3.添加API{ }

4.記錄Push URL , 這個後續做爲post data的URL

 

2、在c#代碼中的操做:

  1. realTimePushURL 改爲上文你的Push URL
  2. 必定要注意數據結構 那個postData變量的結構要和streaming dataset的結構一致
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
     
    namespace StreamDataToPowerBI
    {
        class Program
        {
            // Paste your own push URL below
            // e.g. https://api.powerbi.com/beta/2b958e42-b81e-441d-af13-801621ce8401/datasets/a5a15fd1-8cb6-4527-b2e6-f22f2a274d4d/rows?key=apsBX1ef%2F8a7ToL2xxxxxxxxxxxZeGATSyRYerZKpnu%2FbE2g2yDM0%2Bs4cDW9mqu5zKoGcQ27vJuh0Huw%3D%3D
            private static string realTimePushURL = "** paste your push URL here **";
            static void Main(string[] args)
            { 
                while (true) {
                    try
                    {
                        // Declare values that we're about to send
                                            String currentTime = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ");  //2017-11-03T06:23:35.521Z
                        Random r = new Random();
                        int currentValue = r.Next(0, 100);
                        // Send POST request to the push URL
                        // Uses the WebRequest sample code as documented here: https://msdn.microsoft.com/en-us/library/debx8sh9(v=vs.110).aspx
                        WebRequest request = WebRequest.Create(this.PostUri);
                        request.Method = "POST";
                        string postData = String.Format("[{{ \"time\": \"{0}\", \"value\": {1}}}]", currentTime, currentValue);
                        Console.WriteLine(String.Format("Making POST request with data: {0}", postData));
                        // Prepare request for sending
                        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                        request.ContentLength = byteArray.Length;
     
                        // Get the request stream.
                        Stream dataStream = request.GetRequestStream();
     
                        // Write the data to the request stream.
                        dataStream.Write(byteArray, 0, byteArray.Length);
     
                        // Close the Stream object.
                        dataStream.Close();
     
                        // Get the response.
                        WebResponse response = request.GetResponse();
     
                        // Display the status.
                        Console.WriteLine(String.Format("Service response: {0}", ((HttpWebResponse)response).StatusCode));
     
                        // Get the stream containing content returned by the server.
                        dataStream = response.GetResponseStream();
     
                        // Open the stream using a StreamReader for easy access.
                        StreamReader reader = new StreamReader(dataStream);
     
                        // Read the content.
                        string responseFromServer = reader.ReadToEnd();
     
                        // Display the content.
                        Console.WriteLine(responseFromServer);
     
                        // Clean up the streams.
                        reader.Close();
                        dataStream.Close();
                        response.Close();
     
                    } 
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                    // Wait 1 second before sending
                    System.Threading.Thread.Sleep(1000);
                }
            }
        }
    }

3、在portal中設置展現結果,大體實現過程:

1. 先建立一個dashboard

2. 點擊右上角的Add tile

 

3. 選定咱們的streaming data tile 

 

4. 執行相應的添加便可

5.實時展現結果:(實時更新顯示C#代碼發來的random數據)

相關文章
相關標籤/搜索