다음을 통해 공유


Warehouse 이벤트 시스템 테이블 참조

Important

이 시스템 테이블은 공개 미리 보기로 제공됩니다. 테이블에 액세스하려면 system 카탈로그에서 스키마를 사용하도록 설정해야 합니다. 자세한 내용은 시스템 테이블 스키마 사용을 참조하세요.

이 문서에서는 웨어하우스 이벤트 시스템 테이블을 사용하여 작업 영역에서 SQL 웨어하우스를 모니터링하고 관리하는 방법을 알아봅니다. 이 테이블은 웨어하우스가 시작, 중지, 실행 및 스케일 업 및 스케일 다운 될 때마다 행을 기록합니다. 이 문서의 샘플 쿼리를 경고와 함께 사용하여 웨어하우스에 대한 변경 내용을 계속 알 수 있습니다.

테이블 경로: 이 시스템 테이블은 .에 있습니다 system.compute.warehouse_events.

기록된 웨어하우스 이벤트 유형

이 시스템 테이블은 다음과 같은 유형의 이벤트를 기록합니다.

  • SCALED_UP: 새 클러스터가 웨어하우스에 추가되었습니다.
  • SCALED_DOWN: 클러스터가 웨어하우스에서 제거되었습니다.
  • STOPPING: 웨어하우스가 중지 중입니다.
  • RUNNING: 웨어하우스가 현재 실행 중입니다.
  • STARTING: 웨어하우스가 시작 중입니다.
  • STOPPED: 웨어하우스 실행이 완전히 중지되었습니다.

웨어하우스 이벤트 스키마

시스템 테이블은 warehouse_events 다음 스키마를 사용합니다.

열 이름 데이터 형식 설명 예시
account_id string Azure Databricks 계정의 ID입니다. 7af234db-66d7-4db3-bbf0-956098224879
workspace_id string 웨어하우스가 배포되는 작업 영역의 ID입니다. 123456789012345
warehouse_id string 이벤트가 관련된 SQL 웨어하우스의 ID입니다. 123456789012345
event_type string 웨어하우스 이벤트의 유형입니다. 가능한 값은 SCALED_UP, SCALED_DOWN, STOPPING, RUNNING, STARTINGSTOPPED입니다. SCALED_UP
cluster_count 정수 현재 실행 중인 클러스터의 수입니다. 2
event_time timestamp 이벤트가 UTC에서 발생한 시기의 타임스탬프입니다. 2023-07-20T19:13:09.504Z

샘플 쿼리

다음 샘플 쿼리는 템플릿입니다. 조직에 적합한 값을 연결합니다. 또한 이러한 쿼리에 경고를 추가하여 웨어하우스의 변경 내용에 대한 정보를 유지할 수 있습니다. 경고 만들기를 참조하세요.

다음 샘플 쿼리를 사용하여 웨어하우스 동작에 대한 인사이트를 얻습니다.

어떤 창고가 적극적으로 실행되고 있으며 얼마나 오래 실행되고 있습니까?

이 쿼리는 실행 시간과 함께 현재 활성 상태인 웨어하우스를 식별합니다.

USE CATALOG `system`;

SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS running_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'RUNNING'
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time > we.event_time
)

경고 기회: 작업 영역 관리자로서 웨어하우스가 예상보다 오래 실행되는 경우 경고를 받을 수 있습니다. 예를 들어 쿼리 결과를 사용하여 실행 시간이 특정 임계값을 초과할 때 트리거할 경고 조건을 설정할 수 있습니다.

예상보다 오래 스케일링된 웨어하우스 식별

이 쿼리는 실행 시간과 함께 현재 활성 상태인 웨어하우스를 식별합니다.

use catalog `system`;

SELECT
   we.warehouse_id,
   we.event_time,
   TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS upscaled_hours,
   we.cluster_count
FROM
   compute.warehouse_events we
WHERE
   we.event_type = 'SCALED_UP'
   AND we.cluster_count >= 2
   AND NOT EXISTS (
       SELECT 1
       FROM compute.warehouse_events we2
       WHERE we2.warehouse_id = we.warehouse_id
       AND (
           (we2.event_type = 'SCALED_DOWN') OR
           (we2.event_type = 'SCALED_UP' AND we2.cluster_count < 2)
       )
       AND we2.event_time > we.event_time
   )

경고 기회: 이 조건에 대한 경고는 리소스 및 비용을 모니터링하는 데 도움이 될 수 있습니다. 스케일링된 시간이 특정 한도를 초과하는 경우에 대한 경고를 설정할 수 있습니다.

처음으로 시작하는 웨어하우스

이 쿼리는 처음으로 시작되는 새 웨어하우스에 대해 알려줍니다.

use catalog `system`;

SELECT
   we.warehouse_id,
   we.event_time,
   we.cluster_count
FROM
   compute.warehouse_events we
WHERE
   (we.event_type = 'STARTING' OR we.event_type = 'RUNNING')
   AND NOT EXISTS (
       SELECT 1
       FROM compute.warehouse_events we2
       WHERE we2.warehouse_id = we.warehouse_id
       AND we2.event_time < we.event_time
   )

경고 기회: 새 웨어하우스에 대한 경고는 조직에서 리소스 할당을 추적하는 데 도움이 될 수 있습니다. 예를 들어 새 웨어하우스가 시작될 때마다 트리거되는 경고를 설정할 수 있습니다.

청구 요금 조사

웨어하우스가 청구 요금을 생성하기 위해 무엇을 하고 있었는지 구체적으로 이해하려는 경우 이 쿼리는 웨어하우스가 확장 또는 축소되었거나 시작 및 중지된 정확한 날짜와 시간을 알려줄 수 있습니다.

use catalog `system`;

SELECT
    we.warehouse_id AS warehouse_id,
    we.event_type AS event,
    we.event_time AS event_time,
    we.cluster_count AS cluster_count
FROM
    compute.warehouse_events AS we
WHERE
    we.event_type IN (
        'STARTING', 'RUNNING', 'STOPPING', 'STOPPED',
        'SCALING_UP', 'SCALED_UP', 'SCALING_DOWN', 'SCALED_DOWN'
    )
    AND MONTH(we.event_time) = 7
    AND YEAR(we.event_time) = YEAR(CURRENT_DATE())
    AND we.warehouse_id = '19c9d68652189278'
ORDER BY
    event_time DESC

지난 30일 동안 사용되지 않은 창고는 무엇입니까?

이 쿼리는 사용되지 않는 리소스를 식별하여 비용 최적화를 위한 기회를 제공하는 데 도움이 됩니다.

use catalog `system`;

SELECT
    we.warehouse_id,
    we.event_time,
    we.event_type,
    we.cluster_count
FROM
    compute.warehouse_events AS we
WHERE
    we.warehouse_id IN (
        SELECT DISTINCT
            warehouse_id
        FROM
            compute.warehouse_events
        WHERE
            MONTH(event_time) = 6
            AND YEAR(event_time) = YEAR(CURRENT_DATE())
    )
    AND we.warehouse_id NOT IN (
        SELECT DISTINCT
            warehouse_id
        FROM
            compute.warehouse_events
        WHERE
            MONTH(event_time) = 7
            AND YEAR(event_time) = YEAR(CURRENT_DATE())
    )
ORDER BY
    event_time DESC

경고 기회: 사용하지 않는 리소스에 대한 경고를 수신하면 조직이 비용을 최적화하는 데 도움이 될 수 있습니다. 예를 들어 쿼리에서 사용되지 않는 웨어하우스를 검색할 때 트리거되는 경고를 설정할 수 있습니다.

한 달 동안 가동 시간이 가장 많은 창고

이 쿼리는 특정 한 달 동안 가장 많이 사용된 웨어하우스를 보여 줍니다. 이 쿼리는 7월을 예로 사용합니다.

use catalog `system`;

SELECT
   warehouse_id,
   SUM(TIMESTAMPDIFF(MINUTE, start_time, end_time)) / 60.0 AS uptime_hours
FROM (
   SELECT
      starting.warehouse_id,
      starting.event_time AS start_time,
      (
         SELECT
            MIN(stopping.event_time)
         FROM
            compute.warehouse_events AS stopping
         WHERE
            stopping.warehouse_id = starting.warehouse_id
            AND stopping.event_type = 'STOPPED'
            AND stopping.event_time > starting.event_time
      ) AS end_time
   FROM
      compute.warehouse_events AS starting
   WHERE
      starting.event_type = 'STARTING'
      AND MONTH(starting.event_time) = 7
      AND YEAR(starting.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_uptime
WHERE
   end_time IS NOT NULL
GROUP BY
   warehouse_id
ORDER BY
   uptime_hours DESC

경고 기회: 높은 사용률 웨어하우스를 추적할 수 있습니다. 예를 들어 웨어하우스의 작동 시간이 특정 임계값을 초과할 때 트리거되는 경고를 설정할 수 있습니다.

한 달 동안 가장 많은 시간을 업스케일링한 창고

이 쿼리는 한 달 동안 스케일링된 상태에서 상당한 시간을 보낸 웨어하우스에 대해 알려줍니다. 이 쿼리는 7월을 예로 사용합니다.

use catalog `system`;

SELECT
   warehouse_id,
   SUM(TIMESTAMPDIFF(MINUTE, upscaled_time, downscaled_time)) / 60.0 AS upscaled_hours
FROM (
   SELECT
      upscaled.warehouse_id,
      upscaled.event_time AS upscaled_time,
      (
         SELECT
            MIN(downscaled.event_time)
         FROM
            compute.warehouse_events AS downscaled
         WHERE
            downscaled.warehouse_id = upscaled.warehouse_id
            AND (downscaled.event_type = 'SCALED_DOWN' OR downscaled.event_type = 'STOPPED')
            AND downscaled.event_time > upscaled.event_time
      ) AS downscaled_time
   FROM
      compute.warehouse_events AS upscaled
   WHERE
      upscaled.event_type = 'SCALED_UP'
      AND upscaled.cluster_count >= 2
      AND MONTH(upscaled.event_time) = 7
      AND YEAR(upscaled.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_upscaled
WHERE
   downscaled_time IS NOT NULL
GROUP BY
   warehouse_id
ORDER BY
   upscaled_hours DESC

경고 기회: 높은 사용률 웨어하우스를 추적할 수 있습니다. 예를 들어 웨어하우스의 작동 시간이 특정 임계값을 초과할 때 트리거되는 경고를 설정할 수 있습니다.