主頁 > .NET開發 > Azure流分析:使每個視窗的TUMBLINGWINDOW函式開始日期包含,每個視窗的結束日期不包含

Azure流分析:使每個視窗的TUMBLINGWINDOW函式開始日期包含,每個視窗的結束日期不包含

2022-02-25 03:44:16 .NET開發

語境

我有一個關于天藍色流分析(使用類似 T-SQL 的語言)的問題,特別是在 TUMBLING WINDOW 函式的引數中使用 offset 引數。基本上我正在嘗試使用 offset 引數來使視窗間隔的開始時間包含在內,而結束視窗時間不包含在內(這與默認行為相反)。

這是參考檔案:https ://docs.microsoft.com/en-us/stream-analytics-query/tumbling-window-azure-stream-analytics

檔案提到這可以用偏移量來完成并給出了一個例子,但并不真正理解它是如何作業的,并且希望能夠將它應用到我將 TUMBLING WINDOW 間隔設為 1 天的場景中(不確定這是否會有所不同或不傳遞到偏移量的引數)。我還沒有找到任何明確的解釋,所以如果有人有任何見解,那就太好了。

試過了

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, TumblingWindow(Duration(day, 1), Offset(millisecond, -1))

在這里,我剛剛以檔案中的示例為例,并將時間視窗持續時間更改為我想要的持續時間,同時保持偏移量不變。不確定這是否正確(似乎不正確),但不完全確定如何使用偏移量使視窗包含在開始視窗上,并在結束時排除,就像它在檔案示例中提到的那樣。

uj5u.com熱心網友回復:

首先讓我們在撰寫帶有時間元素的查詢時提到兩個好的做法:

  • 如果您在 VS Code 中進行本地開發,請使用TIMESTAMP BY,否則整個檔案將在單個時間戳(查詢開始時間)上加載,這將使所有時間邏輯沒有意義。如果您沒有事件時間戳,或者不想使用有效負載中的時間戳,則始終可以使用TIMESTAMP BY EventEnqueuedUtcTime(您需要添加到本地資料樣本中)這是事件中心的默認隱式行為
  • 在您的查詢中,通過同時選擇 WindowStart 和 WindowEnd 使視窗邊界可見,如下所示:
SELECT
    --This is for a 1 minute window, adjust as necessary
    DATEADD(minute,-1,System.Timestamp()) AS WindowStart,
    System.Timestamp() AS WindowEnd,
    ...

現在我們有了它,我們可以查看偏移量語法。我認為最好的方法是通過一個示例來查看它(然后我應該將其放入檔案中......):

我的輸入檔案:

{"ReadingTimestamp":"2021-12-10T10:00:00.0000000","deviceId":1}
{"ReadingTimestamp":"2021-12-10T10:00:59.0000000","deviceId":2}
{"ReadingTimestamp":"2021-12-10T10:01:00.0000000","deviceId":3}
{"ReadingTimestamp":"2021-12-10T10:01:01.0000000","deviceId":4}

我將在 1 分鐘的滾動視窗中查看這些記錄,并查看它們如何根據偏移量進出它們。

這是默認行為:

SELECT
    DATEADD(minute,-1,System.Timestamp()) AS WindowStart,
    System.Timestamp() AS WindowEnd,
    COUNT(*) AS C
FROM Input1 TIMESTAMP BY ReadingTimestamp
GROUP BY Tumbling(duration(minute,1))

這給了我:

視窗開始 視窗結束 C
2021-12-10T09:59:00.0000000Z 2021-12-10T10:00:00.0000000Z 1
2021-12-10T10:00:00.0000000Z 2021-12-10T10:01:00.0000000Z 2
2021-12-10T10:01:00.0000000Z 2021-12-10T10:02:00.0000000Z 1

請注意第一條記錄是如何落在 10:00:00 并被推送到前一個視窗中的。

然后使用偏移量:

SELECT
    DATEADD(minute,-1,System.Timestamp()) AS WindowStart,
    System.Timestamp() AS WindowEnd,
    COUNT(*) AS C
INTO Output3
FROM Input1 TIMESTAMP BY ReadingTimestamp
GROUP BY Tumbling(duration(minute,1),offset(millisecond,-1))

我們有:

視窗開始 視窗結束 C
2021-12-10T09:59:59.9990000Z 2021-12-10T10:00:59.9990000Z 2
2021-12-10T10:00:59.9990000Z 2021-12-10T10:01:59.9990000Z 2

記錄 1 和 2 現在是第一個視窗的一部分,而 3 和 4 是第二個視窗的一部分。

But also note how we haven't made the previous windows switch the behavior at their bounds (from inclusive to exclusive and vice versa), we have simply moved the goalpost by an epsilon value to emulate the behavior.

So:

  • 09:59:00 to 10:00:00 : received no events so wasn't displayed anymore
  • 10:00:00 to 10:01:00 : became 09:59:59.999 to 10:00:59.999
  • 10:01:00 to 10:02:00 : became 10:00:59.999 to 10:01:59.999

But as long as you can find an offset that is small enough to be considered negligible by your use case you are good. We have microsecond so I'm guessing that should work out fine ;)

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/431802.html

標籤:天蓝色 tsql 天蓝色流分析

上一篇:如何將列添加到現有SQL輸出?

下一篇:上次成功付款日期

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more