日誌服務提供一站式的日誌採集、存儲、查詢、計算功能。交互式的日誌採集體驗,釋放用戶的運維壓力,解放用戶的雙手; 交互式的查詢分析體驗,讓用戶自由的構建數據模型、探索式分析挖掘數據深層。python
用戶使用日誌服務的查詢分析能力,不只能夠在控制檯交互式查詢,也能夠使用SDK,在程序中使用查詢分析。 當計算結果比較大時,怎麼把全量結果讀取到本地,是一個比較比較頭疼的問題。幸虧,日誌服務提供了翻頁的功能,不只能夠翻頁讀取原始日誌內容,也能夠把SQL的計算結果翻頁讀取到本地。開發者能夠經過日誌服務提供的SDK,或者Cli,經過讀數據接口翻頁讀取日誌。api
日誌服務提供一個統一的查詢日誌入口:GetLogstoreLogs,既能夠根據關鍵字查詢日誌原始內容,也能夠提交SQL計算,獲取計算結果。網絡
• 使用關鍵字查詢,獲取原始內容,能夠經過API中的offset和lines參數來翻頁獲取全部內容。運維
• 使用SQL計算,獲取SQL的計算結果,使用SQL的limit語法來達到翻頁的目的。spa
在GetLogStoreLogs api中,包含offset和lines兩個參數3d
• offset : 用於指定從第一行開始讀取日誌日誌
• lines : 用於指定當前的請求讀取多少行,該參數最大100行,若是設置該參數大於100行,則仍然返回100行。blog
在翻頁讀取時,不停的增大offset,知道讀取到某個offset後,獲取的結果行數爲0,而且結果的progress爲complete狀態,則認爲讀取到了所有數據,能夠結束了。接口
翻頁的僞代碼:ip
python 翻頁讀取樣例
更詳細案例參考文檔:
Java 翻頁讀取樣例
更詳細的案例參考文檔
SQL分析結果翻頁讀取
在SQL分析中,GetLogStoreLogs API 參數中的offset 和lines是無效的,填寫。也就是說,若是按照上文翻頁讀取原始內容的方式,遍歷offset翻頁,那麼每次SQL執行的結果都是同樣的。理論上,咱們能夠在一次調用中,獲取所有的計算結果,可是若是結果集太大,可能會產生如下問題:
• 網絡上傳輸大量數據延時比較高。
• 客戶端的內存要保存大量的結果,供進一步處理。
爲了解決SQL翻頁的問題,咱們提供了標準SQL的limit翻頁語法
Offset表示從第幾行開始讀取結果
• Line表示讀取多少行,Line沒有大小限制;可是若是一次讀取太多,會影響網絡延時和客戶端的處理。
• 一個典型案例,假如如下SQL共產生2000條日誌
那麼能夠翻頁,每次讀取500行,共4次讀取完成:
在程序中,SQL翻頁的僞代碼這樣寫:
Python程序樣例:
Java程序樣例:
本文做者:雲雷
本文爲雲棲社區原創內容,未經容許不得轉載。