다음을 통해 공유


Databricks SQL에서 구체화된 뷰 모니터링

이 문서에서는 Databricks SQL의 구체화된 뷰에 대한 새로 고침 데이터를 모니터링하고 쿼리하는 방법을 설명합니다.

구체화된 단일 보기의 세부 정보 보기

카탈로그 탐색기를 사용하거나 프로그래밍 방식으로 DESCRIBE EXTENDED 작업을 통해 단일 구체화 뷰의 세부 정보를 볼 수 있습니다. 구체화된 뷰의 새로 고침 기록에 대한 자세한 내용은 이벤트 로그를 쿼리할 수도 있습니다.

카탈로그 탐색기에서 세부 정보 보기

카탈로그 탐색기에서 확인하여 구체화된 뷰에 대한 정보에 액세스할 수 있습니다. 카탈로그 탐색기에서 SQL에서 만든 마지막 새로 고침 상태 및 새로 고침 일정을 볼 수 있습니다. SQL에서 만든 일정에 대한 자세한 내용은 다음을 참조하세요 CREATE MATERIALIZED VIEW.

카탈로그 탐색기는 다음을 포함하여 오른쪽 패널에서 구체화된 각 보기에 대한 세부 정보를 표시합니다.

  1. 현재 새로 고침 상태 및 마지막 실행 시간입니다. 실행 기간, 자세한 오류, 새로 고침 유형 (구체화된 보기가 완전히 또는 증분 새로 고쳐졌는지 여부 및 이유 포함)을 포함하여 업데이트에 대한 자세한 내용을 보려면 새로 고침 세부 정보 참조를 클릭합니다.
  2. 일정을 새로 고칩니다. 구체화된 뷰에 SQL을 통해 일정이 설정된 경우 일정이 표시됩니다. 일정을 업데이트하려면 .를 사용합니다 ALTER MATERIALIZED VIEW.
  3. 태그. 사용자 지정 태그를 추가하려면 태그 추가를 클릭합니다. 태그는 비용을 특성 지정하는 데 자동으로 사용되지 않지만 사용자 지정 태그를 비용에 연결하는 쿼리를 수동으로 만들 수 있습니다. 자세한 내용은 사용자 지정 태그를 사용하여 SQL 웨어하우스에 대한 특성 비용을 참조하세요.

카탈로그 탐색기에서 사용할 수 없는 구체화된 뷰의 속성이 있습니다. 이러한 속성의 경우 또는 프로그래밍 방식으로 정보를 얻으려면 명령을 사용할 DESCRIBE EXTENDED 수 있습니다.

를 사용하여 세부 정보 보기 DESCRIBE EXTENDED

명령을 사용하여 DESCRIBE EXTENDED 구체화된 뷰에 대한 세부 정보를 프로그래밍 방식으로 볼 수 있습니다. 여기에는 카탈로그 탐색기에서 가져오는 것 이상의 세부 정보가 포함됩니다. 다음을 포함합니다.

  • 완료된 최신 새로 고침의 상태입니다.

  • 새로 고침 일정입니다.

  • 구체화된 뷰의 열입니다.

  • 구체화된 뷰의 새로 고침 유형입니다(카탈로그 탐색기에서는 사용할 수 없음).

  • 구체화된 뷰의 데이터 크기(총 바이트)입니다(카탈로그 탐색기에서는 사용할 수 없음).

  • 구체화된 뷰의 스토리지 위치입니다(카탈로그 탐색기에서는 사용할 수 없음).

  • 일부 정보는 사용하도록 설정된 경우에만 결과에 포함됩니다.

    • 클러스터링 열, 활성화된 경우.
    • 삭제 벡터가 활성화되었는지 여부입니다(true 조건에서만 표시됨).
    • true일 때만 표시되는 행 추적 사용 여부입니다.
-- As table:
DESCRIBE TABLE EXTENDED sales;

-- As a single JSON object:
DESCRIBE TABLE EXTENDED sales AS JSON;

프로그래밍 방식으로 이벤트 로그 쿼리

구체화된 뷰의 새로 고침 기록 또는 새로 고침이 발생하는 세부 정보에 대한 세부 정보를 얻으려면 이벤트 로그를 프로그래밍 방식으로 쿼리할 수 있습니다.

파이프라인 소유자는 다른 사용자가 파이프라인에 대한 이벤트 로그를 쿼리할 수 있도록 보기를 만들 수 있습니다. 다음 쿼리는 다른 사용자가 이벤트 로그를 쿼리하는 데 사용할 수 있는 뷰를 만듭니다. 이 쿼리는 TABLE 값 함수를 사용하여 올바른 이벤트 로그 테이블을 쿼리합니다.

CREATE VIEW my_event_log_view AS
  SELECT *
  FROM event_log(TABLE(<catalog_name>.<schema_name>.<mv_name>));

이벤트 로그 뷰를 쿼리하려면 다음과 같은 쿼리를 사용합니다.

SELECT *
  FROM my_event_log_view
  WHERE event_type = "update_progress"
  ORDER BY timestamp desc;

이벤트 로그를 파이프라인 소유자로 직접 쿼리하려면 뷰를 만들 필요가 없습니다. 값 함수를 TABLE 사용하고 다음 샘플 쿼리와 같이 데이터를 직접 쿼리할 수 있습니다.

SELECT *
  FROM event_log(TABLE(<catalog_name>.<schema_name>.<mv_name>))
  WHERE event_type = "update_progress"
  ORDER BY timestamp desc;

이벤트 로그를 사용하는 샘플 쿼리의 전체 목록은 기본 쿼리 예제를 참조하세요.

구체화된 뷰의 실행을 모니터링

작업 및 파이프라인 페이지, 쿼리 기록 페이지를 사용하거나 이벤트 로그를 쿼리하여 프로그래밍 방식으로 작업 영역에서 파이프라인 실행을 모니터링할 수 있습니다.

UI에서 구체화된 뷰 실행 내역 보기

작업 및 파이프라인 페이지를 사용하여 작업 영역에서 다양한 오케스트레이션 작업의 상태를 모니터링하는 경우, 생성된 구체화된 뷰 및 스트리밍 테이블을 모두 추적할 수도 있습니다. Databricks SQL에서 만든 구체화된 각 뷰에는 이를 지원하는 파이프라인이 있습니다. 여러분이 접근할 수 있는 구체화된 뷰와 스트리밍 테이블을 모두 확인하려면 다음을 수행하세요.

  1. 워크플로 아이콘을 클릭합니다. 작업 영역의 왼쪽에 있는 작업 및 파이프라인 단추입니다.
  2. 파이프라인 토글을 클릭하여 보기를 파이프라인으로만 필터링합니다.
  3. 파이프라인 유형 단추를 클릭하고 MV/ST를 선택하여 Databricks SQL에서 만든 파이프라인으로만 필터링합니다.
  4. 액세스 가능한 내 필터를 클릭하여 액세스 권한이 있는 모든 파이프라인을 표시합니다.

최근 실행 상태에 대한 요약 보기를 포함하여 조직 전체에서 생성된 모든 구체화된 뷰 및 스트리밍 테이블을 볼 수 있습니다. 파이프라인의 이름을 클릭하면 파이프라인 모니터링 세부 정보 페이지가 열립니다. 파이프라인 모니터링 세부 정보 페이지에 대한 자세한 내용은 실패한 새로 고침 문제 해결을 참조하세요.

쿼리 기록을 통해 실행 기록 보기

쿼리 기록 탭에 더 익숙한 경우 이 탭을 사용하여 실행 중인 SQL 웨어하우스에 대한 액세스 권한이 있는 CAN VIEW 모든 쿼리의 모든 이전 실행을 볼 수도 있습니다. 쿼리 기록 페이지를 사용하여 스트리밍 테이블 업데이트를 실행하는 데 사용되는 파이프라인에서 제대로 수행되지 않는 쿼리 및 병목 상태를 식별하는 데 도움이 되는 쿼리 세부 정보 및 쿼리 프로필에 액세스할 수 있습니다. 쿼리 기록 및 쿼리 프로필에 사용할 수 있는 정보의 종류에 대한 개요는 쿼리 기록쿼리 프로필을 참조하세요.

중요합니다

이 기능은 공개 미리보기 단계에 있습니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.

물질화된 뷰와 관련된 모든 명령문이 쿼리 기록에 표시됩니다. 드롭다운 필터를 사용하여 명령을 선택하고 관련 쿼리를 검사할 수 있습니다. 모든 CREATE 문 뒤에는 파이프라인에서 REFRESH 비동기적으로 실행되는 문이 잇습니다. REFRESH 문장은 일반적으로 성능 최적화를 위한 인사이트를 제공하는 자세한 쿼리 계획을 포함합니다.

쿼리 기록 UI의 REFRESH 내용을 확인하려면 다음 단계를 따르세요.

  1. 기록 아이콘 을 클릭합니다.왼쪽 사이드바의 쿼리 기록입니다.
  2. REFRESH문장 드롭다운 필터에서 선택합니다.
  3. 쿼리 문 이름을 클릭하여 쿼리 기간 및 집계 메트릭과 같은 요약 세부 정보를 봅니다.
  4. 쿼리 프로필 보기를 클릭하여 쿼리 프로필을 엽니다. 쿼리 프로필 탐색에 대한 자세한 내용은 쿼리 프로필을 참조하세요.
  5. 필요에 따라 쿼리 원본 섹션의 링크를 사용하여 관련 쿼리 또는 파이프라인을 엽니다.

CREATE MATERIALIZED VIEW을(를) 참조하세요.

실패한 새로 고침 문제 해결

구체화된 뷰(또는 스트리밍 테이블)의 실패한 업데이트는 작업 및 파이프라인 목록을 확인하면 찾을 수 있습니다. 실패한 업데이트 문제를 해결하려면 파이프라인 모니터링 세부 정보 페이지 또는 이벤트 로그를 사용합니다.

증분이어야 한다고 생각되는 경우 가득 찬 새로 고침 문제를 해결하기 위해서는 먼저 원본 델타 테이블에 행 추적이 활성화되어 있는지 확인하십시오. 증분 새로 고침에 대한 자세한 내용은 구체화된 뷰 증분 새로 고침 지원을 참조하세요.

파이프라인 모니터링 페이지에서 또는 이벤트 로그를 프로그래밍 방식으로 쿼리하여 추가 세부 정보를 가져올 수 있습니다.

파이프라인 모니터링 페이지 사용

실패한 구체화된 뷰(또는 스트리밍 테이블)에 대한 자세한 내용을 보려면 파이프라인 모니터링 페이지를 사용하여 문제를 디버그할 수 있습니다. 구체화된 각 뷰에는 이를 지원하는 파이프라인이 있습니다. 파이프라인 모니터링 페이지에는 다음과 같은 정보가 포함됩니다.

  • 마지막 실행의 상태 및 실행 기록입니다.
  • 마지막 실행 기간입니다.
  • 구체화된 뷰가 완전히 새로 고쳐지는지 아니면 점진적으로 새로 고쳐지는지 여부입니다. 구체화된 뷰를 증분 방식으로 새로 고치는 데 대한 자세한 내용은 구체화된 뷰 증분 새로 고침 지원을 참조하세요.
  • 자세한 디버깅을 위한 이벤트 로그입니다. 구체화된 뷰를 업데이트하지 못했거나 다른 문제가 발생한 경우 문제 패널 을 클릭하여 로그를 자세히 봅니다.

구체화된 뷰 문제를 해결하기 위해 다음을 수행하십시오.

  1. 작업 영역에서 워크플로 아이콘을 클릭합니다.왼쪽 탐색 모음의 작업 및 파이프라인 단추입니다.
  2. 목록에서 파이프라인의 이름을 클릭합니다.
  3. 업데이트를 실행하지 못한 경우 UI는 아래쪽 패널에 오류(또는 오류 목록)를 표시합니다.
  4. 단추를 클릭하여 로그를 보거나문제 패널 을 클릭하여 오류를 자세히 봅니다.
  5. 그러면 이벤트 로그 UI가 열립니다. 각 오류에는 자세한 내용이 포함된 JSON 탭뿐만 아니라 개략적인 메시지와 요약이 있습니다. Databricks Assistant 문제를 해결하려면 오류 진단을 클릭합니다.

파이프라인 모니터링 페이지에 대한 자세한 내용은 여기를 참조 하세요.

구체화된 뷰에 대한 새로 고침 기록 쿼리

이벤트 로그는 작업 영역 전체에서 업데이트 상태 또는 기간을 모니터링하도록 대시보드를 설정하거나 UI를 사용하는 대신 프로그래밍 방식 모니터링을 선호하는 경우에 유용할 수 있습니다. Databricks SQL을 사용하여 만든 구체화된 뷰는 이벤트 로그를 메타스토어에 저장하는 것을 지원하지 않으므로 구체화된 뷰의 소유자만 이벤트 로그를 직접 쿼리할 수 있습니다.

REFRESH 작업 상태를 확인하려면, 현재 및 과거의 새로 고침을 포함한 구체화된 뷰의 파이프라인 이벤트 로그를 쿼리합니다.

SELECT *
FROM event_log(TABLE(<fully-qualified-table-name>))
WHERE event_type = "update_progress"
ORDER BY timestamp desc;

카탈로그 및 스키마를 포함하여 <fully-qualified-table-name>을 구체화된 뷰의 정규화된 이름으로 바꿉니다. 파이프라인 소유자가 아닌 경우 먼저 이벤트 로그를 쿼리하기 위해 뷰를 만들어야 할 수 있습니다. 프로그래밍 방식으로 이벤트 로그 쿼리를 참조하세요.

구체화된 뷰에 대해 발생한 새로 고침 유형 쿼리

일부 쿼리는 증분 방식으로 새로 고칠 수 있습니다. 증분 새로 고침을 수행할 수 없는 경우 전체 새로 고침이 대신 수행됩니다.

구체화된 뷰에 대한 새로 고침 유형을 보려면 이벤트 로그를 쿼리합니다.

SELECT timestamp, message
FROM event_log(TABLE(my_catalog.my_schema.sales))
WHERE event_type = 'planning_information'
ORDER BY timestamp desc;

이 명령에 대한 샘플 출력:

    • 시간표시
    • message
    • 2025-03-21T22:23:16.497+00:00
    • Flow 'sales' has been planned in :re[LDP] to be executed as ROW_BASED.

사용자 지정 태그를 사용하여 SQL Warehouse에 비용 할당

태그는 청구 레코드에 자동으로 추가되지 않지만 쿼리에서 청구 정보에 수동으로 조인할 수 있습니다.

카탈로그 탐색기를 사용하여 구체화된 각 뷰(또는 스트리밍 테이블)에 태그를 추가한 후에는 table_tagsbilling 시스템 테이블을 조인하여 구체화된 뷰의 비용을 모니터링할 수 있습니다. Databricks SQL을 사용하여 만든 모든 구체화된 뷰 및 스트리밍 테이블에 대한 청구 레코드를 검색하고 테이블 수준 태그를 추가하는 샘플 쿼리입니다.

SELECT
  u.*,
  tag_info.tags
FROM
  system.billing.usage u
LEFT JOIN (
  SELECT
    t.catalog_name,
    t.schema_name,
    t.table_name,
    collect_list(named_struct('tag_name', t.tag_name, 'tag_value', t.tag_value)) AS tags
  FROM
    main.information_schema.table_tags t
  GROUP BY
    t.catalog_name,
    t.schema_name,
    t.table_name
) tag_info
  ON tag_info.catalog_name = u.usage_metadata.uc_table_catalog
  AND tag_info.schema_name = u.usage_metadata.uc_table_schema
  AND tag_info.table_name = u.usage_metadata.uc_table_name
  WHERE usage_metadata.uc_table_name is not null;

이 같은 아이디어를 사용하여 대신 테이블의 열 태그를 column_tags에 조인할 수 있습니다.