- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$CLUSTERING_INFORMATION¶
테이블에 있는 하나 이상의 열을 기반으로 하는 테이블에 대해 평균 클러스터링 깊이를 포함한 클러스터링 정보를 반환합니다.
- 참고 항목:
구문¶
SYSTEM$CLUSTERING_INFORMATION( '<table_name>'
[ , { '( <expr1> [ , <expr2> ... ] )' | <number_of_errors> } ] )
인자¶
table_name
클러스터링 정보를 반환하려는 테이블입니다.
(expr1 [ , expr2 ... ])
클러스터링 정보가 반환되는 열 이름 또는 식:
클러스터링 키가 없는 테이블의 경우, 이 인자가 필요합니다. 이 인자를 생략하면 오류가 반환됩니다.
클러스터링 키가 있는 테이블의 경우, 이 인자는 선택 사항입니다. 인자가 생략되면 Snowflake는 정의된 클러스터링 키를 사용하여 클러스터링 정보를 반환합니다.
전달하는 열 이름이나 식이 하나뿐이더라도 괄호로 묶어야 합니다.
참고
이 인자를 사용하여, 테이블에 대해 클러스터링 키가 정의되었는지 여부와 관계없이 테이블의 모든 열에 대한 클러스터링 정보를 반환할 수 있습니다.
즉, 이를 사용하여, 향후 사용할 클러스터링을 결정하는 데 도움을 받을 수 있습니다.
number_of_errors
함수에서 반환되는 클러스터링 오류의 수입니다. 이 인자를 생략하면 가장 최근 오류 10개가 반환됩니다.
사용법 노트¶
함수의 두 번째 인자는 열 이름/식 또는 오류 수를 지정합니다. 한 번의 함수 호출에 두 인자를 모두 포함할 수는 없습니다.
테이블 이름, 열 이름, 식은 문자열이므로 작은따옴표로 묶어야 합니다.
출력¶
함수는 VARCHAR 형식의 값을 반환합니다.
반환된 문자열은 JSON 형식이며 다음 이름/값 페어를 포함합니다.
cluster_by_keys
클러스터링 정보를 반환하는 데 사용되는 테이블의 열로, 테이블의 모든 열일 수 있습니다.
notes
이 열에는 클러스터링을 보다 효율적으로 만들기 위한 제안 사항이 포함될 수 있습니다. 예를 들어, 클러스터링 열의 카디널리티가 매우 높은 경우, 이 필드에 경고가 포함될 수 있습니다.
이 열은 비어 있을 수 있습니다.
효율적으로 클러스터하는 방법에 대한 자세한 내용은 클러스터링 키 선택 전략 을 참조하십시오.
total_partition_count
테이블을 구성하는 총 마이크로 파티션 수입니다.
total_constant_partition_count
지정된 열의 값이 일정한 상태에 도달한(즉, 마이크로 파티션은 재클러스터링의 이점을 크게 얻지 못함) 총 마이크로 파티션 수입니다. 테이블의 일정한 마이크로 파티션 수는 쿼리 정리에 영향을 줍니다. 숫자가 높을수록, 테이블에서 실행된 쿼리에서 더 많은 마이크로 파티션을 제거할 수 있으며, 이는 성능에 대해 상응하는 영향을 미칩니다.
average_overlaps
테이블의 각 마이크로 파티션에 대해 중첩되는 마이크로 파티션의 평균 수입니다. 높은 숫자는 테이블이 잘 클러스터되지 않았음을 나타냅니다.
average_depth
테이블에 있는 각 마이크로 파티션의 평균 중첩 깊이입니다. 높은 숫자는 테이블이 잘 클러스터되지 않았음을 나타냅니다.
이 값은 SYSTEM$CLUSTERING_DEPTH 서도 반환됩니다.
partition_depth_histogram
테이블의 각 마이크로 파티션에 대한 중첩 깊이 분포를 나타내는 히스토그램입니다. 히스토그램에는 너비가 있는 버킷이 포함되어 있습니다.
0
에서16
까지1
씩 증가합니다.16
보다 큰 버킷의 경우, 이전 버킷 너비의 두 배로 증가합니다(예:32
,64
,128
, …).
clustering_errors
각각
timestamp
및error
이름/값 페어가 있는 JSON 오브젝트로 구성된 배열입니다.error
는 자동 클러스터링이 데이터를 다시 클러스터링할 수 없는 이유를 설명합니다.기본적으로 가장 최근 오류 10개가 배열로 반환됩니다. 오류를 더 많이 또는 더 적게 반환하려면 함수의 두 번째 인자로 숫자를 지정하십시오.
마이크로 파티션 중첩 및 깊이, 그리고 이러한 요소가 쿼리 정리에 미치는 영향에 대한 자세한 내용은 Snowflake 테이블 구조 이해하기 섹션을 참조하십시오.
예¶
가장 최근의 클러스터링 오류 5개를 반환합니다.
SELECT SYSTEM$CLUSTERING_INFORMATION('t1', 5);
테이블의 두 열을 사용하여 테이블에 대한 클러스터링 정보를 반환합니다.
SELECT SYSTEM$CLUSTERING_INFORMATION('test2', '(col1, col3)');+--------------------------------------------------------------------+ | SYSTEM$CLUSTERING_INFORMATION('TEST2', '(COL1, COL3)') | |--------------------------------------------------------------------| | { | | "cluster_by_keys" : "LINEAR(COL1, COL3)", | | "total_partition_count" : 1156, | | "total_constant_partition_count" : 0, | | "average_overlaps" : 117.5484, | | "average_depth" : 64.0701, | | "partition_depth_histogram" : { | | "00000" : 0, | | "00001" : 0, | | "00002" : 3, | | "00003" : 3, | | "00004" : 4, | | "00005" : 6, | | "00006" : 3, | | "00007" : 5, | | "00008" : 10, | | "00009" : 5, | | "00010" : 7, | | "00011" : 6, | | "00012" : 8, | | "00013" : 8, | | "00014" : 9, | | "00015" : 8, | | "00016" : 6, | | "00032" : 98, | | "00064" : 269, | | "00128" : 698 | | }, | | "clustering_errors" : [ { | | "timestamp" : "2023-04-03 17:50:42 +0000", | | "error" : "(003325) Clustering service has been disabled.\n" | | } | | ] | | } | +--------------------------------------------------------------------+이 예는 다음과 같은 이유로
test2
테이블이 잘 클러스터되지 않았음 을 나타냅니다.
마이크로 파티션 총
1156
개 중 일정한 마이크로 파티션0
개.중첩되는 마이크로 파티션의 평균이 높습니다.
마이크로 파티션 전반에 걸친 평균 중첩 깊이가 높습니다.
대부분의 마이크로 파티션은 히스토그램의 하단에 그룹화되어 있으며 대부분의 마이크로 파티션은
64
에서128
사이의 중첩 깊이를 가집니다.이전에는 자동 클러스터링이 비활성화되었습니다.
제한 사항¶
테이블에 2백만 개 이상의 파티션이 있는 경우:
함수의 결과는 테이블 파티션의 하위 세트를 기반으로 합니다.
출력의
total_partition_count
필드 값은 2백만입니다.