共用方式為


什麼是 Databricks SQL 警示?

Databricks SQL 警示會定期執行查詢、評估定義的條件,並在符合條件時傳送通知。 您可以 set 警示,以監視您的業務,並在報告的數據超出預期限制時傳送通知。 排程警示會執行其基礎查詢,並檢查警示準則。 這與基礎查詢上可能存在的任何排程無關。

重要

  • 使用 parameters 查詢的警示會在 SQL 編輯器中使用針對每個參數指定的預設值。

檢視及組織警示

使用下列其中一個選項來存取警示:

  • 點擊側邊欄中的 工作區圖示工作區,以查看預設儲存在 歡迎頁 資料夾中的警示 where。 用戶可以將警示組織成工作區瀏覽器中的資料夾,以及其他 Databricks 物件。
  • 按兩下提要欄位中的 [提醒圖示警示] 以檢視警示清單頁面。

根據預設,物件會以反向時間順序排序。 您可以按下 column 標題來重新排序 list。 按兩下畫面頂端附近的 [ 所有警示] 索引標籤,即可檢視工作區中的所有警示。 按一下 [我的警示] 索引標籤,即可檢視您是擁有者的 where 警示。

  • 名稱 會顯示每個警示的字串名稱。
  • 狀態 會顯示警示狀態 TRIGGERED為、 OKUNKNOWN
  • 上次更新 會顯示上次更新的時間或日期。
  • 建立時間 會顯示警示建立的日期和時間。
    • TRIGGERED 表示,在最近的執行中,目標查詢中的 [值] column 符合您設定的 [條件] 和 [閾值]。 如果您的警示會檢查「貓」是否超過1500,只要「貓」超過1500,就會觸發警示。
    • OK 表示,在最近的查詢執行中,Value column 不符合您設定的條件和臨界值。 這並不表示先前未觸發警示。 如果您的「貓」值現在是 1470,您的警示會顯示為 OK
    • UNKNOWN 表示 Databricks SQL 沒有足夠的數據來評估警示準則。 建立警示之後,您將會立即看到此狀態,直到查詢執行為止。 如果查詢結果中沒有數據,或最近的查詢結果未包含您所設定 值 Column,您也會看到此狀態。

建立警示

請遵循下列步驟,在單一查詢 column 上建立警示。

  1. 執行下列其中一項動作:

    • 點選側邊欄中的 [新增] 圖示[新增],然後 select[警示]
    • 按兩下提醒圖示提要欄位中的 [警示],然後按兩下 [+ 新增警示] 按鈕。
    • 按兩下工作區圖示提要欄位中的 [工作區],然後按兩下 [+ 建立警示]。
  2. 在 [ 查詢] 欄位中,搜尋目標查詢。

    目標查詢

    若要對多個 columns發出警示,您必須修改查詢。 請參閱 警示匯總

  3. 在 [ 觸發條件] 欄位中,設定警示。

    • Value column 下拉式清單用來控制和評估查詢結果中的哪個欄位。 警示條件可以在查詢結果中column的第一個值上set,或者您可以選擇set單一column的所有列數據進行匯總,如SUM或AVERAGE。

      警示彙總

    • [ 運算子 ] 下拉式清單會控制要套用的邏輯作業。

    • 您指定的條件會用來比較 閾值 的文字輸入與數值 column。

    觸發條件

  4. 按兩下 [預覽警示 ] 預覽警示,並測試警示是否會以目前數據觸發。

  5. 在 [觸發警示時,傳送通知 字段,select 觸發警示時傳送通知數目:

    • Just once:當警示狀態TRIGGERED傳送通知。
    • 每次評估警示時:每當警示狀態 TRIGGERED 為時傳送通知,而不論其先前評估的狀態為何。
    • 最多每一個:每當警示狀態為 TRIGGERED 特定間隔時傳送通知。 此選項可讓您避免經常觸發之警示的通知垃圾郵件。

    無論您選擇的通知設定為何,每當狀態從 OK 到 或從 TRIGGERED 傳至 TRIGGEREDOK時,您都會收到通知。 如果狀態從一個執行到 TRIGGERED 下一個執行,排程設定會影響您收到的通知數目。 如需詳細資訊,請參閱 通知頻率

  6. 在 [ 範本 ] 下拉式清單中,選擇範本:

    • 使用預設範本:警示通知是訊息,其中包含 [警示設定] 畫面和 [查詢] 畫面的連結。
    • 使用自定義範本:警示通知包含警示的更具體資訊。
      1. 方塊會顯示,其中包含主旨和本文的輸入欄位。 任何靜態內容都是有效的,而且您可以納入內建範本變數:

        • 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}}

      2. 您可以使用 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>
      3. 按兩下 [ 預覽] 切換按鈕,預覽轉譯的結果。

        重要

        預覽適用於驗證範本變數是否正確轉譯。 這不是最終通知內容的準確表示法,因為每個通知目的地可以以不同的方式顯示通知。

      4. 按兩下 [ 儲存變更] 按鈕。

  7. 按兩下 [ 建立警示]。

  8. 按一下 [加入排程]

    • 使用下拉式選擇器來指定頻率、期間、開始時間和時區。 或者,selectShow cron 語法 複選框,以在 Quartz Cron 語法中編輯排程。
    • 選擇 [更多選項] 以顯示可選設定。 您也可以選擇:
      • 排程的名稱。
      • 用來為查詢提供支援的 SQL 倉儲。 根據預設,用於特別查詢執行的 SQL 倉儲也可用於已排程的工作。 使用此選擇性設定可 select 不同的倉儲來執行排程查詢。
  9. 按兩下 [新增排程] 對話框中的 [目的地] 索引標籤。

    [設定] 對話框中的 [目的地] 索引標籤

    • 使用下拉式清單來 select 可用的 通知目的地。 或者,開始輸入使用者名稱以新增個人。

    重要

    如果您略過此步驟 ,則不會 在觸發警示時收到通知。

  10. 按一下 [建立]。 您儲存的警示和通知詳細數據會出現在畫面上。

    已儲存的警示

  11. 共用排程。

    • 在列出的時間表右側,選擇 kebab 功能表 kebab 功能表,select編輯排程權限
    • 從對話方塊的下拉式功能表中選擇使用者或群組。
    • 選擇下列排程權限:
      • 沒有許可權:未授與任何許可權。 沒有許可權的使用者看不到排程存在,即使他們是訂閱者或包含在列出的通知目的地中也一樣。
      • CAN VIEW:授與檢視排程執行結果的許可權。
      • CAN MANAGE RUN:授與檢視排程執行結果的許可權。
      • CAN MANAGE:授與檢視、修改和刪除排程的許可權。 需要此許可權才能變更執行間隔、update 訂閱者 list,以及暫停或取消排程。
      • IS OWNER:授與 CAN MANAGE 的所有許可權。 此外,排程擁有者的 credentials 將被用來執行儀表板查詢。 只有工作區管理員可以變更擁有者。

    重要

    警示和排程的許可權是分開的。 Grant 通知目的地中使用者和群組的存取權 list,以便檢視排程的執行結果。

  12. 共用警示。

    • 按兩下 共用按鈕 頁面右上方附近。
    • 新增應該有權存取警示的使用者或群組。
    • 選擇適當的許可權等級,然後按兩下 [ 新增]。

重要

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_ROWSQUERY_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

  1. 在提要欄位中,按兩下 [ 警示]。

  2. 按兩下警示。

  3. 按下左上方的 共用按鈕 按鈕來開啟 [共用] 對話方塊。

    管理警示許可權

  4. 搜尋和 select 群組和使用者,並指派權限等級。

  5. 按一下新增

轉移警示的擁有權

當您儲存警示時,您會成為警示的擁有者。 如果警示的擁有者已從工作區中移除,警示就不會再擁有擁有者。 工作區系統管理員使用者可以將警示的擁有權轉移給不同的使用者。 服務主體和群組無法指派警示的擁有權。 您也可以使用 權限 API 來轉移所有權。

  1. 身為工作區管理員,登入您的 Azure Databricks 工作區。

  2. 在提要欄位中,按兩下 [ 警示]。

  3. 按兩下警示。

  4. 按下右上方的 [共用] 按鈕,以開啟 [共用] 對話方塊。

  5. 按下右上方的 [齒輪] 圖示,然後按下 [指派新擁有者]

    指派新的擁有者

  6. Select 指派擁有權給使用者。

  7. 按一下 [確認]