1. 異步查詢

大部分場景下,神策分析都可以將分析結果即時傳回給用戶,例如在數秒或者不超過 30 秒的時間內傳回並展現出結果。但在以下個別場景中,可能需要用戶等待數分鐘或者更久:

  1. 查詢的數據量特別大,同時查詢複雜度很高,且無法命中快取;
  2. 查詢的併發人數較多,且無法命中快取;
  3. 查詢傳回的結果集特別大,例如查詢一個用戶群的列表,傳回的結果集可能有幾百兆或者更大。 

考慮到儘可能不阻塞用戶的查詢工作,且避免因誤操作關閉頁面導致無法找回之前的查詢結果,我們在產品中增加了異步查詢功能。針對上述三個場景,允許用戶將此查詢保留至後台持續計算。當查詢完成,透過消息通知及時告知用戶查看或下載分析結果。


在進行大數據量查詢時,等待查詢區域出現「保留查詢到後台,在當前頁開始新的查詢」按鈕,點擊後出現確認提示,點擊「好的」以後,本次查詢會進入列隊進行後台查詢,當前頁可進行其他查詢操作,當列隊中的查詢完成後會有系統通知。


導出數據本質上也是一次查詢,和文件產生的過程。所以在下載文件過程中,用戶可以在當前頁面等待文件的產生,也可以關閉提示窗。文件產生成功後,將在通知欄中提示當前用戶,同樣此文件會預設保存 7 日。

2. 列隊查詢記錄

為了輔助「大數據量查詢的用戶」後台查詢的分析內容,神策新增「列隊查詢記錄」板塊用戶查看歷史查詢記錄。此結果以快照的形式保存當時查詢的結果,所以如果有新的數據入庫,或涉及今日的即時數據,不會在此快照結果內。

目前,我們提供過去 7 日的查詢記錄。每十秒系統將會自動重新整理一次查詢狀態,從而我們可以在此頁面了解當前「全域查詢情況」,對於整體查詢資源以及數據查詢結果耗時,提供有一個更好地預期。

可在此列表中逐個或批量取消「進行中」和「等待中」的查詢項。游標 hover 在「失敗」狀態上,可查詢失敗原因。當然,如果查詢最終失敗,系統也會透過通知的方式及時提醒當前使用者。