JQL
概述
什麼是 JQL
Jira 官方解釋如下,一種強大,簡單靈活的查詢語句,幫您快速查找項目中的問題,JQL 並非高深莫測,供技術人員使用,對各類用戶角色,包括:開發者,測試,敏捷教練,業務部門用戶。
JQL stands for Jira Query Language and is the most powerful and flexible way to search for your issues in Jira. JQL is for everyone: developers, testers, agile project managers, and business users.
如果做個類比,那麼如果 不同項目中屬性各異的 issue 數據是蛋糕,那 JQL 語句就是 瑞士軍刀,按食客需要切割,完成送餐(展現在報表,儀表盤中)。
為什麼 XQL 都很重要
不管啥系統,只要是夠深度,精細化,都會有相關查詢語句,數據庫 SQL,Confluence 有 CQL,Insight 有 IQL。數據準確,查詢不卡死,慢查詢,看似增刪改查很簡單,其實功夫很深。如果數據不準確,那可能報表解讀出來與實際不符合的結果。
學習建議
如果英語 OK,推薦 Atlassian University 免費 JQL 入門課程,原汁原味,課後還有練習題。
如果對自己英語沒信心,可看本文後,上demo環境試玩。
如果擔心記不住常用關鍵字,可以把小抄 Cheet Sheet 打印出來。
常用術語
英文名 | 中文名 | 作用 | 示例 |
---|---|---|---|
Fields | 字段 |
|
|
Operators | 操作符 | 連接字段,值和函數;普通符號顧名思義,特殊的如
|
|
Functions | 函數 | 系統內置的功能邏輯封裝,劃分的數據範圍,比如 currentUser() 當前登錄用戶,openSprint()當前打開的衝刺 |
|
value | 值 | 各種類型的數據,文本,數值,日期等 | ABC , 123 , 2023-01-23 , |
Reserved | 保留符號及文字 | 系統內置帶功能,如果想使用,需要查詢,需使用特殊的轉義符來修飾,避免出錯。 單獨使用:前後加 單引號 ' 或雙引號 '' 文本包含:查詢前加 \\ | |
keyword | 關鍵字 | 連接幾個查詢條件或表達邏輯排序 | AND、OR、NOT、EMPTY、NULL、ORDER BY |
Term modifiers | 術語修飾符 | 模糊查询 |
|
Word stemming | 詞幹擴張 | 近義詞查詢 | ~:加在單詞前 |
試玩
簡單串起來,逐步加條件,
入門:Project in (AAA,BBB)
增強:project = (AAA,BBB) AND assignee in (currentuser())
經驗
不會寫語句
先簡單界面點選,再點 Switch to JQL,利用好聯想,各種網頁搜索,在現有基礎上修修補補
找不到字段
Jira 原生 英文,有時候用中文找 關鍵字,比如 找經辦人,輸入經辦,死活找不到,這時候,用 assignee就ok。
相對引用
經典編程話術,別寫死。
日期和人的選擇多用函數,除非有特定需求,不要固定某幾個人。這樣可以避免變更時,聯動不及時,導致JQL 查詢出來結果不對
可見性問題
經常遇到的問題之一,自己能看到,別人看不到。此時需檢查項目可見權限,問題安全級別
聯動修改
如果在 查詢語句中查詢了工作流,模塊的名稱,更名後 如果JQL 沒及時變更,就會導致查詢出錯。
性能優化
查詢卡頓影響用戶體驗,停頓超過10秒以上,就要考慮優化語句或縮小範圍,查詢優化經驗1,優化經驗2
如果確實需要大數據量查詢,為避免超時,則需要修改 數據庫默認超時時間。
交叉查詢
除了內部 Jira 數據查詢,隨著使用深入,還可能涉及到跨系統交叉查詢,如 JQL + IQL ,JQL+IQL在 eazyBI 中的運用
插件增強
原生的功能不夠用的情況下,需要增強,以下是兩個常用的插件,Scriptrunner for Jira , JQL Search Extensions for Jira , 最受歡迎的10個增強查詢函數