使用ODATA获取每个用户的最新记录
由于PowerShell方法从Office365获取邮箱统计信息,每个邮箱大约需要2秒,因此我正在努力从中获取数据,每2000个邮箱只需要几秒钟 我遇到的问题是,统计数据会定期更新,并且会保留一些历史数据,因此每个用户都有大量记录。我只想获得每个用户的最新记录,但我还没有找到一种方法来做到这一点。我最接近的方法是使用使用ODATA获取每个用户的最新记录,odata,office365-restapi,Odata,Office365 Restapi,由于PowerShell方法从Office365获取邮箱统计信息,每个邮箱大约需要2秒,因此我正在努力从中获取数据,每2000个邮箱只需要几秒钟 我遇到的问题是,统计数据会定期更新,并且会保留一些历史数据,因此每个用户都有大量记录。我只想获得每个用户的最新记录,但我还没有找到一种方法来做到这一点。我最接近的方法是使用$filter=Date ge DateTime'2016-03-10T00:00:00',其中日期连接到几天前。理论上,如果我按日期描述排序,我应该首先得到最新的记录,如果有一个用
$filter=Date ge DateTime'2016-03-10T00:00:00'
,其中日期连接到几天前。理论上,如果我按日期描述排序,我应该首先得到最新的记录,如果有一个用户有3/10和3/11的记录,那么3/11记录将首先被拉出来,这对我来说很有用。但不管我怎么分类,它似乎都是先带着旧唱片回来的
理想情况下,我希望能够设置条件,以便它只返回每个邮箱的最新记录,但我似乎无法想出或找到如何做到这一点。我能做的最接近的一件事就是开始运行在特定日期过滤的查询,在每个查询中将日期往回走一天
如果我可以首先返回最新的记录,我就可以使用它,因为如果我已经收到了一个较新的记录,我就可以丢弃它
https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MailboxUsageDetail/
?DelegatedOrg=nnn.onmicrosoft.com&$select=Date,WindowsLiveID,CurrentMailboxSize
&$filter=Date ge DateTime'2016-03-08T00:00:00'&$orderby=Date desc
因此,问题是:
$orderby
有什么错$orderby
,可以使用$top=1
获取最新记录<在这种情况下,code>$filter和$skip
可能不需要。
https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MailboxUsageDetail/?DelegatedOrg=nnn.onmicrosoft.com&$select=Date、WindowsLiveID、CurrentMailboxSize和$orderby=Date desc和$top=1
我没有尝试$top,因为我假设它与SQL中的大多数top参数一样工作,只返回一行,事实上这就是它的工作方式。我需要获取每个邮箱的最新记录,而不仅仅是最新记录。