다음을 통해 공유


컴퓨팅 시스템 테이블 참조

중요한

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

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

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

클러스터 테이블 스키마

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

테이블 경로: 이 시스템 테이블은 system.compute.clusters

열 이름 데이터 형식 설명 예시
account_id 문자열 이 클러스터가 만들어진 계정의 ID입니다. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string 이 클러스터가 만들어진 작업 영역의 ID입니다. 1234567890123456
cluster_id 문자열 이 레코드가 연결된 클러스터의 ID입니다. 0000-123456-crmpt124
cluster_name 문자열 클러스터의 사용자 정의 이름입니다. My cluster
owned_by 문자열 클러스터 소유자의 사용자 이름입니다. 기본값은 클러스터 작성자이지만 클러스터 API통해 변경할 수 있습니다. sample_user@email.com
create_time 타임스탬프 이 컴퓨팅 정의 변경의 타임스탬프입니다. 2023-01-09 11:00:00.000
delete_time 타임스탬프 클러스터가 삭제된 시기의 타임스탬프입니다. 값은 null 클러스터가 삭제되지 않은 경우입니다. 2023-01-09 11:00:00.000
driver_node_type 문자열 드라이버 노드 형식 이름입니다. 클라우드 공급자의 인스턴스 형식 이름과 일치합니다. 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 지도 클러스터에 대한 사용자 정의 태그(기본 태그는 포함되지 않음). {"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 문자열 드라이버가 인스턴스 풀 위에 구성된 경우 인스턴스 풀 ID입니다. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id 문자열 작업자가 인스턴스 풀 위에 구성된 경우 인스턴스 풀 ID입니다. 1107-555555-crhod16-pool-DIdnjazB
dbr_version string 클러스터의 Databricks 런타임입니다. 14.x-snapshot-scala2.12
change_time 타임스탬프 컴퓨팅 정의에 대한 변경 타임스탬프입니다. 2023-01-09 11:00:00.000
change_date 날짜 날짜를 변경합니다. 보존에 사용됩니다. 2023-01-09

노드 유형 테이블 스키마

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

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

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

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

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

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

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

알려진 제한 사항

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

샘플 쿼리

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

참고

이러한 예제 중 일부는 클러스터 테이블을 system.billing.usage 테이블에 조인합니다. 청구 레코드는 여러 지역에 걸쳐 있는 반면, 클러스터 레코드는 지역별로 지정되어 있어, 청구 레코드는 쿼리를 수행하는 지역의 클러스터 레코드와만 일치합니다. 다른 지역의 레코드를 보려면 해당 지역에서 쿼리를 실행하세요.

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

이 쿼리는 시간 경과에 따른 지출을 이해하는 데 도움이 될 수 있습니다. 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;

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

평균 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;