什麼是 Databricks SQL 警示?
Databricks SQL 警示會定期執行查詢、評估定義的條件,並在符合條件時傳送通知。 您可以 set 警示,以監視您的業務,並在報告的數據超出預期限制時傳送通知。 排程警示會執行其基礎查詢,並檢查警示準則。 這與基礎查詢上可能存在的任何排程無關。
重要
- 使用 parameters 查詢的警示會在 SQL 編輯器中使用針對每個參數指定的預設值。
檢視及組織警示
使用下列其中一個選項來存取警示:
- 點擊側邊欄中的 工作區,以查看預設儲存在 歡迎頁 資料夾中的警示 where。 用戶可以將警示組織成工作區瀏覽器中的資料夾,以及其他 Databricks 物件。
- 按兩下提要欄位中的 [警示] 以檢視警示清單頁面。
根據預設,物件會以反向時間順序排序。 您可以按下 column 標題來重新排序 list。 按兩下畫面頂端附近的 [ 所有警示] 索引標籤,即可檢視工作區中的所有警示。 按一下 [我的警示] 索引標籤,即可檢視您是擁有者的 where 警示。
- 名稱 會顯示每個警示的字串名稱。
-
狀態 會顯示警示狀態
TRIGGERED
為、OK
或UNKNOWN
。 - 上次更新 會顯示上次更新的時間或日期。
-
建立時間 會顯示警示建立的日期和時間。
-
TRIGGERED
表示,在最近的執行中,目標查詢中的 [值] column 符合您設定的 [條件] 和 [閾值]。 如果您的警示會檢查「貓」是否超過1500,只要「貓」超過1500,就會觸發警示。 -
OK
表示,在最近的查詢執行中,Value column 不符合您設定的條件和臨界值。 這並不表示先前未觸發警示。 如果您的「貓」值現在是 1470,您的警示會顯示為OK
。 -
UNKNOWN
表示 Databricks SQL 沒有足夠的數據來評估警示準則。 建立警示之後,您將會立即看到此狀態,直到查詢執行為止。 如果查詢結果中沒有數據,或最近的查詢結果未包含您所設定 值 Column,您也會看到此狀態。
-
建立警示
請遵循下列步驟,在單一查詢 column 上建立警示。
執行下列其中一項動作:
- 點選側邊欄中的 [新增],然後 select[警示]。
- 按兩下提要欄位中的 [警示],然後按兩下 [+ 新增警示] 按鈕。
- 按兩下提要欄位中的 [工作區],然後按兩下 [+ 建立警示]。
在 [ 查詢] 欄位中,搜尋目標查詢。
若要對多個 columns發出警示,您必須修改查詢。 請參閱 警示匯總。
在 [ 觸發條件] 欄位中,設定警示。
Value column 下拉式清單用來控制和評估查詢結果中的哪個欄位。 警示條件可以在查詢結果中column的第一個值上set,或者您可以選擇set單一column的所有列數據進行匯總,如SUM或AVERAGE。
[ 運算子 ] 下拉式清單會控制要套用的邏輯作業。
您指定的條件會用來比較 閾值 的文字輸入與數值 column。
按兩下 [預覽警示 ] 預覽警示,並測試警示是否會以目前數據觸發。
在 [觸發警示時,傳送通知 字段,select 觸發警示時傳送通知數目:
-
Just once:當警示狀態
TRIGGERED
傳送通知。 -
每次評估警示時:每當警示狀態
TRIGGERED
為時傳送通知,而不論其先前評估的狀態為何。 -
最多每一個:每當警示狀態為
TRIGGERED
特定間隔時傳送通知。 此選項可讓您避免經常觸發之警示的通知垃圾郵件。
無論您選擇的通知設定為何,每當狀態從
OK
到 或從TRIGGERED
傳至TRIGGERED
OK
時,您都會收到通知。 如果狀態從一個執行到TRIGGERED
下一個執行,排程設定會影響您收到的通知數目。 如需詳細資訊,請參閱 通知頻率。-
Just once:當警示狀態
在 [ 範本 ] 下拉式清單中,選擇範本:
- 使用預設範本:警示通知是訊息,其中包含 [警示設定] 畫面和 [查詢] 畫面的連結。
-
使用自定義範本:警示通知包含警示的更具體資訊。
方塊會顯示,其中包含主旨和本文的輸入欄位。 任何靜態內容都是有效的,而且您可以納入內建範本變數:
-
ALERT_STATUS
:評估的警示狀態(字串)。 -
ALERT_CONDITION
:警示條件運算符(字串)。 -
ALERT_THRESHOLD
:警示閾值(字串或數位)。 -
ALERT_COLUMN
:警示 column 名稱(字串)。 -
ALERT_NAME
:警示名稱(字串)。 -
ALERT_URL
:警示頁面 URL (字串)。 -
QUERY_NAME
:相關聯的查詢名稱(字串)。 -
QUERY_URL
:相關聯的查詢頁面 URL(字串)。 -
QUERY_RESULT_TABLE
:查詢結果 HTML table (string)。 結果僅限於前 100 個數據列。 -
QUERY_RESULT_VALUE
:查詢結果值(字串或數位)。 -
QUERY_RESULT_ROWS
:查詢結果數據列(值陣列)。 -
QUERY_RESULT_COLS
:查詢結果 columns (字串陣列)。
例如,例如,範例主旨可能是:
Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}
。-
您可以使用 HTML 來格式化自訂範本中的訊息。 樣本中允許下列標籤和屬性:
- 標記:
<a>
、<abbr>
、、<acronym>
<b>
<blockquote>
<body>
<br>
<code>
<div>
<em>
<h1>
<h2>
<h3>
<h4>
<h5
><h6
><head
><hr>
<html>
<i>
<li>
<ol>
<p>
<span>
<strong>
<table>
<tbody>
<td>
<th>
<tr>
<ul>
- 屬性:href(適用於 ),標題(針對
<a>
<a>
,<abbr>
)<acronym>
- 標記:
按兩下 [ 預覽] 切換按鈕,預覽轉譯的結果。
重要
預覽適用於驗證範本變數是否正確轉譯。 這不是最終通知內容的準確表示法,因為每個通知目的地可以以不同的方式顯示通知。
按兩下 [ 儲存變更] 按鈕。
按兩下 [ 建立警示]。
按一下 [加入排程] 。
- 使用下拉式選擇器來指定頻率、期間、開始時間和時區。 或者,selectShow cron 語法 複選框,以在 Quartz Cron 語法中編輯排程。
- 選擇 [更多選項] 以顯示可選設定。 您也可以選擇:
- 排程的名稱。
- 用來為查詢提供支援的 SQL 倉儲。 根據預設,用於特別查詢執行的 SQL 倉儲也可用於已排程的工作。 使用此選擇性設定可 select 不同的倉儲來執行排程查詢。
按兩下 [新增排程] 對話框中的 [目的地] 索引標籤。
- 使用下拉式清單來 select 可用的 通知目的地。 或者,開始輸入使用者名稱以新增個人。
重要
如果您略過此步驟 ,則不會 在觸發警示時收到通知。
按一下 [建立]。 您儲存的警示和通知詳細數據會出現在畫面上。
共用排程。
- 在列出的時間表右側,選擇 kebab 功能表,select編輯排程權限。
- 從對話方塊的下拉式功能表中選擇使用者或群組。
- 選擇下列排程權限:
- 沒有許可權:未授與任何許可權。 沒有許可權的使用者看不到排程存在,即使他們是訂閱者或包含在列出的通知目的地中也一樣。
- CAN VIEW:授與檢視排程執行結果的許可權。
- CAN MANAGE RUN:授與檢視排程執行結果的許可權。
- CAN MANAGE:授與檢視、修改和刪除排程的許可權。 需要此許可權才能變更執行間隔、update 訂閱者 list,以及暫停或取消排程。
- IS OWNER:授與 CAN MANAGE 的所有許可權。 此外,排程擁有者的 credentials 將被用來執行儀表板查詢。 只有工作區管理員可以變更擁有者。
重要
警示和排程的許可權是分開的。 Grant 通知目的地中使用者和群組的存取權 list,以便檢視排程的執行結果。
共用警示。
- 按兩下 頁面右上方附近。
- 新增應該有權存取警示的使用者或群組。
- 選擇適當的許可權等級,然後按兩下 [ 新增]。
重要
CAN MANAGE 授與檢視、修改和刪除排程的許可權。 需要此許可權才能變更執行間隔、update 通知目的地 list,以及暫停或取消排程。
如需警示許可權等級的詳細資訊,請參閱 警示 ACL。
警示匯總
警示匯總的運作方式是修改附加至警示之 Databricks SQL 查詢的原始 SQL。 警報將原始查詢文字封裝在通用 table 表達式(CTE)中,並在其上執行封裝的聚合查詢,以匯總查詢結果。
例如, SUM
附加至含有文字 SELECT 1 AS column_name
之查詢的警示匯總表示每當重新整理警示時,執行的修改 SQL 會是: WITH q AS (SELECT 1 AS column_name) SELECT SUM(column_name) FROM q
。
這表示,只要在警示中進行匯總,原始的查詢結果(未匯總)就無法顯示在警示自定義主體中(如 parameters、QUERY_RESULT_ROWS
和 QUERY_RESULT_COLS
)。 相反地,這些變數只會顯示最終的匯總后查詢結果。
注意
API 不支援所有與匯總相關的觸發條件。
多個 columns 的警示
若要根據查詢的多個 columnsset 警示,您的查詢可以實作警示邏輯,並傳回警示要觸發的布爾值。 例如:
SELECT CASE WHEN drafts_count > 10000 AND archived_count > 5000 THEN 1 ELSE 0 END
FROM (
SELECT sum(CASE WHEN is_archived THEN 1 ELSE 0 END) AS archived_count,
sum(CASE WHEN is_draft THEN 1 ELSE 0 END) AS drafts_count
FROM queries) data
當 時1
,此查詢會傳drafts_count > 10000 and archived_count > 5000
回 。
然後,您可以設定警示,以在值為 1
時觸發。
通知頻率
每當 Databricks SQL 偵測到警示狀態已從 OK
變更為 TRIGGERED
或反之亦然時,就會將通知傳送至您選擇的通知目的地。
請考慮此範例 where:在排定每天執行一次的查詢上配置一個警示。 警報的每日狀態會出現在下列 table中。
在星期一之前,警示狀態為 OK
。
Day | 警示狀態 |
---|---|
星期一 | 確定 |
Tuesday | 確定 |
星期三 | 引發 |
Thursday | 引發 |
星期五 | 引發 |
星期六 | 引發 |
星期日 | 確定 |
如果通知頻率 set 至 Just Once
,Databricks SQL 會在星期三傳送通知,當狀態從 OK
變更為 TRIGGERED
,並在周日切換回時再次傳送通知。 除非您特別設定警示,否則不會在星期四、星期五或星期六傳送警示,因為警示狀態不會在這些日執行之間變更。
設定警示許可權並轉移警示擁有權
您至少必須擁有查詢的 CAN MANAGE 權限,才能共用查詢。 如需警示許可權等級,請參閱 警示 ACL。
在提要欄位中,按兩下 [ 警示]。
按兩下警示。
按下左上方的 按鈕來開啟 [共用] 對話方塊。
搜尋和 select 群組和使用者,並指派權限等級。
按一下新增。
轉移警示的擁有權
當您儲存警示時,您會成為警示的擁有者。 如果警示的擁有者已從工作區中移除,警示就不會再擁有擁有者。 工作區系統管理員使用者可以將警示的擁有權轉移給不同的使用者。 服務主體和群組無法指派警示的擁有權。 您也可以使用 權限 API 來轉移所有權。
身為工作區管理員,登入您的 Azure Databricks 工作區。
在提要欄位中,按兩下 [ 警示]。
按兩下警示。
按下右上方的 [共用] 按鈕,以開啟 [共用] 對話方塊。
按下右上方的 [齒輪] 圖示,然後按下 [指派新擁有者]。
Select 指派擁有權給使用者。
按一下 [確認]。