首页 > 解决方案 > 将数据从流分析输出到 powerbi 时被覆盖的数据

问题描述

最近我一直在使用 PowerBI 作为输出接收器的流分析查询。我做了一个简单的查询,它检索我们网站请求的 http 响应代码的总数,并按日期和响应代码对它们进行分组。输入数据是从保存 BLOB 存储的存储帐户中检索的。这是我的查询:

SELECT
    DATETIMEFROMPARTS(DATEPART(year,R.context.data.eventTime), DATEPART(month,R.context.data.eventTime),DATEPART(day,R.context.data.eventTime),0,0,0,0) as datum,     
    request.ArrayValue.responseCode,
    count(request.ArrayValue.responseCode)
INTO
  [requests-httpresponsecode]
FROM
  [cvweu-internet-pr-sa-requests] R TIMESTAMP BY R.context.data.eventTime
OUTER APPLY GetArrayElements(R.request) as request
GROUP BY DATETIMEFROMPARTS(DATEPART(year,R.context.data.eventTime), DATEPART(month,R.context.data.eventTime),DATEPART(day,R.context.data.eventTime),0,0,0,0), request.ArrayValue.responseCode, System.TimeStamp

由于连续导出在 2018 年 9 月 3 日开始启用,因此我选择了 2018 年 9 月 3 日的工作开始时间。由于我对直到今天的统计数据感兴趣,因此我没有包含日期​​间隔,因此我希望看到从 2018 年 9 月 3 日到现在(2018 年 12 月 20 日)。作业运行良好,没有错误,我选择 PowerBI 作为输出接收器。我立即看到从 9 月 3 日开始传播的图表按天分组并计数。到现在为止还挺好。几天后,我注意到输出数据集不再从 9 月 3 日开始,而是从 12 月 2 日到现在。显然数据正在被覆盖。

以下链接说:

https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-power-bi-dashboard

" defaultRetentionPolicy: BasicFIFO: 数据为先进先出,最大20万行。 "

但我的输出表没有接近 200.000 行:

datum,count,responsecode
2018-12-02 00:00:00,332348,527387
2018-12-03 00:00:00,3178250,3282791
2018-12-04 00:00:00,3170981,4236046
2018-12-05 00:00:00,2943513,3911390
2018-12-06 00:00:00,2966448,3914963
2018-12-07 00:00:00,2825741,3999027
2018-12-08 00:00:00,1621555,3353481
2018-12-09 00:00:00,2278784,3706966
2018-12-10 00:00:00,3160370,3911582
2018-12-11 00:00:00,3806272,3681742
2018-12-12 00:00:00,4402169,3751960
2018-12-13 00:00:00,2924212,3733805
2018-12-14 00:00:00,2815931,3618851
2018-12-15 00:00:00,1954330,3240276
2018-12-16 00:00:00,2327456,3375378
2018-12-17 00:00:00,3321780,3794147
2018-12-18 00:00:00,3229474,4335080
2018-12-19 00:00:00,3329212,4269236
2018-12-20 00:00:00,651642,1195501

编辑:我根据 https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-quick-create-portal创建了 STREAM 输入源。我也可以创建一个 REFERENCE 输入,但这会使我的查询无效,因为不支持 APPLY 和 GROUP BY 并且我还认为 STREAM 输入是我想要的,根据https://docs.microsoft.com/en-us/azure/流分析/流分析添加输入

我错过了什么?是我的查询吗?

标签: azurepowerbiazure-stream-analytics

解决方案


看起来您正在流式传输到Streaming dataset。流式数据集不会将数据存储在数据库中,而是仅保留最后一小时的数据。如果你想保持数据推送到它,那么你必须Historic data analysis在创建数据集时启用选项:

在此处输入图像描述

这将创建具有基本FIFO 保留策略(即保留大约200k-210k 记录)的PushStreaming数据集(又名混合)。


推荐阅读