다음을 통해 공유


컴퓨팅 시스템 테이블 참조

Important

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

이 문서에서는 컴퓨팅 시스템 테이블에 대한 참조 가이드를 제공합니다. 다음 테이블을 사용하여 계정에서 다목적 및 작업 컴퓨팅의 활동 및 메트릭을 모니터링할 수 있습니다.

  • clusters: 계정에 컴퓨팅 구성을 기록합니다.
  • node_types: 하드웨어 정보를 포함하여 현재 사용 가능한 각 노드 유형에 대한 단일 레코드를 포함합니다.
  • node_timeline: 컴퓨팅의 사용률 메트릭에 대한 분별 레코드를 포함합니다.

클러스터 테이블 스키마

클러스터 테이블은 다목적 및 작업 컴퓨팅에 대한 시간 경과에 따른 컴퓨팅 구성의 전체 기록을 포함하는 느린 변경 차원 테이블입니다.

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

열 이름 데이터 형식 설명 예시
account_id string 이 클러스터가 만들어진 계정의 ID입니다. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string 이 클러스터가 만들어진 작업 영역의 ID입니다. 1234567890123456
cluster_id string 이 레코드가 연결된 클러스터의 ID입니다. 0000-123456-crmpt124
cluster_name string 클러스터의 사용자 정의 이름입니다. My cluster
owned_by string 클러스터 소유자의 사용자 이름입니다. 기본값은 클러스터 작성자이지만 클러스터 API통해 변경할 수 있습니다. sample_user@email.com
create_time timestamp 이 컴퓨팅 정의 변경의 타임스탬프입니다. 2023-01-09 11:00:00.000
delete_time timestamp 클러스터가 삭제된 시기의 타임스탬프입니다. 값은 null 클러스터가 삭제되지 않은 경우입니다. 2023-01-09 11:00:00.000
driver_node_type string 드라이버 노드 형식 이름입니다. 클라우드 공급자의 인스턴스 형식 이름과 일치합니다. Standard_D16s_v3
worker_node_type string 작업자 노드 형식 이름입니다. 클라우드 공급자의 인스턴스 형식 이름과 일치합니다. Standard_D16s_v3
worker_count bigint 작업자 수입니다. 고정 크기 클러스터에 대해서만 정의됩니다. 4
min_autoscale_workers bigint 설정된 최소 작업자 수입니다. 이 필드는 클러스터 자동 크기 조정에만 유효합니다. 1
max_autoscale_workers bigint 설정된 최대 작업자 수입니다. 이 필드는 클러스터 자동 크기 조정에만 유효합니다. 1
auto_termination_minutes bigint 구성된 자동 수정 기간입니다. 120
enable_elastic_disk 부울 값 자동 크기 조정 디스크 사용 상태. true
tags map 클러스터에 대한 사용자 정의 태그(기본 태그는 포함되지 않음). {"ResourceClass":"SingleNode"}
cluster_source string 클러스터 UI의 작성자( , API, JOB등)를 나타냅니다. UI
init_scripts 배열 init 스크립트에 대한 경로 집합입니다. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes struct AWS 관련 설정입니다. null
azure_attributes struct Azure 특정 설정. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struct GCP 특정 설정입니다. 이 필드는 비어 있습니다. null
driver_instance_pool_id string 드라이버가 인스턴스 풀 위에 구성된 경우 인스턴스 풀 ID입니다. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id string 작업자가 인스턴스 풀 위에 구성된 경우 인스턴스 풀 ID입니다. 1107-555555-crhod16-pool-DIdnjazB
dbr_version string 클러스터의 Databricks 런타임입니다. 14.x-snapshot-scala2.12
change_time timestamp 컴퓨팅 정의에 대한 변경 타임스탬프입니다. 2023-01-09 11:00:00.000
change_date date 날짜를 변경합니다. 보존에 사용됩니다. 2023-01-09

노드 형식 테이블 스키마

노드 유형 테이블은 기본 하드웨어 정보를 사용하여 현재 사용 가능한 노드 형식을 캡처합니다.

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

열 이름 데이터 형식 설명 예시
account_id string 이 클러스터가 만들어진 계정의 ID입니다. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type string 노드 형식에 대한 고유 식별자입니다. Standard_D16s_v3
core_count double 인스턴스의 vCPU 수입니다. 48.0
memory_mb long 인스턴스의 총 메모리입니다. 393216
gpu_count long 인스턴스의 GPU 수입니다. 0

노드 타임라인 테이블 스키마

노드 타임라인 테이블은 분 단위로 노드 수준 리소스 사용률 데이터를 캡처합니다. 각 레코드에는 인스턴스당 지정된 시간 동안의 데이터가 포함됩니다.

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

열 이름 데이터 형식 설명 예시
account_id string 이 컴퓨팅 리소스가 실행 중인 계정의 ID입니다. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string 이 컴퓨팅 리소스가 실행 중인 작업 영역의 ID입니다. 1234567890123456
cluster_id string 컴퓨팅 리소스의 ID입니다. 0000-123456-crmpt124
instance_id string 특정 인스턴스의 ID입니다. i-1234a6c12a2681234
start_time timestamp 레코드의 시작 시간(UTC)입니다. 2024-07-16T12:00:00Z
end_time timestamp 레코드의 종료 시간(UTC)입니다. 2024-07-16T13:00:00Z
driver 부울 값 인스턴스가 드라이버 또는 작업자 노드인지 여부입니다. true
cpu_user_percent double 사용자 랜드에서 CPU가 소요된 시간의 백분율입니다. 34.76163817234407
cpu_system_percent double CPU가 커널에 소요된 시간의 백분율입니다. 1.0895310279488264
cpu_wait_percent double CPU가 I/O를 기다리는 데 소요된 시간의 백분율입니다. 0.03445157400629276
mem_used_percent double 해당 기간 동안 사용된 컴퓨팅 메모리의 백분율입니다(컴퓨팅에서 실행되는 백그라운드 프로세스에서 사용하는 메모리 포함). 45.34858216779041
mem_swap_percent double 메모리 교환에 기인하는 메모리 사용량의 백분율입니다. 0.014648443087939
network_sent_bytes bigint 네트워크 트래픽에서 전송된 바이트 수입니다. 517376
network_received_bytes bigint 네트워크 트래픽에서 수신된 바이트 수입니다. 179234
disk_free_bytes_per_mount_point map 탑재 지점별로 그룹화된 디스크 사용률입니다. 이는 컴퓨팅이 실행되는 동안에만 프로비전되는 임시 스토리지입니다. {"/var/lib/lxc":123455551234,"/":

123456789123,"/local_disk0":123412341234}
node_type string 노드 형식의 이름입니다. 클라우드 공급자의 인스턴스 형식 이름과 일치합니다. Standard_D16s_v3

알려진 제한 사항

  • 2023년 10월 23일 이전에 삭제된 것으로 표시된 컴퓨팅 리소스는 클러스터 테이블에 표시되지 않습니다. 이로 인해 테이블의 조인이 클러스터 테이블의 system.billing.usage 레코드와 일치하지 않을 수 있습니다. 모든 활성 컴퓨팅 리소스가 백필되었습니다.
  • 이러한 테이블에는 다목적 및 작업 컴퓨팅에 대한 레코드만 포함됩니다. 서버리스 컴퓨팅, Delta Live Tables 컴퓨팅 또는 SQL 웨어하우스에 대한 레코드는 포함되지 않습니다.
  • 10분 미만 동안 실행된 노드는 테이블에 표시되지 node_timeline 않을 수 있습니다.

샘플 쿼리

다음 샘플 쿼리를 사용하여 일반적인 질문에 대답할 수 있습니다.

참고 항목

이러한 예제 중 일부는 클러스터 테이블을 테이블과 조인합니다 system.billing.usage . 청구 레코드는 지역 간 레코드이고 클러스터 레코드는 지역-sepcific이므로 청구 레코드는 쿼리하는 지역의 클러스터 레코드와만 일치합니다. 다른 지역의 레코드를 보려면 해당 지역에서 쿼리를 실행하세요.

가장 최근 청구 레코드를 사용하여 클러스터 레코드 조인

이 쿼리는 시간 경과에 따른 지출을 이해하는 데 도움이 될 수 있습니다. 최신 청구 기간으로 업데이트 usage_start_time 한 후에는 청구 레코드에 대한 최신 업데이트를 받아 클러스터 데이터에 조인합니다.

각 레코드는 해당 특정 실행 중에 클러스터 소유자와 연결됩니다. 따라서 클러스터 소유자가 변경되면 클러스터가 사용된 시기에 따라 비용이 올바른 소유자에게 롤업됩니다.

SELECT
  u.record_id,
  c.cluster_id,
  c.owned_by,
  c.change_time,
  u.usage_start_time,
  u.usage_quantity
FROM
  system.billing.usage u
  JOIN system.compute.clusters c
  JOIN (SELECT u.record_id, c.cluster_id, max(c.change_time) change_time
    FROM system.billing.usage u
    JOIN system.compute.clusters c
    WHERE
      u.usage_metadata.cluster_id is not null
      and u.usage_start_time >= '2023-01-01'
      and u.usage_metadata.cluster_id = c.cluster_id
      and date_trunc('HOUR', c.change_time) <= date_trunc('HOUR', u.usage_start_time)
    GROUP BY all) config
WHERE
  u.usage_metadata.cluster_id is not null
  and u.usage_start_time >= '2023-01-01'
  and u.usage_metadata.cluster_id = c.cluster_id
  and u.record_id = config.record_id
  and c.cluster_id = config.cluster_id
  and c.change_time = config.change_time
ORDER BY cluster_id, usage_start_time desc;

클러스터 소유자에 대한 특성 비용

컴퓨팅 비용을 줄이려는 경우 이 쿼리를 사용하여 계정에서 가장 많은 DTU를 사용하는 클러스터 소유자를 확인할 수 있습니다.

SELECT
  u.record_id record_id,
  c.cluster_id cluster_id,
  max_by(c.owned_by, c.change_time) owned_by,
  max(c.change_time) change_time,
  any_value(u.usage_start_time) usage_start_time,
  any_value(u.usage_quantity) usage_quantity
FROM
  system.billing.usage u
  JOIN system.compute.clusters c
WHERE
  u.usage_metadata.cluster_id is not null
  and u.usage_start_time >= '2023-01-01'
  and u.usage_metadata.cluster_id = c.cluster_id
  and c.change_time <= u.usage_start_time
GROUP BY 1, 2
ORDER BY cluster_id, usage_start_time desc;

평균 사용률이 가장 높고 사용률이 가장 높은 컴퓨팅 리소스 식별

평균 CPU 사용률이 가장 높고 최고 CPU 사용률이 가장 높은 다목적 및 작업 컴퓨팅을 식별합니다.

SELECT
        distinct cluster_id,
driver,
avg(cpu_user_percent + cpu_system_percent) as `Avg CPU Utilization`,
max(cpu_user_percent + cpu_system_percent) as `Peak CPU Utilization`,
        avg(cpu_wait_percent) as `Avg CPU Wait`,
        max(cpu_wait_percent) as `Max CPU Wait`,
        avg(mem_used_percent) as `Avg Memory Utilization`,
        max(mem_used_percent) as `Max Memory Utilization`,
avg(network_received_bytes)/(1024^2) as `Avg Network MB Received per Minute`,
avg(network_sent_bytes)/(1024^2) as `Avg Network MB Sent per Minute`
FROM
        node_timeline
WHERE
        start_time >= date_add(now(), -1)
GROUP BY
        cluster_id,
        driver
ORDER BY
        3 desc;