Databricks SQL 경고란?
Databricks SQL 경고는 정기적으로 쿼리를 실행하고, 정의된 조건을 평가하고, 조건이 충족되면 알림을 보냅니다. 보고된 데이터가 예상 한도를 벗어나면 비즈니스를 모니터링하고 알림을 보내도록 경고를 설정할 수 있습니다. 경고 예약은 기본 쿼리를 실행하고 경고 조건을 확인합니다. 이는 기본 쿼리에 있을 수 있는 일정과는 독립적입니다.
Important
- 매개 변수를 사용하여 쿼리를 활용하는 경고는 각 매개 변수에 대해 SQL 편집기에서 지정된 기본값을 사용합니다.
경고 보기 및 구성
다음 옵션 중 하나를 사용하여 경고에 액세스합니다.
- 사이드바에서 작업 영역을 클릭하여 기본적으로 저장되는 홈 폴더에서 경고를 봅니다. 사용자는 다른 Databricks 개체와 함께 작업 영역 브라우저의 폴더로 경고를 구성할 수 있습니다.
- 사이드바에서 경고를 클릭하여 경고 목록 페이지를 봅니다.
기본적으로 개체는 시간의 역순으로 정렬됩니다. 열 머리글을 클릭하여 목록의 순서를 변경할 수 있습니다. 화면 위쪽에 있는 모든 경고 탭을 클릭하여 작업 영역의 모든 경고를 봅니다. 내 경고 탭을 클릭하여 사용자가 소유자인 경고를 봅니다.
- 이름은 각 경고의 문자열 이름을 표시합니다.
- 상태는 경고 상태를
TRIGGERED
,OK
또는UNKNOWN
으로 표시합니다. - 마지막 업데이트는 마지막 업데이트 시간 또는 날짜를 표시합니다.
- 만든 시간은 경고가 생성된 날짜와 시간을 표시합니다.
TRIGGERED
는 가장 최근 실행 시 대상 쿼리의 값 열이 구성한 조건 및 임계값을 충족했음을 의미합니다. "고양이"가 1500마리를 초과하는지 확인하는 경고인 경우 "고양이"가 1500마리를 초과하는 한 경고가 트리거됩니다.OK
는 가장 최근의 쿼리 실행에서 값 열이 구성한 조건 및 임계값을 충족하지 못했음을 의미합니다. 경고가 이전에 트리거되지 않았다는 의미는 아닙니다. "고양이" 값이 현재 1470인 경우 경고가OK
로 표시됩니다.UNKNOWN
는 Databricks SQL에 경고 조건을 평가하기에 충분한 데이터가 없음을 의미합니다. 경고를 만든 직후부터 쿼리가 실행될 때까지 이 상태가 표시됩니다. 쿼리 결과에 데이터가 없거나 구성한 값 열이 가장 최근 쿼리 결과에 없는 경우에도 이 상태가 표시됩니다.
경고 만들기
다음 단계에 따라 쿼리의 단일 열에 경고를 만듭니다.
다음 중 하나를 수행합니다.
- 사이드바에서 새로 만들기를 클릭하고 경고를 선택합니다.
- 사이드바에서 경고를 클릭하고 + 새 경고 단추를 클릭합니다.
- 사이드바에서 작업 영역을 클릭하고 + 경고 만들기를 클릭합니다.
- 저장된 쿼리의 오른쪽 위 모서리에 있는 케밥 메뉴를 클릭하고 + 경고 만들기를 클릭합니다.
쿼리 필드에서 대상 쿼리를 검색합니다.
여러 열에 대해 경고하려면 쿼리를 수정해야 합니다. 경고 집계를 참조 하세요.
트리거 조건 필드에서 경고를 구성합니다.
값 열 드롭다운은 쿼리 결과의 어떤 필드가 평가될지 제어합니다. 쿼리 결과에서 열의 첫 번째 값에 경고 조건을 설정하거나 SUM 또는 AVERAGE와 같은 단일 열의 모든 행에 대해 집계를 설정하도록 선택할 수 있습니다.
연산자 드롭다운은 적용할 논리 작업을 제어합니다.
임계값 텍스트 입력은 지정한 조건을 사용하여 값 열과 비교됩니다.
경고 미리 보기를 클릭하여 경고를 미리 확인하고 경고가 현재 데이터로 트리거되는지 여부를 테스트합니다.
경고가 트리거되는 경우 알림 필드를 보내고 경고가 트리거될 때 전송되는 알림 수를 선택합니다.
- 한 번만: 경고 상태가 변경
OK
TRIGGERED
되면 알림을 보냅니다. - 알림이 평가될 때마다: 이전 평가에서의 상태와 상관없이 알림 상태가
TRIGGERED
일 때마다 알림을 보냅니다. - 최대 모든 경우: 경고 상태가
TRIGGERED
특정 간격일 때마다 알림을 보냅니다. 이 옵션을 사용하면 자주 트리거되는 경고에 대한 알림 스팸을 방지할 수 있습니다.
선택한 알림 설정에 관계없이 상태가
OK
에서TRIGGERED
또는TRIGGERED
에서OK
로 바뀔 때마다 알림을 받습니다. 일정 설정은 한 실행에서 다음 실행까지 상태가TRIGGERED
인 경우 수신할 알림 수에 영향을 줍니다. 자세한 내용은 알림 빈도를 참조하세요.- 한 번만: 경고 상태가 변경
템플릿 드롭다운에서 템플릿을 선택합니다.
- 기본 템플릿 사용: 경고 알림은 경고 구성 화면과 쿼리 화면에 대한 링크가 있는 메시지입니다.
- 사용자 지정 템플릿 사용: 경고 알림에는 경고에 대한 보다 구체적인 정보가 포함됩니다.
제목 및 본문에 대한 입력 필드로 구성된 상자가 표시됩니다. 모든 정적 콘텐츠가 유효하며 기본 제공 템플릿 변수를 통합할 수 있습니다.
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}}
가 될 수 있습니다.HTML을 사용하여 사용자 지정 템플릿에서 메시지의 서식을 지정할 수 있습니다. 템플릿에서 허용되는 태그 및 특성은 다음과 같습니다.
- Tags:
<a>
, ,<abbr>
,<acronym>
,<b>
,<blockquote>
,<br>
<body>
,<code>
,<div>
,<em>
,<h1>
,<h2>
,<h3>
,<h4>
<h5
>,<h6
>,<hr>
<head
>,<i>
<ol>
<p>
<span>
<html>
<strong>
<li>
,<table>
, ,<tbody>
,<td>
<th>
, ,<tr>
<ul>
- 특성: href(
<a>
의 경우), title(<a>
,<abbr>
,<acronym>
의 경우)
- Tags:
미리 보기 토글 단추를 클릭하여 렌더링된 결과를 미리 봅니다.
Important
미리 보기는 템플릿 변수가 올바르게 렌더링되는지 확인하는 데 유용합니다. 각 알림 대상이 알림을 다르게 표시할 수 있으므로 최종 알림 콘텐츠의 정확한 표현은 아닙니다.
변경 내용 저장 단추를 클릭합니다.
경고 만들기를 클릭합니다.
일정 추가를 클릭합니다.
- 드롭다운 선택기를 사용하여 빈도, 기간, 시작 시간 및 표준 시간대를 지정합니다. 필요에 따라 cron 구문 표시 확인란을 선택하여 Quartz Cron 구문에서 일정을 편집합니다.
- 선택적 설정을 표시하려면 추가 옵션을 선택합니다. 다음을 선택할 수도 있습니다.
- 일정의 이름입니다.
- 쿼리를 구동하는 SQL 웨어하우스입니다. 기본적으로 임시 쿼리 실행에 사용되는 SQL 웨어하우스는 예약된 작업에도 사용됩니다. 이 선택적 설정을 사용하여 예약된 쿼리를 실행할 다른 웨어하우스를 선택합니다.
일정 추가 대화 상자에서 대상 탭을 클릭합니다.
- 드롭다운을 사용하여 사용 가능한 알림 대상을 선택합니다. 또는 사용자 이름을 입력하여 개인을 추가합니다.
Important
이 단계를 건너뛰면 경고가 트리거될 때 알림이 표시되지 않습니다 .
만들기를 클릭합니다. 저장된 경고 및 알림 세부 정보가 화면에 표시됩니다.
일정을 공유합니다.
- 나열된 일정의 오른쪽에서 케밥 메뉴를 선택하고 일정 권한 편집을 선택합니다.
- 대화 상자의 드롭다운 메뉴에서 사용자 또는 그룹을 선택합니다.
- 다음 일정 권한 중에서 선택합니다.
- 사용 권한 없음: 권한이 부여되지 않았습니다. 권한이 없는 사용자는 구독자이거나 나열된 알림 대상에 포함된 경우에도 일정이 존재하는 것을 볼 수 없습니다.
- CAN VIEW: 예약된 실행 결과를 볼 수 있는 권한을 부여합니다.
- CAN MANAGE RUN: 예약된 실행 결과를 볼 수 있는 권한을 부여합니다.
- CAN MANAGE: 일정을 보고 수정하고 삭제할 수 있는 권한을 부여합니다. 실행 간격을 변경하고, 구독자 목록을 업데이트하고, 일정을 일시 중지하거나 일시 중지 해제하려면 이 권한이 필요합니다.
- IS OWNER: CAN MANAGE의 모든 권한을 부여합니다. 또한 일정 소유자의 자격 증명을 사용하여 대시보드 쿼리를 실행합니다. 작업 영역 관리자만 소유자를 변경할 수 있습니다.
Important
경고 및 일정에 대한 사용 권한은 별개입니다. 예약된 실행 결과를 볼 수 있도록 알림 대상 목록의 사용자 및 그룹에 대한 액세스 권한을 부여합니다.
경고를 공유합니다.
- 페이지의 오른쪽 위 근처를 클릭합니다 .
- 경고에 액세스할 수 있어야 하는 사용자 또는 그룹을 추가합니다.
- 적절한 사용 권한 수준을 선택한 다음 추가를 클릭합니다.
Important
CAN MANAGE는 일정을 보고 수정하고 삭제할 수 있는 권한을 부여합니다. 이 권한은 실행 간격을 변경하고, 알림 대상 목록을 업데이트하고, 일정을 일시 중지하거나 일시 중지 해제하기 위해 필요합니다.
경고 권한 수준에 대한 자세한 내용은 경고 ACL을 참조 하세요.
경고 집계
경고에 대한 집계는 경고에 연결된 Databricks SQL 쿼리의 원래 SQL을 수정하여 작동합니다. 경고는 원래 쿼리 텍스트를 CTE(공용 테이블 식)로 래핑하고 래핑 집계 쿼리를 수행하여 쿼리 결과를 집계합니다.
예를 들어 텍스트 SELECT 1 AS column_name
가 SUM
있는 쿼리에 연결된 경고에 대한 집계는 경고가 새로 고쳐질 WITH q AS (SELECT 1 AS column_name) SELECT SUM(column_name) FROM q
때마다 실행되는 수정된 SQL이 다음과 같은 것을 의미합니다.
즉, 경고에 집계가 있을 때마다 원래 쿼리 결과(미리 집계됨)를 경고 사용자 지정 본문에 표시할 수 없습니다(예: QUERY_RESULT_ROWS
QUERY_RESULT_COLS
매개 변수 포함). 대신 이러한 변수는 집계 후 최종 쿼리 결과만 표시합니다.
참고 항목
집계와 관련된 모든 트리거 조건은 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
.
요일 | 경고 상태 |
---|---|
월요일 | 확인 |
화요일 | 확인 |
수요일 | 트리거 |
목요일 | 트리거 |
금요일 | 트리거 |
토요일 | 트리거 |
일요일 | 확인 |
알림 빈도가 설정된 Just Once
경우 Databricks SQL은 다시 전환할 때 일요일에 상태가 변경된 OK
TRIGGERED
수요일에 알림을 보냅니다. 해당 날짜의 실행 간에 경고 상태가 변경되지 않았기 때문에 특별히 구성하지 않는 한 목요일, 금요일 또는 토요일에는 경고를 보내지 않습니다.
경고 권한 구성 및 경고 소유권 이전
쿼리를 공유하려면 쿼리에 대한 CAN MANAGE 권한이 있어야 합니다. 경고 권한 수준은 경고 ACL을 참조 하세요.
사이드바에서 경고를 클릭합니다.
경고를 클릭합니다.
오른쪽 위에 있는 단추를 클릭하여 공유 대화 상자를 엽니다.
그룹 및 사용자를 검색하여 선택하고 사용 권한 수준을 할당합니다.
추가를 클릭합니다.
경고의 소유권 이전
경고를 저장하면 경고의 소유자가 됩니다. 경고의 소유자가 작업 영역에서 제거되면 경고에 더 이상 소유자가 없습니다. 작업 영역 관리자 사용자는 경고의 소유권을 다른 사용자에게 이전할 수 있습니다. 서비스 주체 및 그룹은 경고의 소유권을 할당할 수 없습니다. 권한 API를 사용하여 소유권을 이전할 수도 있습니다.
작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.
사이드바에서 경고를 클릭합니다.
경고를 클릭합니다.
오른쪽 위에 있는 공유 단추를 클릭하여 공유 대화 상자를 엽니다.
오른쪽 위에 있는 기어 아이콘을 클릭하고 새 소유자 할당을 클릭합니다.
소유권을 할당할 사용자를 선택합니다.
확인을 클릭합니다.