共用方式為


什麼是 Databricks SQL 警示?

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

重要

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

檢視及組織警示

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

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

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

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

建立警示

請遵循下列步驟,在查詢的單一數據行上建立警示。

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

    • 按兩下提要欄位中的 [新增圖示新增],然後選取 [警示]。
    • 按兩下提醒圖示提要欄位中的 [警示],然後按兩下 [+ 新增警示] 按鈕。
    • 按兩下工作區圖示提要欄位中的 [工作區],然後按兩下 [+ 建立警示]。
    • Kebab 功能表單擊已儲存查詢右上角的 Kebab 功能表,然後按兩下 [+ 建立警示]。
  2. 在 [ 查詢] 欄位中,搜尋目標查詢。

    目標查詢

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

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

    • [值] 資料 下拉式清單會控制要評估查詢結果的欄位。 警示條件可以在查詢結果中數據行的第一個值上設定,或者您可以選擇設定單一數據行所有數據列的匯總,例如 SUM 或 AVERAGE。

      警示彙總

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

    • [ 臨界值] 文字輸入會使用您指定的 [條件] 來比較 [值 ] 數據行。

    觸發條件

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

  5. 在 [ 觸發警示時,傳送通知 ] 字段中,選取觸發警示時所傳送的通知數目:

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

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

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

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

        • ALERT_STATUS:評估的警示狀態(字串)。
        • ALERT_CONDITION:警示條件運算符(字串)。
        • ALERT_THRESHOLD:警示閾值(字串或數位)。
        • ALERT_COLUMN:警示資料行名稱(字串)。
        • ALERT_NAME:警示名稱(字串)。
        • ALERT_URL:警示頁面 URL (字串)。
        • QUERY_NAME:相關聯的查詢名稱(字串)。
        • QUERY_URL:相關聯的查詢頁面 URL(字串)。
        • QUERY_RESULT_TABLE:查詢結果 HTML 資料表(字串)。
        • QUERY_RESULT_VALUE:查詢結果值(字串或數位)。
        • QUERY_RESULT_ROWS:查詢結果數據列(值陣列)。
        • QUERY_RESULT_COLS:查詢結果數據行(字串陣列)。

        例如,例如,範例主旨可能是: Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}

      2. 您可以使用 HTML 來格式化自訂範本中的訊息。 樣本中允許下列標籤和屬性:

        • 標記:<a><abbr>、、 <b><acronym><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. 按一下 [加入排程]

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

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

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

    重要

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

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

    已儲存的警示

  11. 共用排程。

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

    重要

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

  12. 共用警示。

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

重要

CAN MANAGE 授與檢視、修改和刪除排程的許可權。 需要此許可權才能變更執行間隔、更新通知目的地清單,以及暫停或取消排程。

如需警示許可權等級的詳細資訊,請參閱 警示 ACL

警示匯總

警示匯總的運作方式是修改附加至警示之 Databricks SQL 查詢的原始 SQL。 警示會在通用數據表表示式 (CTE) 中包裝原始查詢文字,並在其上執行包裝匯總查詢,以匯總查詢結果。

例如, SUM 附加至含有文字 SELECT 1 AS column_name 之查詢的警示匯總表示每當重新整理警示時,執行的修改 SQL 會是: WITH q AS (SELECT 1 AS column_name) SELECT SUM(column_name) FROM q

這表示每當警示上有匯總時,就無法在警示自定義主體中顯示原始查詢結果(如 和 QUERY_RESULT_COLSQUERY_RESULT_ROWS參數)。 相反地,這些變數只會顯示最終的匯總后查詢結果。

注意

API 不支援所有與匯總相關的觸發條件。

對多個資料行發出警示

若要根據查詢的多個數據行設定警示,您的查詢可以實作警示邏輯,並傳回要觸發之警示的布爾值。 例如:

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

當 時drafts_count > 10000 and archived_count > 5000,此查詢會傳1回 。 然後,您可以設定警示,以在值為 1時觸發。

通知頻率

每當 Databricks SQL 偵測到警示狀態已從 OK 變更為 TRIGGERED 或反之亦然時,就會將通知傳送至您選擇的通知目的地。 假設此範例會在排定每天執行一次的查詢上設定警示。 警示的每日狀態會出現在下表中。 在星期一之前,警示狀態為 OK

Day 警示狀態
星期一 確定
Tuesday 確定
星期三 引發
Thursday 引發
星期五 引發
星期六 引發
星期日 確定

如果通知頻率設定為 Just Once,Databricks SQL 會在星期三傳送通知,當狀態從 OK TRIGGERED 變更為 ,並在周日切換回時再次變更。 除非您特別設定警示,否則不會在星期四、星期五或星期六傳送警示,因為警示狀態不會在這些日執行之間變更。

設定警示許可權並轉移警示擁有權

您至少必須擁有查詢的 CAN MANAGE 權限,才能共用查詢。 如需警示許可權等級,請參閱 警示 ACL

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

  2. 按兩下警示。

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

    管理警示許可權

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

  5. 按一下新增

轉移警示的擁有權

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

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

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

  3. 按兩下警示。

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

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

    指派新的擁有者

  6. 選取您想要指派所有權的使用者或群組。

  7. 按一下 [確認]