카테고리:

시스템 함수 (시스템 정보)

SYSTEM$CLUSTERING_INFORMATION

테이블에 있는 하나 이상의 열을 기반으로 하는 테이블에 대해 평균 클러스터링 깊이를 포함한 클러스터링 정보를 반환합니다.

참고 항목:

SYSTEM$CLUSTERING_DEPTH

구문

SYSTEM$CLUSTERING_INFORMATION( '<table_name>' [ , '( <expr1> [ , <expr2> ... ] )' ] )
Copy

인자

table_name

클러스터링 정보를 반환하려는 테이블입니다.

(expr1 [ , expr2 ... ])

클러스터링 정보가 반환되는 열 이름 또는 식:

  • 클러스터링 키가 없는 테이블의 경우, 이 인자가 필요합니다. 이 인자를 생략하면 오류가 반환됩니다.

  • 클러스터링 키가 있는 테이블의 경우, 이 인자는 선택 사항입니다. 인자가 생략되면 Snowflake는 정의된 클러스터링 키를 사용하여 클러스터링 정보를 반환합니다.

전달하는 열 이름이나 식이 하나뿐이더라도 괄호로 묶어야 합니다.

참고

이 인자를 사용하여, 테이블에 대해 클러스터링 키가 정의되었는지 여부와 관계없이 테이블의 모든 열에 대한 클러스터링 정보를 반환할 수 있습니다.

즉, 이를 사용하여, 향후 사용할 클러스터링을 결정하는 데 도움을 받을 수 있습니다.

사용법 노트

  • 모든 인자는 문자열입니다(즉, 작은따옴표로 묶어야 함).

출력

함수는 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, …).

마이크로 파티션 중첩 및 깊이, 그리고 이러한 요소가 쿼리 정리에 미치는 영향에 대한 자세한 내용은 Snowflake 테이블 구조 이해하기 섹션을 참조하십시오.

테이블의 두 열을 사용하여 테이블에 대한 클러스터링 정보를 반환합니다.

SELECT SYSTEM$CLUSTERING_INFORMATION('test2', '(col1, col3)');

+--------------------------------------------------------------+
| SYSTEM$CLUSTERING_INFORMATION('TEST2', '(COL1, COL3)')       |
|--------------------------------------------------------------|
| {                                                            |
|   "cluster_by_keys" : "(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                                            |
|   }                                                          |
| }                                                            |
+--------------------------------------------------------------+
Copy

이 예는 다음과 같은 이유로 test2 테이블이 잘 클러스터되지 않았음 을 나타냅니다.

  • 마이크로 파티션 총 1156 개 중 일정한 마이크로 파티션 0 개.

  • 중첩되는 마이크로 파티션의 평균이 높습니다.

  • 마이크로 파티션 전반에 걸친 평균 중첩 깊이가 높습니다.

  • 대부분의 마이크로 파티션은 히스토그램의 하단에 그룹화되어 있으며 대부분의 마이크로 파티션은 64 에서 128 사이의 중첩 깊이를 가집니다.