zoukankan      html  css  js  c++  java
  • Power BI 实现实时更新Streaming Dataset

    一、在PowerBI portal端需要准备的操作:

    1. https://app.powerbi.cn 登陆,点击左侧My Workspace,你需要有一个账号

    2. 选入Datasets,点击页面右上角的Creat,添加Streaming dataset

    3.添加API{ }

    4.记录Push URL , 这个后续作为post data的URL

    二、在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);
                  }
              }
          }
      }

    三、在portal中设置展示结果,大致实现过程:

    1. 先创建一个dashboard

    2. 点击右上角的Add tile

    3. 选定我们的streaming data tile 

    4. 执行相应的添加即可

    5.实时展示结果:(实时更新显示C#代码发来的random数据)

  • 相关阅读:
    BDC中日期和数量格式的转换处理
    ◆◆0更新SO delivery block字段(BAPI_SALESORDER_CHANGE)
    如何读取物料文档[BAPI_DOCUMENT_GETOBJECTDOCS]
    ◆◆0如何读取物料文档[BAPI_DOCUMENT_GETOBJECTDOCS]
    根据Tcode查找相应BAPI
    ◆◆0物料移动[BAPI_GOODSMVT_CREATE]
    ◆◆0[问题解决]Enter a selected set-[BAPI_ROUTING_CREATE]
    ◆◆0[Dump]BAPI_PRODORD_CHANGE dump分析
    ◆◆1创建销售订单时如何给增强扩展字段赋值[BAPI_SALESORDER_CREATEFROMDAT2]
    创建文档[BAPI_DOCUMENT_CREATE2]
  • 原文地址:https://www.cnblogs.com/yangwenbo214/p/9836348.html
Copyright © 2011-2022 走看看