使用权力BI API向流数据集推送实时数据并在仪表板可视化

使用权力BI API向流数据集推送实时数据并在仪表板可视化

使用权力BI实现实时数据的可视化是大家比较关心的一个话题,在仪表盘上实现推送数据的展示,可以在诸如指挥大屏等场景下使用。


本视频实战内容如下:https://v.qq.com/x/page/y3030euh7do.html




先看下效果,下图中的

使用权力BI API向流数据集推送实时数据并在仪表板可视化


步骤如下:

<李>

创建流数据集,选择API方式

其中Azure流分析,截至到2019年12月,中国区Azure流分析暂时不支持将输出直接写入到BI中。

使用权力BI API向流数据集推送实时数据并在仪表板可视化


<李>

填写数据集名称和值及值类型并打开历史数据分析:

其中历史数据分析是用来暂存数据的,暂存的数据可以呈现一条曲线。


使用权力BI API向流数据集推送实时数据并在仪表板可视化

<李>

创建一个仪表盘并向仪表盘添加一个实时数据磁贴


使用权力BI API向流数据集推送实时数据并在仪表板可视化


4。选择已经创建好的流数据集


使用权力BI API向流数据集推送实时数据并在仪表板可视化

5。在仪表板页面添加一个自定义的流数据磁贴

可视化效果选择折线图

“轴”选择时间

温度湿度添加为“值”

使用权力BI API向流数据集推送实时数据并在仪表板可视化

6。通过如下图示的信息调用后请求即可将数据推送到数据集

使用权力BI API向流数据集推送实时数据并在仪表板可视化


邮递员发送的结果为200表示执行成功。

使用权力BI API向流数据集推送实时数据并在仪表板可视化

7。在数据集上创建报表,可以查阅使用后请求推送到流数据集的结果

使用权力BI API向流数据集推送实时数据并在仪表板可视化



8。调用示例代码如下:

使用Newtonsoft.Json;使用系统,使用先;使用System.Net;使用text;使用System.Threading.Tasks;名称空间pushdatatopowerbidataset{类程序{私有静态int s_telemetryInterval=1;//秒私有静态字符串PowerBIPushDataUrl=" https://api.powerbi.cn/beta/729c6bf9听头- 4 - b7f b56a - 5 - fb0c70c9a80/datasets/fc445a3c - 9 - 25 - 4298 - 8188 - 89112874 - e5c3/rows?key=seaorxugmkybekrdraxfswm5o1ms%2f9d4pcpf9zagblivdnxz9privqyvwas%2fxmoo8wa01vuau%2b2hbhi8gdawmg%3d%3d”;私有静态void Main (string [] args){控制台。WriteLine(“权力bi数据集发送实时数据的api。ctrl - c退出。\ n”);SendMessageToPbiDataSetAsync ();Console.ReadLine ();}私有静态异步空白SendMessageToPbiDataSetAsync(){虽然(真正的){//初始遥测值双minTemperature=20;双minHumidity=60;随机兰德=new随机();双currentTemperature=minTemperature + rand.NextDouble () * 15;双currentHumidity=minHumidity + rand.NextDouble () * 20;//创建JSON消息var telemetryDataPoint=new{温度=currentTemperature湿度=currentHumidity时间=DateTime。现在};var messageString=JsonConvert.SerializeObject (telemetryDataPoint);PostUrlAsync (PowerBIPushDataUrl messageString);等待的任务。延迟(s_telemetryInterval * 1000);}}PostUrlAsync公共静态字符串(字符串url字符串postData){字符串结果=" ";HttpWebRequest点播=(HttpWebRequest) WebRequest.Create (url);要求的事情。方法=癙OST”;要求的事情。超时=8000;//设置请求超时时间,单位为毫秒点播。ContentType=" application/json”;byte [] data=https://www.yisu.com/zixun/Encoding.UTF8.GetBytes (“[+ postData +“]”);要求的事情。ContentLength=data.Length;使用(流reqStream=req.GetRequestStream ()) {reqStream。写(数据、0 data.Length);reqStream.Close ();}HttpWebResponse resp=(HttpWebResponse) req.GetResponse ();流流=resp.GetResponseStream ();//获取响应内容如果(resp.StatusCode==HttpStatusCode.OK){控制台。WriteLine (“OK”+ " " + postData);}返回结果;null

使用权力BI API向流数据集推送实时数据并在仪表板可视化