컴퓨팅 시스템 테이블 참조
중요한
이 시스템 테이블은 공개 미리 보기 상태입니다. 테이블에 액세스하려면 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;