azure - 将数据从流分析输出到 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/流分析/流分析添加输入。
我错过了什么?是我的查询吗?
解决方案
看起来您正在流式传输到Streaming dataset。流式数据集不会将数据存储在数据库中,而是仅保留最后一小时的数据。如果你想保持数据推送到它,那么你必须Historic data analysis
在创建数据集时启用选项:
这将创建具有基本FIFO 保留策略(即保留大约200k-210k 记录)的PushStreaming数据集(又名混合)。
推荐阅读
- ruby-on-rails - 比较时,两个相同的日期值,Rails 说这两个值不同
- angular - Kubernetes 可以看到我的 Angular 控制台日志吗?
- c++ - C++实现循环宏的方法
- wso2 - 如何自定义 wso2 api manager 错误格式?
- java - 可以使用从远程主机连接的 java 代理来传递数据吗?
- amazon-web-services - 在 AWS Elastic Beanstalk 中部署烧瓶应用程序时出现 require.txt 的问题
- sql - SQLite:按 NULL 值的数量排序
- android - 使用工具栏中的按钮在片段之间导航
- html - 是什么让两个具有相同 CSS 属性的元素看起来不同?
- sql - SQL Server:合并迭代