Important
이 시스템 테이블은 공개 프리뷰 상태에있습니다.
이 페이지에는 각 테이블의 스키마 개요를 포함한 경고 시스템 테이블에 대한 정보가 포함되어 있습니다. 이 테이블을 사용해 워크스페이스 알림 과 평가 이력을 SQL로 직접 조회하여 알림 정의를 감사하고, 평가 추세를 분석하며, 대규모로 알림 워크로드를 모니터링할 수 있습니다.
스키마는 system.alert 두 개의 테이블을 포함합니다:
-
system.alert.alerts: 모든 알림의 구성, 정의, 일정, 평가 임계값, 구독자, 라이프사이클 타임스탬프를 포함합니다. -
system.alert.alert_evaluation_history: 각 경고 평가당 한 행씩 작성하여 평가된 상태, 결과 값, 알림 전달 상태, 오류 세부 정보를 캡처합니다.
Requirements
기본적으로 계정 관리자와 메타스토어 관리자 역할을 모두 가진 사용자만 경고 시스템 테이블에 접근할 수 있습니다. 테이블의 데이터를 사용자 또는 그룹과 공유하기 위해 Databricks는 각 사용자 또는 그룹별로 동적 뷰를 생성할 것을 권장합니다. 동적 뷰 만들기를 참조하세요.
알림 구성 테이블 스키마
system.alert.alerts 이 테이블은 천천히 변하는 차원 테이블입니다. 각 행은 특정 시점의 알림 구성을 캡처하므로, 하나의 알림이 설정이 변경될 때 여러 행을 갖게 됩니다.
테이블 경로: 이 시스템 테이블은 system.alert.alerts에 위치해 있습니다.
이 표에서는 system.alert.alerts 다음 스키마를 사용합니다.
| 열 이름 | 데이터 형식 | 설명 | 예시 |
|---|---|---|---|
account_id |
string | 계정의 ID입니다. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | 알림이 정의된 작업 공간의 ID입니다. | 1234567890123456 |
alert_id |
string | 경고의 ID입니다. | 2762099691916865 |
display_name |
string | 경고의 표시 이름입니다. | Test Alert |
owned_by |
string | 알림 소유자의 사용자 이름입니다. 사용자가 삭제되었을 때 설정 Unavailable 하세요. |
example@databricks.com |
compute |
struct | 경고에 연결된 컴퓨팅 자원을 나타내는 구조체입니다. 값은 typeWAREHOUSE 또는 SERVERLESS_COMPUTE입니다. |
{type: WAREHOUSE,cluster_id: NULL,warehouse_id: 802f6d5283291c0d} |
run_as |
string | 알림을 실행하는 데 사용되는 자격 증명을 가진 사용자 또는 서비스 주체의 ID입니다. | 2967555311742259 |
schedule |
struct | 알림의 일정을 나타내는 구조체로, 일시정지 상태, 크론 일정, 시간대를 포함합니다. | {pause_status: UNPAUSED,quartz_cron_schedule: 0 0 10 * * ?,timezone_id: UTC} |
evaluation_source |
struct | 쿼리 결과의 소스 열을 나타내는 구조체로, 알림을 평가하는 데 사용되며, 그에 적용된 집계 정보도 포함됩니다. | {aggregation: SUM,display: x,name: x} |
evaluation_comparison_operator |
string | 연산자는 평가 시 소스 값을 임계값과 비교하는 데 사용되었습니다. 예: GREATER_THAN, LESS_THAN 및 EQUAL. |
LESS_THAN |
evaluation_threshold |
struct | 소스 값이 비교되는 임계값을 나타내는 구조체입니다. 임계값은 정적 값이거나 다른 열입니다. | {value: { double_value: 1.25}} |
evaluation_empty_result_state |
string | 쿼리가 빈 결과를 반환할 때 알림이 보고하는 상태 가능한 값은 OK, TRIGGERED 및 ERROR입니다. |
OK |
notify_on_ok |
boolean | 알림이 주에 OK 다시 돌아오면 가입자에게 통지 여부. |
true |
retrigger_seconds |
int | 경고가 다시 작동하기 전에 기다리는 초수입니다. 만약 , 이 신호 0가 다시 발생하면 경고가 다시 작동하지 않습니다. |
0 |
subscriptions |
배열 | 알림을 받는 구독자 배열입니다. 각 가입자는 사용자 이메일 또는 알림 목적지 ID로 식별됩니다. | [{ user_email: example@databricks.com, destination_id: null}] |
change_time |
timestamp | 구성이 마지막으로 변경된 시간입니다. 시간대 정보는 UTC를 나타내는 값 +00:00 끝에 기록됩니다. |
2023-01-01T01:01:01.123+00:00 |
create_time |
timestamp | 알림이 생성된 시간. 시간대 정보는 UTC를 나타내는 값 +00:00 끝에 기록됩니다. |
2023-01-01T01:01:01.123+00:00 |
delete_time |
timestamp | 알림이 영구적으로 삭제된 시간. 휴지통으로 옮겨진 알림은 기록되지 않습니다. 시간대 정보는 UTC를 나타내는 값 +00:00 끝에 기록됩니다. |
2023-01-01T01:01:01.123+00:00 |
경고 평가 이력 테이블 스키마
이 표는 system.alert.alert_evaluation_history 각 경고 평가에 대해 한 행을 기록하여 평가된 상태와 관련 통계를 포착합니다.
테이블 경로: 이 시스템 테이블은 system.alert.alert_evaluation_history에 위치해 있습니다.
이 표에서는 system.alert.alert_evaluation_history 다음 스키마를 사용합니다.
| 열 이름 | 데이터 형식 | 설명 | 예시 |
|---|---|---|---|
account_id |
string | 계정의 ID입니다. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | 알림이 정의된 작업 공간의 ID입니다. | 1234567890123456 |
alert_id |
string | 평가된 경보의 ID입니다. 에 조인됩니다 alert_idsystem.alert.alerts. |
2762099691916865 |
job_id |
string | 알림을 실행한 작업의 ID였다. 에 조인됩니다 job_idsystem.lakeflow.jobs.
NULL 알림이 작업의 일부가 아닌 자체 일정에 따라 실행될 때입니다. 쿼리할 때 system.lakeflow.jobsa LEFT JOIN 를 사용하세요. |
906851285941474 |
task_key |
string | 작업 내 작업에 대한 참조 키입니다. 에 조인됩니다 task_keysystem.lakeflow.job_tasks.
NULL 알림이 작업의 일부가 아닌 자체 일정에 따라 실행될 때입니다. 쿼리할 때 system.lakeflow.job_tasksa LEFT JOIN 를 사용하세요. |
evaluate_alert |
alert_run_id |
string | 경보 평가 실행의 ID. | 4104302562320643 |
evaluated_state |
string | 경보의 평가된 상태. 가능한 값은 OK, TRIGGERED 및 ERROR입니다. |
TRIGGERED |
evaluated_source_result |
struct | 평가에서 생성된 소스 값을 나타내는 구조체입니다. | {double_value: 1.25} |
evaluated_threshold_result |
struct | 평가에서 얻은 임계값이나 알림 구성에서 설정된 정적 값을 나타내는 구조체입니다. | {double_value: 1.25} |
error_code |
string | 오류 코드는 평가가 오류로 실패했을 때 표시됩니다. | INTERNAL_ERROR |
error_message |
string | 평가가 오류로 실패했을 때 사용자가 볼 수 있는 오류 메시지. | Query execution failed |
notified_subscriptions |
배열 | 성공적으로 통지된 가입자 배열입니다. 각 가입자는 사용자 이메일 또는 알림 목적지 ID로 식별됩니다. | [{ user_email: example@databricks.com, destination_id: null}] |
failed_subscriptions |
배열 | 알림이 전송되지 않은 가입자 배열. 각 가입자는 사용자 이메일 또는 알림 목적지 ID로 식별됩니다. | [{ user_email: example@databricks.com, destination_id: null}] |
start_time |
timestamp | 평가가 시작된 시간. 시간대 정보는 UTC를 나타내는 값 +00:00 끝에 기록됩니다. |
2023-01-01T01:01:01.123+00:00 |
end_time |
timestamp | 평가가 끝난 시간. 시간대 정보는 UTC를 나타내는 값 +00:00 끝에 기록됩니다. |
2023-01-01T01:01:01.123+00:00 |
샘플 쿼리
다음 샘플 쿼리는 경고 구성 및 평가 이력을 분석하는 일반적인 방법을 보여줍니다. 각 쿼리는 알림과 작업 공간 ID에 명명된 매개변수 마커 를 사용하므로, 쿼리를 실행할 때 값을 입력하도록 안내받습니다.
알림을 위한 최신 평가를 확인하세요
이 쿼리는 특정 알림의 최신 구성과 최신 평가 결과를 반환합니다.
SELECT
c.alert_id,
c.display_name,
c.compute,
c.schedule.quartz_cron_schedule AS schedule,
c.evaluation_comparison_operator AS operator,
c.evaluation_threshold.value.double_value AS threshold,
c.change_time AS config_last_updated,
e.evaluated_state,
e.start_time AS evaluation_time,
e.end_time,
TIMESTAMPDIFF(SECOND, e.start_time, e.end_time) AS eval_duration_seconds
FROM (
SELECT *
FROM system.alert.alerts
WHERE alert_id = :your_alert_id
AND delete_time IS NULL
ORDER BY change_time DESC
LIMIT 1
) c
LEFT JOIN (
SELECT *
FROM system.alert.alert_evaluation_history
WHERE alert_id = :your_alert_id
ORDER BY start_time DESC
LIMIT 1
) e ON TRUE;
지난 7일간 가장 많이 발생한 알림을 찾아보세요
이 쿼리는 지난 7일 동안 작업 공간에서 각 알림이 몇 번 트리거되었는지 세는 것입니다.
SELECT
alert_id,
COUNT(*) AS trigger_count_7d
FROM system.alert.alert_evaluation_history
WHERE workspace_id = :your_workspace_id
AND start_time >= CURRENT_DATE() - INTERVAL 7 DAY
AND evaluated_state = 'TRIGGERED'
GROUP BY alert_id
ORDER BY trigger_count_7d DESC;
경보 상태가 시간에 따라 어떻게 변했는지 추적하세요
이 쿼리는 지난 30일간 특정 경고에 대해 평가된 각 주의 일일 수를 요약합니다. 이를 이용해 알림 신뢰성을 모니터링하는 대시보드를 구축하세요.
SELECT
DATE_TRUNC('day', start_time) AS eval_day,
COUNT_IF(evaluated_state = 'OK') AS ok_count,
COUNT_IF(evaluated_state = 'TRIGGERED') AS triggered_count,
COUNT_IF(evaluated_state = 'ERROR') AS error_count
FROM system.alert.alert_evaluation_history
WHERE alert_id = :your_alert_id
AND start_time >= CURRENT_DATE() - INTERVAL 30 DAY
GROUP BY 1
ORDER BY eval_day ASC;
작업 공간 내 활성 알림을 나열하세요
이 쿼리는 삭제되지 않았고 작업 공간에서 일시정지되지 않은 각 알림의 최신 구성을 반환합니다.
WITH latest AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY alert_id ORDER BY change_time DESC) AS rn
FROM system.alert.alerts
WHERE workspace_id = :your_workspace_id
AND delete_time IS NULL
)
SELECT
alert_id,
display_name,
compute,
schedule.quartz_cron_schedule AS cron_schedule,
schedule.pause_status
FROM latest
WHERE rn = 1
AND schedule.pause_status != 'PAUSED';